Rev 485 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 485 | Rev 495 | ||
---|---|---|---|
1 | 1 | ||
2 | /*************************************************************** |
2 | /*************************************************************** |
3 | * |
3 | * |
4 | * minimal canvas to test Abstraction layer on various Phones |
4 | * minimal canvas to test Abstraction layer on various Phones |
5 | * |
5 | * |
6 | * Author: Marcus -LiGi- Bueschleb |
6 | * Author: Marcus -LiGi- Bueschleb |
7 | * |
7 | * |
8 | * see README for further Infos |
8 | * see README for further Infos |
9 | * |
9 | * |
10 | ***************************************************************/ |
10 | ***************************************************************/ |
11 | 11 | ||
12 | import javax.microedition.lcdui.*; |
12 | import javax.microedition.lcdui.*; |
13 | import javax.microedition.rms.*; |
13 | import javax.microedition.rms.*; |
14 | 14 | ||
15 | 15 | ||
16 | public class MKMiniCanvas |
16 | public class MKMiniCanvas |
17 | extends Canvas |
17 | extends Canvas |
18 | implements Runnable |
18 | implements Runnable |
19 | { |
19 | { |
20 | 20 | ||
21 | // name/handle for the recordStore to memorize some stuff |
21 | // name/handle for the recordStore to memorize some stuff |
22 | private final static String RECORD_STORE_NAME="bluetoothurl"; |
22 | private final static String RECORD_STORE_NAME="bluetoothurl"; |
23 | 23 | ||
24 | private BTSearcher bt_scanner; |
24 | private BTSearcher bt_scanner; |
25 | public MKCommunicator mk=null; |
25 | public MKCommunicator mk=null; |
26 | private MKStatistics mk_stat=null; |
26 | private MKStatistics mk_stat=null; |
27 | private MKParamsEditor params_editor=null; |
27 | private MKParamsEditor params_editor=null; |
28 | 28 | ||
29 | 29 | ||
30 | private String err=""; |
30 | private String err=""; |
31 | private DUBwise root; |
31 | private DUBwise root; |
- | 32 | ||
- | 33 | ||
32 | 34 | ||
33 | private Image bg_img; |
35 | private Image bg_img; |
34 | private Image bt_img; |
36 | private Image bt_img; |
35 | private Image lcd_img; |
37 | private Image lcd_img; |
36 | private Image load_img; |
38 | private Image load_img; |
37 | 39 | ||
- | 40 | ||
- | 41 | final static int SKINID_DARK= 0; |
|
- | 42 | final static int SKINID_LIGHT = 1; |
|
- | 43 | ||
- | 44 | byte act_skin=SKINID_DARK; |
|
- | 45 | ||
38 | 46 | ||
39 | public int[] nick_line_pos_data; |
47 | public int[] nick_line_pos_data; |
40 | public int[] roll_line_pos_data; |
48 | public int[] roll_line_pos_data; |
41 | 49 | ||
42 | public int[] accnick_line_pos_data; |
50 | public int[] accnick_line_pos_data; |
43 | public int[] accroll_line_pos_data; |
51 | public int[] accroll_line_pos_data; |
44 | 52 | ||
45 | public int lcd_char_width=0; |
53 | public int lcd_char_width=0; |
46 | public int lcd_char_height=0; |
54 | public int lcd_char_height=0; |
47 | 55 | ||
48 | public int frame_pos=0; |
56 | public int frame_pos=0; |
49 | 57 | ||
50 | int line_scaler=20; |
58 | int line_scaler=20; |
51 | 59 | ||
52 | public int line_middle_y; |
60 | public int line_middle_y; |
53 | 61 | ||
54 | boolean quit=false; |
62 | boolean quit=false; |
55 | boolean rescan=true; |
63 | boolean rescan=true; |
56 | int bg_offset=0; |
64 | int bg_offset=0; |
57 | 65 | ||
58 | // variable to hold the current state |
66 | // variable to hold the current state |
59 | public int state=-1; |
67 | public int state=-1; |
60 | 68 | ||
61 | // id for each state - must just be uniq - order isnt important |
69 | // id for each state - must just be uniq - order isnt important |
62 | public final static int STATEID_SCANNING =0; |
70 | public final static int STATEID_SCANNING =0; |
63 | public final static int STATEID_DEVICESELECT =1; |
71 | public final static int STATEID_DEVICESELECT =1; |
64 | public final static int STATEID_MAINMENU =2; |
72 | public final static int STATEID_MAINMENU =2; |
65 | public final static int STATEID_MOTORTEST =3; |
73 | public final static int STATEID_MOTORTEST =3; |
66 | public final static int STATEID_SELECT_PARAMSET =4; |
74 | public final static int STATEID_SELECT_PARAMSET =4; |
67 | public final static int STATEID_EDIT_PARAMS =5; |
75 | public final static int STATEID_EDIT_PARAMS =5; |
68 | public final static int STATEID_HANDLE_PARAMS =6; |
76 | public final static int STATEID_HANDLE_PARAMS =6; |
69 | public final static int STATEID_FLIGHTVIEW =7; |
77 | public final static int STATEID_FLIGHTVIEW =7; |
70 | public final static int STATEID_RAWDEBUG =8; |
78 | public final static int STATEID_RAWDEBUG =8; |
71 | // public final static int STATEID_RAWDEBUG =8; |
79 | // public final static int STATEID_RAWDEBUG =8; |
72 | public final static int STATEID_KEYCONTROL =9; |
80 | public final static int STATEID_KEYCONTROL =9; |
73 | 81 | ||
74 | 82 | ||
75 | public boolean fullscreen=false; |
83 | public boolean fullscreen=false; |
76 | public int act_motor=0; |
84 | public int act_motor=0; |
77 | public int act_motor_increase=0; |
85 | public int act_motor_increase=0; |
78 | public boolean motor_test_sel_all=false; |
86 | public boolean motor_test_sel_all=false; |
79 | 87 | ||
80 | public String[] main_menu_items={"Telemetry","Raw Debug", "MK-KeyControl", "Motor Test" , "Flight Settings","(NA)Tool Settings","Proxy","Change Device" , "Quit " }; |
88 | public String[] main_menu_items={"Telemetry","Raw Debug", "MK-KeyControl", "Motor Test" , "Flight Settings","Change Skin","Proxy","Change Device" , "Quit " }; |
81 | public final static int MAINMENU_TELEMETRY =0; |
89 | public final static int MAINMENU_TELEMETRY =0; |
82 | public final static int MAINMENU_RAWDEBUG =1+MAINMENU_TELEMETRY; |
90 | public final static int MAINMENU_RAWDEBUG =1+MAINMENU_TELEMETRY; |
83 | public final static int MAINMENU_KEYCONTROL =1+MAINMENU_RAWDEBUG; |
91 | public final static int MAINMENU_KEYCONTROL =1+MAINMENU_RAWDEBUG; |
84 | public final static int MAINMENU_MOTORTEST =1+MAINMENU_KEYCONTROL; |
92 | public final static int MAINMENU_MOTORTEST =1+MAINMENU_KEYCONTROL; |
85 | public final static int MAINMENU_PARAMS =1+MAINMENU_MOTORTEST; |
93 | public final static int MAINMENU_PARAMS =1+MAINMENU_MOTORTEST; |
86 | public final static int MAINMENU_SETTINGS =1+MAINMENU_PARAMS; |
94 | public final static int MAINMENU_SETTINGS =1+MAINMENU_PARAMS; |
87 | public final static int MAINMENU_PROXY =1+MAINMENU_SETTINGS; |
95 | public final static int MAINMENU_PROXY =1+MAINMENU_SETTINGS; |
88 | public final static int MAINMENU_DEVICESELECT =1+MAINMENU_PROXY; |
96 | public final static int MAINMENU_DEVICESELECT =1+MAINMENU_PROXY; |
89 | public final static int MAINMENU_QUIT =1+MAINMENU_DEVICESELECT; |
97 | public final static int MAINMENU_QUIT =1+MAINMENU_DEVICESELECT; |
90 | 98 | ||
91 | int local_max=-1; |
99 | int local_max=-1; |
92 | 100 | ||
93 | int y_off=0; |
101 | int y_off=0; |
94 | int spacer=0; |
102 | int spacer=0; |
95 | int spacer1=0; |
103 | int spacer1=0; |
96 | 104 | ||
97 | int[] motor_test = {0,0,0,0}; |
105 | int[] motor_test = {0,0,0,0}; |
98 | 106 | ||
99 | 107 | ||
100 | String[] menu_items; |
108 | String[] menu_items; |
101 | int act_menu_select=0; |
109 | int act_menu_select=0; |
102 | 110 | ||
103 | String[] lcd_lines =null; |
111 | String[] lcd_lines =null; |
104 | 112 | ||
105 | public void paint_menu(Graphics g) |
113 | public void paint_menu(Graphics g) |
106 | { |
114 | { |
107 | for ( int i=0;i<menu_items.length;i++) |
115 | for ( int i=0;i<menu_items.length;i++) |
108 | lcd_lines[i]=(act_menu_select==i?"# ":" ") + menu_items[i]; |
116 | lcd_lines[i]=(act_menu_select==i?"# ":" ") + menu_items[i]; |
109 | paint_lcd(g,true); |
117 | paint_lcd(g,true); |
110 | } |
118 | } |
111 | 119 | ||
112 | public void menu_keypress(int keyCode) |
120 | public void menu_keypress(int keyCode) |
113 | { |
121 | { |
114 | switch (getGameAction (keyCode)) |
122 | switch (getGameAction (keyCode)) |
115 | { |
123 | { |
116 | case UP: |
124 | case UP: |
117 | if (act_menu_select!=0) act_menu_select--; |
125 | if (act_menu_select!=0) act_menu_select--; |
118 | else |
126 | else |
119 | act_menu_select=menu_items.length-1; |
127 | act_menu_select=menu_items.length-1; |
120 | break; |
128 | break; |
121 | 129 | ||
122 | case DOWN: |
130 | case DOWN: |
123 | if (act_menu_select<(menu_items.length-1)) act_menu_select++; |
131 | if (act_menu_select<(menu_items.length-1)) act_menu_select++; |
124 | else act_menu_select=0; |
132 | else act_menu_select=0; |
125 | break; |
133 | break; |
126 | 134 | ||
127 | } |
135 | } |
128 | 136 | ||
129 | } |
137 | } |
130 | 138 | ||
131 | public void paint_lcd(Graphics g,boolean bottomup) |
139 | public void paint_lcd(Graphics g,boolean bottomup) |
132 | { |
140 | { |
133 | 141 | ||
134 | int y; |
142 | int y; |
135 | 143 | ||
136 | for(int i=0;i<lcd_lines.length;i++) |
144 | for(int i=0;i<lcd_lines.length;i++) |
137 | for (int pos=0;pos<20;pos++) |
145 | for (int pos=0;pos<20;pos++) |
138 | { |
146 | { |
139 | if (bottomup) |
147 | if (bottomup) |
140 | y=this.getHeight()-(lcd_lines.length-i)*lcd_char_height; |
148 | y=this.getHeight()-(lcd_lines.length-i)*lcd_char_height; |
141 | else |
149 | else |
142 | y=i*lcd_char_height; |
150 | y=i*lcd_char_height; |
143 | g.setClip((lcd_img.getWidth()/222)*pos,y,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
151 | g.setClip((lcd_img.getWidth()/222)*pos,y,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
144 | g.drawImage(lcd_img,(lcd_img.getWidth()/222)*pos-((pos<lcd_lines[i].length()?lcd_lines[i].charAt(pos):' ')-' ')*(lcd_img.getWidth()/222),y,g.TOP | g.LEFT); |
152 | g.drawImage(lcd_img,(lcd_img.getWidth()/222)*pos-((pos<lcd_lines[i].length()?lcd_lines[i].charAt(pos):' ')-' ')*(lcd_img.getWidth()/222),y,g.TOP | g.LEFT); |
145 | 153 | ||
146 | } |
154 | } |
147 | } |
155 | } |
148 | 156 | ||
149 | public MKMiniCanvas(DUBwise _root) |
157 | public void load_images() |
150 | { |
- | |
151 | - | ||
152 | root=_root; |
- | |
153 | - | ||
154 | bt_scanner = new BTSearcher(); |
- | |
155 | params_editor = new MKParamsEditor(this); |
- | |
156 | mk = new MKCommunicator(); |
- | |
157 | mk_stat= new MKStatistics(mk); |
- | |
158 | 158 | { |
|
159 | try |
159 | try |
160 | { |
160 | { |
161 | // load all needed images |
161 | // load all needed images |
- | 162 | switch (act_skin) |
|
- | 163 | { |
|
- | 164 | case SKINID_DARK: |
|
- | 165 | lcd_img=Image.createImage("/lcd_green.png"); |
|
- | 166 | bg_img=Image.createImage("/starfield.jpg"); break; |
|
- | 167 | ||
- | 168 | case SKINID_LIGHT: |
|
162 | lcd_img=Image.createImage("/lcd.png"); |
169 | lcd_img=Image.createImage("/lcd_blue.png"); |
- | 170 | bg_img=Image.createImage("/clouds.jpg"); |
|
- | 171 | break; |
|
- | 172 | } |
|
- | 173 | ||
- | 174 | ||
163 | bt_img=Image.createImage("/bt.png"); |
175 | bt_img=Image.createImage("/bt.png"); |
164 | bg_img=Image.createImage("/starfield.jpg"); |
- | |
- | 176 | ||
165 | load_img=Image.createImage("/load.png"); |
177 | load_img=Image.createImage("/load.png"); |
166 | } |
178 | } |
167 | catch (Exception e) |
179 | catch (Exception e) |
168 | { |
180 | { |
169 | err+=e.toString(); |
181 | err+=e.toString(); |
170 | } |
182 | } |
171 | 183 | ||
172 | lcd_char_width=lcd_img.getWidth()/222; |
184 | lcd_char_width=lcd_img.getWidth()/222; |
173 | lcd_char_height=lcd_img.getHeight(); |
185 | lcd_char_height=lcd_img.getHeight(); |
174 | 186 | ||
175 | 187 | ||
176 | nick_line_pos_data=new int[bg_img.getWidth()]; |
188 | nick_line_pos_data=new int[bg_img.getWidth()]; |
177 | roll_line_pos_data=new int[bg_img.getWidth()]; |
189 | roll_line_pos_data=new int[bg_img.getWidth()]; |
178 | accnick_line_pos_data=new int[bg_img.getWidth()]; |
190 | accnick_line_pos_data=new int[bg_img.getWidth()]; |
179 | accroll_line_pos_data=new int[bg_img.getWidth()]; |
191 | accroll_line_pos_data=new int[bg_img.getWidth()]; |
180 | 192 | ||
181 | for (int c=0;c<bg_img.getWidth();c++) |
193 | for (int c=0;c<bg_img.getWidth();c++) |
182 | { |
194 | { |
183 | nick_line_pos_data[c]=-1; |
195 | nick_line_pos_data[c]=-1; |
184 | roll_line_pos_data[c]=-1; |
196 | roll_line_pos_data[c]=-1; |
185 | accnick_line_pos_data[c]=-1; |
197 | accnick_line_pos_data[c]=-1; |
186 | accroll_line_pos_data[c]=-1; |
198 | accroll_line_pos_data[c]=-1; |
187 | } |
199 | } |
188 | 200 | ||
- | 201 | } |
|
- | 202 | ||
- | 203 | public MKMiniCanvas(DUBwise _root) |
|
- | 204 | { |
|
- | 205 | ||
- | 206 | root=_root; |
|
- | 207 | ||
- | 208 | bt_scanner = new BTSearcher(); |
|
- | 209 | params_editor = new MKParamsEditor(this); |
|
- | 210 | mk = new MKCommunicator(root); |
|
- | 211 | mk_stat= new MKStatistics(mk); |
|
- | 212 | ||
- | 213 | load_images(); |
|
- | 214 | ||
189 | 215 | ||
190 | try |
216 | try |
191 | { |
217 | { |
192 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true ); |
218 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true ); |
193 | 219 | ||
194 | if (recStore.getNumRecords()==2) |
220 | if (recStore.getNumRecords()==2) |
195 | { |
221 | { |
196 | 222 | ||
197 | //byte[] recData = new byte[recStore.getRecordSize(1)]; |
223 | //byte[] recData = new byte[recStore.getRecordSize(1)]; |
198 | //int len = recStore.getRecord(1, recData, 0); |
224 | //int len = recStore.getRecord(1, recData, 0); |
199 | 225 | ||
200 | //byte[] recData2 = new byte[recStore.getRecordSize(2)]; |
226 | //byte[] recData2 = new byte[recStore.getRecordSize(2)]; |
201 | //int len2 = recStore.getRecord(2, recData, 0); |
227 | //int len2 = recStore.getRecord(2, recData, 0); |
202 | 228 | ||
203 | byte[] url_data=recStore.getRecord(1); |
229 | byte[] url_data=recStore.getRecord(1); |
204 | byte[] name_data=recStore.getRecord(2); |
230 | byte[] name_data=recStore.getRecord(2); |
205 | 231 | ||
206 | connect_mk(new String(url_data, 0, url_data.length),new String(name_data, 0, name_data.length)); |
232 | connect_mk(new String(url_data, 0, url_data.length),new String(name_data, 0, name_data.length)); |
207 | 233 | ||
208 | } |
234 | } |
209 | recStore.closeRecordStore(); |
235 | recStore.closeRecordStore(); |
210 | } |
236 | } |
211 | catch (Exception e) |
237 | catch (Exception e) |
212 | { |
238 | { |
213 | err+=e.toString(); |
239 | err+=e.toString(); |
214 | } |
240 | } |
215 | 241 | ||
216 | chg_state((mk.force_disconnect)?STATEID_SCANNING:STATEID_MAINMENU); |
242 | chg_state((mk.force_disconnect)?STATEID_SCANNING:STATEID_MAINMENU); |
217 | 243 | ||
218 | 244 | ||
219 | 245 | ||
220 | new Thread(this).start(); |
246 | new Thread(this).start(); |
221 | 247 | ||
222 | } |
248 | } |
223 | 249 | ||
224 | 250 | ||
225 | 251 | ||
226 | /****************************** Thread ******************/ |
252 | /****************************** Thread ******************/ |
227 | // ticking runnable Section |
253 | // ticking runnable Section |
228 | public void run() |
254 | public void run() |
229 | { |
255 | { |
230 | 256 | ||
231 | 257 | ||
232 | while(true) |
258 | while(true) |
233 | { |
259 | { |
234 | try { |
260 | try { |
235 | 261 | ||
236 | repaint(); |
262 | repaint(); |
237 | serviceRepaints(); |
263 | serviceRepaints(); |
238 | 264 | ||
239 | long loopStartTime = System.currentTimeMillis(); |
265 | long loopStartTime = System.currentTimeMillis(); |
240 | long sleeptime=0; |
266 | long sleeptime=0; |
241 | // ticked thing |
267 | // ticked thing |
242 | 268 | ||
243 | frame_pos++; |
269 | frame_pos++; |
244 | 270 | ||
245 | switch(state) |
271 | switch(state) |
246 | { |
272 | { |
247 | case STATEID_KEYCONTROL: |
273 | case STATEID_KEYCONTROL: |
248 | mk.send_keys(keycontrol_bitfield); |
274 | mk.send_keys(keycontrol_bitfield); |
249 | break; |
275 | break; |
250 | 276 | ||
251 | case STATEID_MOTORTEST: |
277 | case STATEID_MOTORTEST: |
252 | 278 | ||
253 | if (motor_test_sel_all) |
279 | if (motor_test_sel_all) |
254 | for (int m=0;m<4;m++) |
280 | for (int m=0;m<4;m++) |
255 | { |
281 | { |
256 | motor_test[m]+=act_motor_increase; |
282 | motor_test[m]+=act_motor_increase; |
257 | if (motor_test[m]<0)motor_test[m]=0; |
283 | if (motor_test[m]<0)motor_test[m]=0; |
258 | if (motor_test[m]>255)motor_test[m]=255; |
284 | if (motor_test[m]>255)motor_test[m]=255; |
259 | } |
285 | } |
260 | else |
286 | else |
261 | { |
287 | { |
262 | motor_test[act_motor]+=act_motor_increase; |
288 | motor_test[act_motor]+=act_motor_increase; |
263 | if (motor_test[act_motor]<0) motor_test[act_motor]=0; |
289 | if (motor_test[act_motor]<0) motor_test[act_motor]=0; |
264 | if (motor_test[act_motor]>255) motor_test[act_motor]=255; |
290 | if (motor_test[act_motor]>255) motor_test[act_motor]=255; |
265 | } |
291 | } |
266 | 292 | ||
267 | mk.motor_test(motor_test); |
293 | mk.motor_test(motor_test); |
268 | break; |
294 | break; |
269 | 295 | ||
270 | case STATEID_SCANNING: |
296 | case STATEID_SCANNING: |
271 | intro_str_delay--; |
297 | intro_str_delay--; |
272 | if (intro_str_delay<0) |
298 | if (intro_str_delay<0) |
273 | { |
299 | { |
274 | intro_str_delay=1; |
300 | intro_str_delay=1; |
275 | if (intro_str_pos>intro_str.length()) |
301 | if (intro_str_pos>intro_str.length()) |
276 | intro_str_pos=0; |
302 | intro_str_pos=0; |
277 | lcd_lines[3]=intro_str.substring(intro_str_pos, (((intro_str_pos+20)>intro_str.length())?intro_str.length():intro_str_pos+20)); |
303 | lcd_lines[3]=intro_str.substring(intro_str_pos, (((intro_str_pos+20)>intro_str.length())?intro_str.length():intro_str_pos+20)); |
278 | intro_str_pos++; |
304 | intro_str_pos++; |
279 | } |
305 | } |
280 | 306 | ||
281 | if (!bt_scanner.searching) |
307 | if (!bt_scanner.searching) |
282 | chg_state(STATEID_DEVICESELECT); |
308 | chg_state(STATEID_DEVICESELECT); |
283 | 309 | ||
284 | 310 | ||
285 | break; |
311 | break; |
286 | 312 | ||
287 | 313 | ||
288 | 314 | ||
289 | } |
315 | } |
290 | 316 | ||
291 | try { |
317 | try { |
292 | nick_line_pos_data[-bg_offset] = mk.debug_data.nick_int(); |
318 | nick_line_pos_data[-bg_offset] = mk.debug_data.nick_int(); |
293 | roll_line_pos_data[-bg_offset] = mk.debug_data.roll_int(); |
319 | roll_line_pos_data[-bg_offset] = mk.debug_data.roll_int(); |
294 | accnick_line_pos_data[-bg_offset] = mk.debug_data.accnick(); |
320 | accnick_line_pos_data[-bg_offset] = mk.debug_data.accnick(); |
295 | accroll_line_pos_data[-bg_offset] = mk.debug_data.accroll(); |
321 | accroll_line_pos_data[-bg_offset] = mk.debug_data.accroll(); |
296 | } |
322 | } |
297 | catch (Exception e) |
323 | catch (Exception e) |
298 | { |
324 | { |
299 | err+=e.toString(); |
325 | err+=e.toString(); |
300 | } |
326 | } |
301 | 327 | ||
302 | 328 | ||
303 | 329 | ||
304 | 330 | ||
305 | if (quit) |
331 | if (quit) |
306 | { |
332 | { |
307 | 333 | ||
308 | 334 | ||
309 | 335 | ||
310 | try |
336 | try |
311 | { |
337 | { |
312 | RecordStore.deleteRecordStore(RECORD_STORE_NAME); |
338 | RecordStore.deleteRecordStore(RECORD_STORE_NAME); |
313 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true ); |
339 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true ); |
314 | recStore.addRecord(mk.mk_url.getBytes(), 0, mk.mk_url.getBytes().length); |
340 | recStore.addRecord(mk.mk_url.getBytes(), 0, mk.mk_url.getBytes().length); |
315 | recStore.addRecord(mk.name.getBytes(), 0, mk.name.getBytes().length); |
341 | recStore.addRecord(mk.name.getBytes(), 0, mk.name.getBytes().length); |
316 | recStore.closeRecordStore(); |
342 | recStore.closeRecordStore(); |
317 | 343 | ||
318 | } |
344 | } |
319 | catch (Exception e) |
345 | catch (Exception e) |
320 | { |
346 | { |
321 | err+=e.toString(); |
347 | err+=e.toString(); |
322 | } |
348 | } |
323 | 349 | ||
324 | root.quit(); |
350 | root.quit(); |
325 | } |
351 | } |
326 | if (rescan) |
352 | if (rescan) |
327 | { |
353 | { |
328 | 354 | ||
329 | rescan=false; |
355 | rescan=false; |
330 | } |
356 | } |
331 | 357 | ||
332 | try { |
358 | try { |
333 | //rescan=false; |
359 | //rescan=false; |
334 | bg_offset--; |
360 | bg_offset--; |
335 | if (bg_offset==-bg_img.getWidth()) |
361 | if (bg_offset==-bg_img.getWidth()) |
336 | bg_offset=0; |
362 | bg_offset=0; |
337 | com.nokia.mid.ui.DeviceControl.setLights(0,100); |
363 | com.nokia.mid.ui.DeviceControl.setLights(0,100); |
338 | //bt.tick(); |
364 | //bt.tick(); |
339 | // every state has sth to do in tick section |
365 | // every state has sth to do in tick section |
340 | } |
366 | } |
341 | catch (Exception e) |
367 | catch (Exception e) |
342 | { |
368 | { |
343 | 369 | ||
344 | } |
370 | } |
345 | 371 | ||
346 | 372 | ||
347 | // System.gc(); |
373 | // System.gc(); |
348 | 374 | ||
349 | 375 | ||
350 | 376 | ||
351 | 377 | ||
352 | sleeptime=1000/ 15 - (int) (System.currentTimeMillis()- loopStartTime); |
378 | sleeptime=1000/ 15 - (int) (System.currentTimeMillis()- loopStartTime); |
353 | 379 | ||
354 | 380 | ||
355 | 381 | ||
356 | if (sleeptime<0) |
382 | if (sleeptime<0) |
357 | sleeptime=100; // everyone has fi sleep |
383 | sleeptime=100; // everyone has fi sleep |
358 | 384 | ||
359 | try { Thread.sleep(sleeptime); } |
385 | try { Thread.sleep(sleeptime); } |
360 | catch (Exception e) |
386 | catch (Exception e) |
361 | { |
387 | { |
362 | err="Problem Sleeping "; |
388 | err="Problem Sleeping "; |
363 | } |
389 | } |
364 | 390 | ||
365 | } |
391 | } |
366 | catch (Exception e) |
392 | catch (Exception e) |
367 | { |
393 | { |
368 | err+=e.toString(); |
394 | err+=e.toString(); |
369 | } |
395 | } |
370 | } |
396 | } |
371 | } |
397 | } |
372 | 398 | ||
373 | 399 | ||
374 | 400 | ||
375 | 401 | ||
376 | 402 | ||
377 | // drawing section |
403 | // drawing section |
378 | public void paint(Graphics g) { |
404 | public void paint(Graphics g) { |
379 | y_off=0; |
405 | y_off=0; |
380 | try { |
406 | try { |
381 | 407 | ||
382 | if (mk!=null) |
408 | if (mk!=null) |
383 | { |
409 | { |
384 | line_middle_y=this.getHeight()/2; |
410 | line_middle_y=this.getHeight()/2; |
385 | if (local_max<Math.abs(mk.debug_data.nick_int())) |
411 | if (local_max<Math.abs(mk.debug_data.nick_int())) |
386 | local_max=Math.abs(mk.debug_data.nick_int()); |
412 | local_max=Math.abs(mk.debug_data.nick_int()); |
387 | if (local_max<Math.abs(mk.debug_data.roll_int())) |
413 | if (local_max<Math.abs(mk.debug_data.roll_int())) |
388 | local_max=Math.abs(mk.debug_data.roll_int()); |
414 | local_max=Math.abs(mk.debug_data.roll_int()); |
389 | if (local_max<Math.abs(mk.debug_data.accnick())) |
415 | if (local_max<Math.abs(mk.debug_data.accnick())) |
390 | local_max=Math.abs(mk.debug_data.accnick()); |
416 | local_max=Math.abs(mk.debug_data.accnick()); |
391 | if (local_max<Math.abs(mk.debug_data.accroll())) |
417 | if (local_max<Math.abs(mk.debug_data.accroll())) |
392 | local_max=Math.abs(mk.debug_data.accroll()); |
418 | local_max=Math.abs(mk.debug_data.accroll()); |
393 | line_scaler= local_max/(this.getHeight()/2)+1; |
419 | line_scaler= local_max/(this.getHeight()/2)+1; |
394 | } |
420 | } |
395 | 421 | ||
396 | 422 | ||
397 | Font f1 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM); |
423 | Font f1 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM); |
398 | Font f2 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); |
424 | Font f2 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); |
399 | 425 | ||
400 | spacer=(f1.getHeight()); |
426 | spacer=(f1.getHeight()); |
401 | spacer1=(f2.getHeight()); |
427 | spacer1=(f2.getHeight()); |
402 | 428 | ||
403 | //default Font |
429 | //default Font |
404 | g.setFont(f1); |
430 | g.setFont(f1); |
405 | 431 | ||
406 | if (state==STATEID_EDIT_PARAMS) |
432 | if (state==STATEID_EDIT_PARAMS) |
407 | { |
433 | { |
408 | g.setColor(0x000000); |
434 | g.setColor(0x000000); |
409 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
435 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
410 | } |
436 | } |
411 | else |
437 | else |
412 | { |
438 | { |
413 | g.setColor(0xFFFFFF); |
439 | g.setColor(0xFFFFFF); |
414 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
440 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
415 | g.drawImage(bg_img,bg_offset,0, g.TOP | g.LEFT); |
441 | g.drawImage(bg_img,bg_offset,0, g.TOP | g.LEFT); |
416 | 442 | ||
417 | if (bg_offset+bg_img.getWidth()<this.getWidth()) |
443 | if (bg_offset+bg_img.getWidth()<this.getWidth()) |
418 | g.drawImage(bg_img,bg_offset+bg_img.getWidth(),0, g.TOP | g.LEFT); |
444 | g.drawImage(bg_img,bg_offset+bg_img.getWidth(),0, g.TOP | g.LEFT); |
419 | } |
445 | } |
- | 446 | ||
- | 447 | switch (act_skin) |
|
- | 448 | { |
|
420 | 449 | case SKINID_DARK: |
|
- | 450 | g.setColor(0x2dcf20); |
|
- | 451 | ||
- | 452 | break; |
|
- | 453 | ||
421 | g.setColor(0x000000); |
454 | case SKINID_LIGHT: |
- | 455 | g.setColor(0x000000); |
|
- | 456 | break; |
|
- | 457 | } |
|
- | 458 | ||
- | 459 | ||
422 | g.setColor(0x2dcf20); |
460 | |
423 | switch(state) |
461 | switch(state) |
424 | { |
462 | { |
425 | case STATEID_KEYCONTROL: |
463 | case STATEID_KEYCONTROL: |
426 | 464 | ||
427 | 465 | ||
428 | y_off+=spacer; |
466 | y_off+=spacer; |
429 | g.drawString("UP&DOWN => nick",0,y_off,Graphics.TOP | Graphics.LEFT); |
467 | g.drawString("UP&DOWN => nick",0,y_off,Graphics.TOP | Graphics.LEFT); |
430 | y_off+=spacer; |
468 | y_off+=spacer; |
431 | g.drawString("LEFT&RIGHT => roll",0,y_off,Graphics.TOP | Graphics.LEFT); |
469 | g.drawString("LEFT&RIGHT => roll",0,y_off,Graphics.TOP | Graphics.LEFT); |
432 | y_off+=spacer; |
470 | y_off+=spacer; |
433 | g.drawString("1&4 => altitude",0,y_off,Graphics.TOP | Graphics.LEFT); |
471 | g.drawString("1&4 => altitude",0,y_off,Graphics.TOP | Graphics.LEFT); |
434 | 472 | ||
435 | y_off+=spacer; |
473 | y_off+=spacer; |
436 | g.drawString("2&3 => gier",0,y_off,Graphics.TOP | Graphics.LEFT); |
474 | g.drawString("2&3 => gier",0,y_off,Graphics.TOP | Graphics.LEFT); |
437 | 475 | ||
438 | y_off+=spacer; |
476 | y_off+=spacer; |
439 | g.drawString("Press # and * at once",0,y_off,Graphics.TOP | Graphics.LEFT); |
477 | g.drawString("Press # and * at once",0,y_off,Graphics.TOP | Graphics.LEFT); |
440 | y_off+=spacer; |
478 | y_off+=spacer; |
441 | g.drawString("to quit KeyControl",0,y_off,Graphics.TOP | Graphics.LEFT); |
479 | g.drawString("to quit KeyControl",0,y_off,Graphics.TOP | Graphics.LEFT); |
442 | y_off+=spacer; |
480 | y_off+=spacer; |
443 | g.drawString("bf1:"+ keycontrol_bitfield[0] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
481 | g.drawString("bf1:"+ keycontrol_bitfield[0] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
444 | g.drawString("bf2:"+ keycontrol_bitfield[1] ,this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
482 | g.drawString("bf2:"+ keycontrol_bitfield[1] ,this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
445 | 483 | ||
446 | break; |
484 | break; |
447 | 485 | ||
448 | case STATEID_MOTORTEST: |
486 | case STATEID_MOTORTEST: |
449 | for (int bar=0;bar<4;bar++) |
487 | for (int bar=0;bar<4;bar++) |
450 | 488 | ||
451 | { |
489 | { |
452 | g.setColor(((bar==act_motor)|motor_test_sel_all)?0x44CC44:0x4444DD); |
490 | g.setColor(((bar==act_motor)|motor_test_sel_all)?0x44CC44:0x4444DD); |
453 | g.fillRect(this.getWidth()/(8*2)+bar*2*this.getWidth()/8,10,this.getWidth()/8,20+motor_test[bar]); |
491 | g.fillRect(this.getWidth()/(8*2)+bar*2*this.getWidth()/8,10,this.getWidth()/8,20+motor_test[bar]); |
454 | g.setColor(0x000000); |
492 | g.setColor(0x000000); |
455 | g.drawString(""+motor_test[bar] ,this.getWidth()/8+bar*2*this.getWidth()/8,10,Graphics.TOP | Graphics.HCENTER); |
493 | g.drawString(""+motor_test[bar] ,this.getWidth()/8+bar*2*this.getWidth()/8,10,Graphics.TOP | Graphics.HCENTER); |
456 | if(bar!=4) g.drawString(""+mk.debug_data.motor_val(bar) ,this.getWidth()/8+bar*2*this.getWidth()/8,30,Graphics.TOP | Graphics.HCENTER); |
494 | if(bar!=4) g.drawString(""+mk.debug_data.motor_val(bar) ,this.getWidth()/8+bar*2*this.getWidth()/8,30,Graphics.TOP | Graphics.HCENTER); |
457 | } |
495 | } |
458 | break; |
496 | break; |
459 | 497 | ||
460 | case STATEID_EDIT_PARAMS: |
498 | case STATEID_EDIT_PARAMS: |
461 | params_editor.paint(g); |
499 | params_editor.paint(g); |
462 | break; |
500 | break; |
463 | 501 | ||
464 | case STATEID_SCANNING: |
502 | case STATEID_SCANNING: |
465 | paint_lcd(g,true); |
503 | paint_lcd(g,true); |
466 | 504 | ||
467 | g.setClip(this.getWidth()/2-load_img.getWidth()/6+1,this.getHeight()/2-load_img.getHeight()/8+1, load_img.getWidth()/4,load_img.getHeight()/3);; |
505 | g.setClip(this.getWidth()/2-load_img.getWidth()/6+1,this.getHeight()/2-load_img.getHeight()/8+1, load_img.getWidth()/4,load_img.getHeight()/3);; |
468 | g.drawImage(load_img,this.getWidth()/2-load_img.getWidth()/8 - ((((frame_pos/3)%12)%4)*(load_img.getWidth()/4)) ,this.getHeight()/2-load_img.getHeight()/6- ((((frame_pos/3)%12)/4)*(load_img.getHeight()/3)), g.TOP | g.LEFT); |
506 | g.drawImage(load_img,this.getWidth()/2-load_img.getWidth()/8 - ((((frame_pos/3)%12)%4)*(load_img.getWidth()/4)) ,this.getHeight()/2-load_img.getHeight()/6- ((((frame_pos/3)%12)/4)*(load_img.getHeight()/3)), g.TOP | g.LEFT); |
469 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
507 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
470 | break; |
508 | break; |
471 | 509 | ||
472 | case STATEID_RAWDEBUG: |
510 | case STATEID_RAWDEBUG: |
473 | g.setFont(f2); |
511 | g.setFont(f2); |
474 | for (int i=0;i<16;i++) |
512 | for (int i=0;i<16;i++) |
475 | { |
513 | { |
476 | g.drawString("#"+i+"->" + mk.debug_data.analog[i] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
514 | g.drawString("#"+i+"->" + mk.debug_data.analog[i] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
477 | g.drawString("#"+(16+i)+"->" + mk.debug_data.analog[16+i] ,this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
515 | g.drawString("#"+(16+i)+"->" + mk.debug_data.analog[16+i] ,this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
478 | y_off+=spacer1; |
516 | y_off+=spacer1; |
479 | } |
517 | } |
480 | 518 | ||
481 | 519 | ||
482 | 520 | ||
483 | break; |
521 | break; |
484 | 522 | ||
485 | 523 | ||
486 | case STATEID_MAINMENU: |
524 | case STATEID_MAINMENU: |
487 | g.drawString("MK-Connection(" + (mk.connected?("open"+((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s"):"close")+"):",0,y_off,Graphics.TOP | Graphics.LEFT); |
525 | g.drawString("MK-Connection(" + (mk.connected?("open"+((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s"):"close")+"):",0,y_off,Graphics.TOP | Graphics.LEFT); |
488 | y_off+=spacer; |
526 | y_off+=spacer; |
489 | g.setFont(f2); |
527 | g.setFont(f2); |
490 | g.drawString(" Name:" + mk.name,0,y_off,Graphics.TOP | Graphics.LEFT); |
528 | g.drawString(" Name:" + mk.name,0,y_off,Graphics.TOP | Graphics.LEFT); |
491 | y_off+=spacer1; |
529 | y_off+=spacer1; |
492 | g.drawString(" URL:" + mk.mk_url,0,y_off,Graphics.TOP | Graphics.LEFT); |
530 | g.drawString(" URL:" + mk.mk_url,0,y_off,Graphics.TOP | Graphics.LEFT); |
493 | y_off+=spacer1; |
531 | y_off+=spacer1; |
494 | g.drawString(" Version:" + mk.version.str,0,y_off,Graphics.TOP | Graphics.LEFT); |
532 | g.drawString(" Version:" + mk.version.str,0,y_off,Graphics.TOP | Graphics.LEFT); |
495 | y_off+=spacer1; |
533 | y_off+=spacer1; |
496 | 534 | ||
497 | g.setFont(f1); |
535 | g.setFont(f1); |
498 | g.drawString("Packet Traffic:",0,y_off,Graphics.TOP | Graphics.LEFT); |
536 | g.drawString("Packet Traffic:",0,y_off,Graphics.TOP | Graphics.LEFT); |
499 | y_off+=spacer; |
537 | y_off+=spacer; |
500 | g.setFont(f2); |
538 | g.setFont(f2); |
501 | g.drawString( " debug:"+mk.debug_data_count+ " LCD:" + mk.lcd_data_count + " vers:" + mk.version_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
539 | g.drawString( " debug:"+mk.debug_data_count+ " LCD:" + mk.lcd_data_count + " vers:" + mk.version_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
502 | y_off+=spacer1; |
540 | y_off+=spacer1; |
503 | g.drawString( " other:"+mk.other_data_count+" params:"+mk.params_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
541 | g.drawString( " other:"+mk.other_data_count+" params:"+mk.params_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
504 | 542 | ||
505 | 543 | ||
506 | 544 | ||
507 | 545 | ||
508 | // falltru wanted |
546 | // falltru wanted |
509 | case STATEID_SELECT_PARAMSET: |
547 | case STATEID_SELECT_PARAMSET: |
510 | case STATEID_HANDLE_PARAMS: |
548 | case STATEID_HANDLE_PARAMS: |
511 | 549 | ||
512 | case STATEID_DEVICESELECT: |
550 | case STATEID_DEVICESELECT: |
513 | paint_menu(g); |
551 | paint_menu(g); |
514 | break; |
552 | break; |
515 | 553 | ||
516 | case STATEID_FLIGHTVIEW: |
554 | case STATEID_FLIGHTVIEW: |
517 | 555 | ||
518 | 556 | ||
519 | // !!TODO!! check exactly which version those Datas where introduced |
557 | // !!TODO!! check exactly which version those Datas where introduced |
520 | if (mk.version.compare(0,60)==mk.version.VERSION_PREVIOUS) |
558 | if (mk.version.compare(0,60)==mk.version.VERSION_PREVIOUS) |
521 | { |
559 | { |
522 | g.drawString("Power: " + (mk.debug_data.UBatt()/10) + "," +(mk.debug_data.UBatt()%10)+"V" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
560 | g.drawString("Power: " + (mk.debug_data.UBatt()/10) + "," +(mk.debug_data.UBatt()%10)+"V" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
523 | g.drawString("Sender: " + mk.debug_data.SenderOkay(),this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
561 | g.drawString("Sender: " + mk.debug_data.SenderOkay(),this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
524 | y_off+=spacer; |
562 | y_off+=spacer; |
525 | } |
563 | } |
526 | 564 | ||
527 | g.drawString(mk.version.str+"(d"+mk.debug_data_count+ "l" + mk.lcd_data_count+ "v" + mk.version_data_count+"o"+mk.other_data_count+"p"+mk.params_data_count+")",0,y_off,Graphics.TOP | Graphics.LEFT); |
565 | g.drawString(mk.version.str+"(d"+mk.debug_data_count+ "l" + mk.lcd_data_count+ "v" + mk.version_data_count+"o"+mk.other_data_count+"p"+mk.params_data_count+")",0,y_off,Graphics.TOP | Graphics.LEFT); |
528 | 566 | ||
529 | y_off+=spacer; |
567 | y_off+=spacer; |
530 | 568 | ||
531 | g.drawString("n:"+mk.debug_data.nick_int() + " r:"+mk.debug_data.roll_int() + " an:"+mk.debug_data.accnick() + " ar:"+mk.debug_data.accroll() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
569 | g.drawString("n:"+mk.debug_data.nick_int() + " r:"+mk.debug_data.roll_int() + " an:"+mk.debug_data.accnick() + " ar:"+mk.debug_data.accroll() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
532 | y_off+=spacer; |
570 | y_off+=spacer; |
533 | 571 | ||
534 | 572 | ||
535 | g.drawString("m1:"+mk.debug_data.motor_val(0) + " m2:"+mk.debug_data.motor_val(1)+" m3:"+mk.debug_data.motor_val(2) + " m4:"+mk.debug_data.motor_val(3) ,0,y_off,Graphics.TOP | Graphics.LEFT); |
573 | g.drawString("m1:"+mk.debug_data.motor_val(0) + " m2:"+mk.debug_data.motor_val(1)+" m3:"+mk.debug_data.motor_val(2) + " m4:"+mk.debug_data.motor_val(3) ,0,y_off,Graphics.TOP | Graphics.LEFT); |
536 | y_off+=spacer; |
574 | y_off+=spacer; |
537 | 575 | ||
538 | if (mk.connected) |
576 | if (mk.connected) |
539 | { |
577 | { |
540 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
578 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
541 | y_off+=spacer; |
579 | y_off+=spacer; |
542 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
580 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
543 | y_off+=spacer; |
581 | y_off+=spacer; |
544 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
582 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
545 | } |
583 | } |
546 | 584 | ||
547 | 585 | ||
548 | y_off=this.getHeight()-4*lcd_img.getHeight(); |
586 | y_off=this.getHeight()-4*lcd_img.getHeight(); |
549 | 587 | ||
550 | for ( int foo=0;foo<4;foo++) |
588 | for ( int foo=0;foo<4;foo++) |
551 | { |
589 | { |
552 | for (int x=0;x<20;x++) |
590 | for (int x=0;x<20;x++) |
553 | { |
591 | { |
554 | g.setClip((lcd_img.getWidth()/222)*x,y_off,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
592 | g.setClip((lcd_img.getWidth()/222)*x,y_off,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
555 | g.drawImage(lcd_img,(lcd_img.getWidth()/222)*x-(mk.LCD.LCD_str[foo].charAt(x)-' ')*(lcd_img.getWidth()/222),y_off, g.TOP | g.LEFT); |
593 | g.drawImage(lcd_img,(lcd_img.getWidth()/222)*x-(mk.LCD.LCD_str[foo].charAt(x)-' ')*(lcd_img.getWidth()/222),y_off, g.TOP | g.LEFT); |
556 | 594 | ||
557 | } |
595 | } |
558 | y_off+=lcd_img.getHeight(); |
596 | y_off+=lcd_img.getHeight(); |
559 | } |
597 | } |
560 | 598 | ||
561 | g.setClip(0,0,this.getWidth(),this.getHeight()); |
599 | g.setClip(0,0,this.getWidth(),this.getHeight()); |
562 | 600 | ||
563 | 601 | ||
564 | 602 | ||
565 | 603 | ||
566 | 604 | ||
567 | // draw lines |
605 | // draw lines |
568 | 606 | ||
569 | for ( int x=0;x<this.getWidth();x++) |
607 | for ( int x=0;x<this.getWidth();x++) |
570 | 608 | ||
571 | { |
609 | { |
572 | 610 | ||
573 | int p= (((-bg_offset+x-this.getWidth()-5))); |
611 | int p= (((-bg_offset+x-this.getWidth()-5))); |
574 | if (p<1) |
612 | if (p<1) |
575 | p+=bg_img.getWidth(); |
613 | p+=bg_img.getWidth(); |
576 | p%=(bg_img.getWidth()-1); |
614 | p%=(bg_img.getWidth()-1); |
577 | 615 | ||
578 | g.setColor(0x156315); |
616 | g.setColor(0x156315); |
579 | draw_graph_part(g,x,nick_line_pos_data[p]/line_scaler,nick_line_pos_data[p+1]/line_scaler); |
617 | draw_graph_part(g,x,nick_line_pos_data[p]/line_scaler,nick_line_pos_data[p+1]/line_scaler); |
580 | g.setColor(0xCC1315); |
618 | g.setColor(0xCC1315); |
581 | draw_graph_part(g,x,roll_line_pos_data[p]/line_scaler,roll_line_pos_data[p+1]/line_scaler); |
619 | draw_graph_part(g,x,roll_line_pos_data[p]/line_scaler,roll_line_pos_data[p+1]/line_scaler); |
582 | g.setColor(0xf8ef02); |
620 | g.setColor(0xf8ef02); |
583 | draw_graph_part(g,x,accnick_line_pos_data[p]/line_scaler,accnick_line_pos_data[p+1]/line_scaler); |
621 | draw_graph_part(g,x,accnick_line_pos_data[p]/line_scaler,accnick_line_pos_data[p+1]/line_scaler); |
584 | g.setColor(0x19194d); |
622 | g.setColor(0x19194d); |
585 | draw_graph_part(g,x,accroll_line_pos_data[p]/line_scaler,accroll_line_pos_data[p+1]/line_scaler); |
623 | draw_graph_part(g,x,accroll_line_pos_data[p]/line_scaler,accroll_line_pos_data[p+1]/line_scaler); |
586 | 624 | ||
587 | 625 | ||
588 | 626 | ||
589 | } |
627 | } |
590 | 628 | ||
591 | } |
629 | } |
592 | 630 | ||
593 | 631 | ||
594 | 632 | ||
595 | } catch (Exception e) {} |
633 | } catch (Exception e) {} |
596 | } |
634 | } |
597 | 635 | ||
598 | private void connect_mk(String url,String name) |
636 | private void connect_mk(String url,String name) |
599 | { |
637 | { |
600 | mk.connect_to(url,name); |
638 | mk.connect_to(url,name); |
601 | 639 | ||
602 | } |
640 | } |
603 | 641 | ||
604 | public void draw_graph_part(Graphics g,int x,int y1,int y2) |
642 | public void draw_graph_part(Graphics g,int x,int y1,int y2) |
605 | { |
643 | { |
- | 644 | if ( this.getWidth()>200) |
|
- | 645 | { |
|
606 | g.fillRect(x,line_middle_y-y1,2,2 ); |
646 | g.fillRect(x,line_middle_y-y1,1,1 ); |
607 | if (y1>y2) |
647 | if (y1>y2) |
608 | g.fillRect(x,line_middle_y-y1,2,y1-y2); |
648 | g.fillRect(x,line_middle_y-y1,1,y1-y2); |
- | 649 | else |
|
- | 650 | g.fillRect(x,line_middle_y-y2,1,y2-y1); |
|
- | 651 | ||
- | 652 | } |
|
609 | else |
653 | else |
- | 654 | { |
|
- | 655 | g.fillRect(x,line_middle_y-y1,1,1 ); |
|
- | 656 | if (y1>y2) |
|
- | 657 | g.fillRect(x,line_middle_y-y1,1,y1-y2); |
|
- | 658 | else |
|
610 | g.fillRect(x,line_middle_y-y2,2,y2-y1); |
659 | g.fillRect(x,line_middle_y-y2,1,y2-y1); |
- | 660 | } |
|
- | 661 | ||
611 | } |
662 | } |
- | 663 | ||
612 | 664 | ||
613 | /*********************************************** input Section **********************************************/ |
665 | /*********************************************** input Section **********************************************/ |
614 | 666 | ||
615 | 667 | ||
616 | public final String intro_str=" Digital Ufo Broadcasting with intelligent service equipment by Marcus -LiGi- Bueschleb ; Big Up Holger&Ingo for the MikroKopter Project (http://www.mikrokopter.de) "; |
668 | public final String intro_str=" Digital Ufo Broadcasting with intelligent service equipment by Marcus -LiGi- Bueschleb ; Big Up Holger&Ingo for the MikroKopter Project (http://www.mikrokopter.de) "; |
617 | 669 | ||
618 | int intro_str_pos=0; |
670 | int intro_str_pos=0; |
619 | int intro_str_delay=3; |
671 | int intro_str_delay=3; |
620 | 672 | ||
621 | public void chg_state(int next_state) |
673 | public void chg_state(int next_state) |
622 | { |
674 | { |
623 | act_menu_select=0; |
675 | act_menu_select=0; |
624 | // prepare next state |
676 | // prepare next state |
625 | switch(next_state) |
677 | switch(next_state) |
626 | { |
678 | { |
627 | case STATEID_KEYCONTROL: |
679 | case STATEID_KEYCONTROL: |
628 | keycontrol_exit=0; |
680 | keycontrol_exit=0; |
629 | break; |
681 | break; |
630 | 682 | ||
631 | case STATEID_SCANNING: |
683 | case STATEID_SCANNING: |
632 | lcd_lines=new String[4]; |
684 | lcd_lines=new String[4]; |
633 | lcd_lines[0]="Scanning for Devices"; |
685 | lcd_lines[0]="Scanning for Devices"; |
634 | lcd_lines[1]=" "; |
686 | lcd_lines[1]=" "; |
635 | 687 | ||
636 | //#expand lcd_lines[2]="DUBwise v%VERSION% "; |
688 | //#expand lcd_lines[2]="DUBwise v%VERSION% "; |
637 | lcd_lines[3]=intro_str.substring(0,20); |
689 | lcd_lines[3]=intro_str.substring(0,20); |
638 | mk.close_connections(true); |
690 | mk.close_connections(true); |
639 | 691 | ||
640 | bt_scanner.search(); |
692 | bt_scanner.search(); |
641 | break; |
693 | break; |
642 | 694 | ||
643 | case STATEID_HANDLE_PARAMS: |
695 | case STATEID_HANDLE_PARAMS: |
644 | menu_items=new String[2]; |
696 | menu_items=new String[2]; |
645 | menu_items[0]="write to MK"; |
697 | menu_items[0]="write to MK"; |
646 | menu_items[1]="Discard"; |
698 | menu_items[1]="Discard"; |
647 | lcd_lines=new String[2]; |
699 | lcd_lines=new String[2]; |
648 | 700 | ||
649 | break; |
701 | break; |
650 | 702 | ||
651 | case STATEID_SELECT_PARAMSET: |
703 | case STATEID_SELECT_PARAMSET: |
652 | menu_items=new String[5]; |
704 | menu_items=new String[5]; |
653 | for (int i=0;i<5;i++) |
705 | for (int i=0;i<5;i++) |
654 | menu_items[i]=mk.params.names[i]; |
706 | menu_items[i]=mk.params.names[i]; |
655 | 707 | ||
656 | lcd_lines=new String[5]; |
708 | lcd_lines=new String[5]; |
657 | break; |
709 | break; |
658 | 710 | ||
659 | case STATEID_DEVICESELECT: |
711 | case STATEID_DEVICESELECT: |
660 | menu_items=new String[bt_scanner.remote_device_count+1]; |
712 | menu_items=new String[bt_scanner.remote_device_count+1]; |
661 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
713 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
662 | menu_items[i]=bt_scanner.remote_device_name[i]; |
714 | menu_items[i]=bt_scanner.remote_device_name[i]; |
663 | menu_items[bt_scanner.remote_device_count]="scan again"; |
715 | menu_items[bt_scanner.remote_device_count]="scan again"; |
664 | lcd_lines=new String[bt_scanner.remote_device_count+1]; |
716 | lcd_lines=new String[bt_scanner.remote_device_count+1]; |
665 | break; |
717 | break; |
666 | 718 | ||
667 | case STATEID_MAINMENU: |
719 | case STATEID_MAINMENU: |
668 | menu_items=main_menu_items; |
720 | menu_items=main_menu_items; |
669 | lcd_lines=new String[menu_items.length]; |
721 | lcd_lines=new String[menu_items.length]; |
670 | break; |
722 | break; |
671 | 723 | ||
672 | } |
724 | } |
673 | 725 | ||
674 | // switch state |
726 | // switch state |
675 | state=next_state; |
727 | state=next_state; |
676 | } |
728 | } |
677 | 729 | ||
678 | 730 | ||
679 | public void keyReleased(int keyCode) |
731 | public void keyReleased(int keyCode) |
680 | { |
732 | { |
681 | 733 | ||
682 | switch(state) |
734 | switch(state) |
683 | { |
735 | { |
684 | case STATEID_MOTORTEST: |
736 | case STATEID_MOTORTEST: |
685 | act_motor_increase=0; |
737 | act_motor_increase=0; |
686 | break; |
738 | break; |
687 | 739 | ||
688 | case STATEID_KEYCONTROL: |
740 | case STATEID_KEYCONTROL: |
689 | if (keyCode==KEY_POUND) |
741 | if (keyCode==KEY_POUND) |
690 | keycontrol_exit &= 255^1; |
742 | keycontrol_exit &= 255^1; |
691 | else |
743 | else |
692 | if (keyCode==KEY_STAR) |
744 | if (keyCode==KEY_STAR) |
693 | keycontrol_exit &= 255^2; |
745 | keycontrol_exit &= 255^2; |
694 | else |
746 | else |
695 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
747 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
696 | keycontrol_bitfield[0]&=255^( 1<<(keyCode-this.KEY_NUM0)); |
748 | keycontrol_bitfield[0]&=255^( 1<<(keyCode-this.KEY_NUM0)); |
697 | else |
749 | else |
698 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
750 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
699 | keycontrol_bitfield[1]&=255^( 1<<(keyCode-this.KEY_NUM8)); |
751 | keycontrol_bitfield[1]&=255^( 1<<(keyCode-this.KEY_NUM8)); |
700 | else |
752 | else |
701 | switch (getGameAction (keyCode)) |
753 | switch (getGameAction (keyCode)) |
702 | { |
754 | { |
703 | case UP: |
755 | case UP: |
704 | keycontrol_bitfield[1]&=255^4; |
756 | keycontrol_bitfield[1]&=255^4; |
705 | break; |
757 | break; |
706 | 758 | ||
707 | case DOWN: |
759 | case DOWN: |
708 | keycontrol_bitfield[1]&=255^8; |
760 | keycontrol_bitfield[1]&=255^8; |
709 | break; |
761 | break; |
710 | 762 | ||
711 | 763 | ||
712 | case LEFT: |
764 | case LEFT: |
713 | keycontrol_bitfield[1]&=255^16; |
765 | keycontrol_bitfield[1]&=255^16; |
714 | break; |
766 | break; |
715 | 767 | ||
716 | case RIGHT: |
768 | case RIGHT: |
717 | keycontrol_bitfield[1]&=255^32; |
769 | keycontrol_bitfield[1]&=255^32; |
718 | break; |
770 | break; |
719 | 771 | ||
720 | case FIRE: |
772 | case FIRE: |
721 | keycontrol_bitfield[1]&=255^64; |
773 | keycontrol_bitfield[1]&=255^64; |
722 | break; |
774 | break; |
723 | 775 | ||
724 | 776 | ||
725 | } |
777 | } |
726 | mk.send_keys(keycontrol_bitfield); |
778 | mk.send_keys(keycontrol_bitfield); |
727 | break; |
779 | break; |
728 | } |
780 | } |
729 | 781 | ||
730 | } |
782 | } |
731 | 783 | ||
732 | 784 | ||
733 | byte keycontrol_exit=0; |
785 | byte keycontrol_exit=0; |
734 | 786 | ||
735 | public final static int[] keycontrol_bitfield={0,0}; |
787 | public final static int[] keycontrol_bitfield={0,0}; |
736 | 788 | ||
737 | public void keyPressed(int keyCode) |
789 | public void keyPressed(int keyCode) |
738 | { |
790 | { |
739 | 791 | ||
740 | if (keyCode==KEY_STAR) |
792 | if (keyCode==KEY_STAR) |
741 | { |
793 | { |
742 | if (state==STATEID_EDIT_PARAMS) |
794 | if (state==STATEID_EDIT_PARAMS) |
743 | { |
795 | { |
744 | chg_state(STATEID_HANDLE_PARAMS); |
796 | chg_state(STATEID_HANDLE_PARAMS); |
745 | return; |
797 | return; |
746 | } |
798 | } |
747 | else |
799 | else |
748 | if (state!=STATEID_KEYCONTROL) |
800 | if (state!=STATEID_KEYCONTROL) |
749 | { |
801 | { |
750 | chg_state(STATEID_MAINMENU); |
802 | chg_state(STATEID_MAINMENU); |
751 | return; |
803 | return; |
752 | } |
804 | } |
753 | 805 | ||
754 | } |
806 | } |
755 | if ((keyCode==KEY_POUND)&&(state!=STATEID_KEYCONTROL)) |
807 | if ((keyCode==KEY_POUND)&&(state!=STATEID_KEYCONTROL)) |
756 | { |
808 | { |
757 | fullscreen=!fullscreen; |
809 | fullscreen=!fullscreen; |
758 | setFullScreenMode(fullscreen); |
810 | setFullScreenMode(fullscreen); |
759 | return; |
811 | return; |
760 | } |
812 | } |
761 | switch(state) |
813 | switch(state) |
762 | { |
814 | { |
763 | case STATEID_KEYCONTROL: |
815 | case STATEID_KEYCONTROL: |
764 | if (keyCode==KEY_POUND) |
816 | if (keyCode==KEY_POUND) |
765 | keycontrol_exit |= 1; |
817 | keycontrol_exit |= 1; |
766 | else |
818 | else |
767 | if (keyCode==KEY_STAR) |
819 | if (keyCode==KEY_STAR) |
768 | keycontrol_exit |= 2; |
820 | keycontrol_exit |= 2; |
769 | else |
821 | else |
770 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
822 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
771 | keycontrol_bitfield[0]|=1<<(keyCode-this.KEY_NUM0); |
823 | keycontrol_bitfield[0]|=1<<(keyCode-this.KEY_NUM0); |
772 | else |
824 | else |
773 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
825 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
774 | keycontrol_bitfield[1]|=1<<(keyCode-this.KEY_NUM8); |
826 | keycontrol_bitfield[1]|=1<<(keyCode-this.KEY_NUM8); |
775 | 827 | ||
776 | else |
828 | else |
777 | switch (getGameAction (keyCode)) |
829 | switch (getGameAction (keyCode)) |
778 | { |
830 | { |
779 | case UP: |
831 | case UP: |
780 | keycontrol_bitfield[1]|=4; |
832 | keycontrol_bitfield[1]|=4; |
781 | break; |
833 | break; |
782 | 834 | ||
783 | case DOWN: |
835 | case DOWN: |
784 | keycontrol_bitfield[1]|=8; |
836 | keycontrol_bitfield[1]|=8; |
785 | break; |
837 | break; |
786 | 838 | ||
787 | 839 | ||
788 | case LEFT: |
840 | case LEFT: |
789 | keycontrol_bitfield[1]|=16; |
841 | keycontrol_bitfield[1]|=16; |
790 | break; |
842 | break; |
791 | 843 | ||
792 | case RIGHT: |
844 | case RIGHT: |
793 | keycontrol_bitfield[1]|=32; |
845 | keycontrol_bitfield[1]|=32; |
794 | break; |
846 | break; |
795 | 847 | ||
796 | case FIRE: |
848 | case FIRE: |
797 | keycontrol_bitfield[1]|=64; |
849 | keycontrol_bitfield[1]|=64; |
798 | break; |
850 | break; |
799 | 851 | ||
800 | } |
852 | } |
801 | if (keycontrol_exit==3) |
853 | if (keycontrol_exit==3) |
802 | chg_state(STATEID_MAINMENU); |
854 | chg_state(STATEID_MAINMENU); |
803 | else |
855 | else |
804 | mk.send_keys(keycontrol_bitfield); |
856 | mk.send_keys(keycontrol_bitfield); |
805 | break; |
857 | break; |
806 | 858 | ||
807 | 859 | ||
808 | case STATEID_MOTORTEST: |
860 | case STATEID_MOTORTEST: |
809 | switch (getGameAction (keyCode)) |
861 | switch (getGameAction (keyCode)) |
810 | { |
862 | { |
811 | case UP: |
863 | case UP: |
812 | act_motor_increase=-1; |
864 | act_motor_increase=-1; |
813 | break; |
865 | break; |
814 | 866 | ||
815 | case DOWN: |
867 | case DOWN: |
816 | act_motor_increase=1; |
868 | act_motor_increase=1; |
817 | break; |
869 | break; |
818 | 870 | ||
819 | case FIRE: |
871 | case FIRE: |
820 | motor_test_sel_all=!motor_test_sel_all; |
872 | motor_test_sel_all=!motor_test_sel_all; |
821 | break; |
873 | break; |
822 | 874 | ||
823 | case LEFT: |
875 | case LEFT: |
824 | act_motor--; |
876 | act_motor--; |
825 | if (act_motor<0) {act_motor=0; chg_state(STATEID_MAINMENU); } |
877 | if (act_motor<0) {act_motor=0; chg_state(STATEID_MAINMENU); } |
826 | break; |
878 | break; |
827 | 879 | ||
828 | case RIGHT: |
880 | case RIGHT: |
829 | act_motor++; |
881 | act_motor++; |
830 | act_motor%=4; |
882 | act_motor%=4; |
831 | break; |
883 | break; |
832 | } |
884 | } |
833 | 885 | ||
834 | break; |
886 | break; |
835 | case STATEID_HANDLE_PARAMS: |
887 | case STATEID_HANDLE_PARAMS: |
836 | if ( getGameAction (keyCode)==FIRE ) |
888 | if ( getGameAction (keyCode)==FIRE ) |
837 | switch(act_menu_select) |
889 | switch(act_menu_select) |
838 | { |
890 | { |
839 | case 0: |
891 | case 0: |
840 | mk.write_params(); |
892 | mk.write_params(); |
841 | default: |
893 | default: |
842 | chg_state(STATEID_MAINMENU); |
894 | chg_state(STATEID_MAINMENU); |
843 | } |
895 | } |
844 | else |
896 | else |
845 | menu_keypress(keyCode); |
897 | menu_keypress(keyCode); |
846 | break; |
898 | break; |
847 | case STATEID_MAINMENU: |
899 | case STATEID_MAINMENU: |
848 | if ( getGameAction (keyCode)==FIRE ) |
900 | if ( getGameAction (keyCode)==FIRE ) |
849 | switch(act_menu_select) |
901 | switch(act_menu_select) |
850 | { |
902 | { |
- | 903 | case MAINMENU_SETTINGS: |
|
- | 904 | act_skin++; |
|
- | 905 | act_skin=(byte)(act_skin%2); |
|
- | 906 | load_images(); |
|
- | 907 | break; |
|
- | 908 | ||
851 | case MAINMENU_KEYCONTROL: |
909 | case MAINMENU_KEYCONTROL: |
852 | chg_state(STATEID_KEYCONTROL); |
910 | chg_state(STATEID_KEYCONTROL); |
853 | break; |
911 | break; |
854 | 912 | ||
855 | case MAINMENU_TELEMETRY : |
913 | case MAINMENU_TELEMETRY : |
856 | chg_state(STATEID_FLIGHTVIEW); |
914 | chg_state(STATEID_FLIGHTVIEW); |
857 | break; |
915 | break; |
858 | 916 | ||
859 | case MAINMENU_MOTORTEST : |
917 | case MAINMENU_MOTORTEST : |
860 | chg_state(STATEID_MOTORTEST); |
918 | chg_state(STATEID_MOTORTEST); |
861 | break; |
919 | break; |
862 | 920 | ||
863 | case MAINMENU_PARAMS : |
921 | case MAINMENU_PARAMS : |
864 | chg_state(STATEID_SELECT_PARAMSET); |
922 | chg_state(STATEID_SELECT_PARAMSET); |
865 | break; |
923 | break; |
866 | case MAINMENU_SETTINGS: |
- | |
867 | break; |
924 | |
868 | 925 | ||
869 | case MAINMENU_PROXY: |
926 | case MAINMENU_PROXY: |
870 | mk.do_proxy("socket://192.168.1.42:2323"); |
927 | mk.do_proxy("socket://192.168.1.42:2323"); |
871 | break; |
928 | break; |
872 | 929 | ||
873 | case MAINMENU_DEVICESELECT: |
930 | case MAINMENU_DEVICESELECT: |
874 | chg_state(STATEID_SCANNING); |
931 | chg_state(STATEID_SCANNING); |
875 | break; |
932 | break; |
876 | 933 | ||
877 | case MAINMENU_RAWDEBUG: |
934 | case MAINMENU_RAWDEBUG: |
878 | chg_state(STATEID_RAWDEBUG); |
935 | chg_state(STATEID_RAWDEBUG); |
879 | break; |
936 | break; |
880 | 937 | ||
881 | case MAINMENU_QUIT: |
938 | case MAINMENU_QUIT: |
882 | // set quit Flag |
939 | // set quit Flag |
883 | quit=true; |
940 | quit=true; |
884 | break; |
941 | break; |
885 | 942 | ||
886 | } |
943 | } |
887 | else menu_keypress(keyCode); |
944 | else menu_keypress(keyCode); |
888 | break; |
945 | break; |
889 | 946 | ||
890 | case STATEID_SELECT_PARAMSET: |
947 | case STATEID_SELECT_PARAMSET: |
891 | if ( getGameAction (keyCode)==FIRE ) |
948 | if ( getGameAction (keyCode)==FIRE ) |
892 | { |
949 | { |
893 | mk.params.act_paramset=act_menu_select; |
950 | mk.params.act_paramset=act_menu_select; |
894 | chg_state(STATEID_EDIT_PARAMS); |
951 | chg_state(STATEID_EDIT_PARAMS); |
895 | } |
952 | } |
896 | else menu_keypress(keyCode); |
953 | else menu_keypress(keyCode); |
897 | break; |
954 | break; |
898 | case STATEID_DEVICESELECT: |
955 | case STATEID_DEVICESELECT: |
899 | /* |
956 | /* |
900 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
957 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
901 | { |
958 | { |
902 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1",bt_scanner.remote_device_name[keyCode-this.KEY_NUM0]); |
959 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1",bt_scanner.remote_device_name[keyCode-this.KEY_NUM0]); |
903 | chg_state(STATEID_MAINMENU); |
960 | chg_state(STATEID_MAINMENU); |
904 | } |
961 | } |
905 | else |
962 | else |
906 | */ |
963 | */ |
907 | 964 | ||
908 | if ( getGameAction (keyCode)==FIRE ) |
965 | if ( getGameAction (keyCode)==FIRE ) |
909 | { |
966 | { |
910 | 967 | ||
911 | if (bt_scanner.remote_device_count > act_menu_select) |
968 | if (bt_scanner.remote_device_count > act_menu_select) |
912 | { |
969 | { |
913 | connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
970 | connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
914 | chg_state(STATEID_MAINMENU); |
971 | chg_state(STATEID_MAINMENU); |
915 | } |
972 | } |
916 | else |
973 | else |
917 | chg_state(STATEID_SCANNING); |
974 | chg_state(STATEID_SCANNING); |
918 | } |
975 | } |
919 | else menu_keypress(keyCode); |
976 | else menu_keypress(keyCode); |
920 | 977 | ||
921 | break; |
978 | break; |
922 | 979 | ||
923 | case STATEID_EDIT_PARAMS: |
980 | case STATEID_EDIT_PARAMS: |
924 | params_editor.keypress(keyCode,getGameAction (keyCode)) ; |
981 | params_editor.keypress(keyCode,getGameAction (keyCode)) ; |
925 | break; |
982 | break; |
926 | 983 | ||
927 | case STATEID_FLIGHTVIEW: |
984 | case STATEID_FLIGHTVIEW: |
928 | 985 | ||
929 | switch (getGameAction (keyCode)) |
986 | switch (getGameAction (keyCode)) |
930 | { |
987 | { |
931 | case UP: |
988 | case UP: |
932 | mk.LCD.LCD_PREVPAGE(); |
989 | mk.LCD.LCD_PREVPAGE(); |
933 | break; |
990 | break; |
934 | 991 | ||
935 | case DOWN: |
992 | case DOWN: |
936 | mk.LCD.LCD_NEXTPAGE(); |
993 | mk.LCD.LCD_NEXTPAGE(); |
937 | break; |
994 | break; |
938 | 995 | ||
939 | case LEFT: |
996 | case LEFT: |
940 | chg_state(STATEID_MAINMENU); |
997 | chg_state(STATEID_MAINMENU); |
941 | break; |
998 | break; |
942 | 999 | ||
943 | } |
1000 | } |
944 | break; |
1001 | break; |
945 | } |
1002 | } |
946 | 1003 | ||
947 | 1004 | ||
948 | 1005 | ||
949 | } |
1006 | } |
950 | 1007 | ||
951 | 1008 | ||
952 | 1009 | ||
953 | 1010 | ||
954 | 1011 | ||
955 | 1012 | ||
956 | 1013 | ||
957 | 1014 | ||
958 | } |
1015 | } |
959 | 1016 | ||
960 | 1017 | ||
961 | 1018 |