Rev 231 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 231 | Rev 303 | ||
---|---|---|---|
Line 16... | Line 16... | ||
16 | public class MKMiniCanvas |
16 | public class MKMiniCanvas |
17 | extends Canvas |
17 | extends Canvas |
18 | implements Runnable |
18 | implements Runnable |
19 | { |
19 | { |
Line -... | Line 20... | ||
- | 20 | ||
Line 20... | Line 21... | ||
20 | 21 | private final static String RECORD_STORE_NAME="bluetoothurl"; |
|
21 | 22 | ||
22 | private BTSearcher bt_scanner; |
23 | private BTSearcher bt_scanner; |
- | 24 | public MKCommunicator mk=null; |
|
- | 25 | private MKStatistics mk_stat=null; |
|
- | 26 | private MKParamsEditor params_editor=null; |
|
23 | private MKCommunicator mk=null; |
27 | |
24 | private MKStatistics mk_stat=null; |
28 | |
Line 25... | Line 29... | ||
25 | private String err=""; |
29 | private String err=""; |
26 | private MKMiniMidlet root; |
30 | private DUBwise root; |
27 | 31 | ||
28 | private Image bg_img; |
32 | private Image bg_img; |
Line 35... | Line 39... | ||
35 | public int[] roll_line_pos_data; |
39 | public int[] roll_line_pos_data; |
Line 36... | Line 40... | ||
36 | 40 | ||
37 | public int[] accnick_line_pos_data; |
41 | public int[] accnick_line_pos_data; |
Line -... | Line 42... | ||
- | 42 | public int[] accroll_line_pos_data; |
|
- | 43 | ||
Line 38... | Line 44... | ||
38 | public int[] accroll_line_pos_data; |
44 | public int lcd_char_width=0; |
Line 39... | Line 45... | ||
39 | 45 | public int lcd_char_height=0; |
|
Line 40... | Line 46... | ||
40 | 46 | ||
Line -... | Line 47... | ||
- | 47 | public int frame_pos=0; |
|
- | 48 | ||
- | 49 | int line_scaler=20; |
|
- | 50 | ||
- | 51 | public int line_middle_y; |
|
- | 52 | ||
- | 53 | boolean quit=false; |
|
- | 54 | boolean rescan=true; |
|
- | 55 | int bg_offset=0; |
|
- | 56 | ||
- | 57 | public int state=-1; |
|
- | 58 | ||
- | 59 | ||
- | 60 | ||
- | 61 | public final static int STATEID_SCANNING=0; |
|
- | 62 | public final static int STATEID_DEVICESELECT=1; |
|
- | 63 | public final static int STATEID_MAINMENU=2; |
|
- | 64 | public final static int STATEID_MOTORTEST=3; |
|
- | 65 | public final static int STATEID_SELECT_PARAMSET=4; |
|
- | 66 | public final static int STATEID_EDIT_PARAMS=5; |
|
- | 67 | public final static int STATEID_FLIGHTVIEW=6; |
|
- | 68 | ||
- | 69 | ||
- | 70 | int local_max=-1; |
|
- | 71 | ||
- | 72 | int y_off=0; |
|
- | 73 | int spacer=0; |
|
- | 74 | int[] motor_test = {0,0,0,0}; |
|
- | 75 | ||
- | 76 | ||
- | 77 | String[] menu_items; |
|
- | 78 | int act_menu_select=0; |
|
- | 79 | ||
- | 80 | String[] lcd_lines =null; |
|
- | 81 | ||
- | 82 | public void paint_menu(Graphics g) |
|
- | 83 | { |
|
- | 84 | for ( int i=0;i<menu_items.length;i++) |
|
- | 85 | lcd_lines[i]=(act_menu_select==i?"# ":" ") + menu_items[i]; |
|
- | 86 | paint_lcd(g,true); |
|
- | 87 | } |
|
- | 88 | ||
- | 89 | public void menu_keypress(int keyCode) |
|
- | 90 | { |
|
- | 91 | switch (getGameAction (keyCode)) |
|
- | 92 | { |
|
- | 93 | case UP: |
|
- | 94 | if (act_menu_select!=0) act_menu_select--; |
|
- | 95 | break; |
|
- | 96 | ||
- | 97 | case DOWN: |
|
- | 98 | if (act_menu_select<(menu_items.length-1)) act_menu_select++; |
|
- | 99 | break; |
|
- | 100 | ||
- | 101 | } |
|
- | 102 | ||
- | 103 | } |
|
- | 104 | ||
- | 105 | ||
- | 106 | ||
- | 107 | public void paint_lcd(Graphics g,boolean bottomup) |
|
- | 108 | { |
|
- | 109 | int y; |
|
- | 110 | ||
- | 111 | for(int i=0;i<lcd_lines.length;i++) |
|
- | 112 | for (int pos=0;pos<20;pos++) |
|
- | 113 | { |
|
- | 114 | if (bottomup) |
|
- | 115 | y=this.getHeight()-(lcd_lines.length-i)*lcd_char_height; |
|
- | 116 | else |
|
- | 117 | y=i*lcd_char_height; |
|
41 | public int frame_pos=0; |
118 | g.setClip((lcd_img.getWidth()/222)*pos,y,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
42 | 119 | 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); |
|
Line 43... | Line 120... | ||
43 | int line_scaler=20; |
120 | |
Line -... | Line 121... | ||
- | 121 | } |
|
- | 122 | } |
|
- | 123 | ||
- | 124 | public MKMiniCanvas(DUBwise _root) |
|
- | 125 | { |
|
44 | 126 | ||
45 | public int line_middle_y; |
127 | root=_root; |
- | 128 | ||
46 | 129 | bt_scanner = new BTSearcher(); |
|
47 | public MKMiniCanvas(MKMiniMidlet _root) |
130 | params_editor = new MKParamsEditor(this); |
48 | { |
131 | mk = new MKCommunicator(); |
49 | 132 | mk_stat= new MKStatistics(mk); |
|
50 | root=_root; |
133 | |
51 | 134 | try |
|
52 | try |
135 | { |
53 | { |
136 | // load all needed images |
54 | lcd_img=Image.createImage("/lcd.png"); |
137 | lcd_img=Image.createImage("/lcd.png"); |
- | 138 | bt_img=Image.createImage("/bt.png"); |
|
- | 139 | bg_img=Image.createImage("/bg.jpg"); |
|
- | 140 | load_img=Image.createImage("/load.png"); |
|
Line 55... | Line 141... | ||
55 | bt_img=Image.createImage("/bt.png"); |
141 | } |
56 | bg_img=Image.createImage("/bg.jpg"); |
142 | catch (Exception e) |
57 | load_img=Image.createImage("/load.png"); |
143 | { |
Line 74... | Line 160... | ||
74 | accnick_line_pos_data[c]=-1; |
160 | accnick_line_pos_data[c]=-1; |
75 | accroll_line_pos_data[c]=-1; |
161 | accroll_line_pos_data[c]=-1; |
76 | } |
162 | } |
Line 77... | Line -... | ||
77 | - | ||
78 | - | ||
79 | // mk = new MKCommunicator("btspp://000BCE016B5B:1"); |
- | |
80 | //connect_mk("btspp://000BCE016B4F:1"); |
- | |
81 | 163 | ||
82 | 164 | ||
83 | try |
165 | try |
Line 84... | Line 166... | ||
84 | { |
166 | { |
85 | RecordStore recStore = RecordStore.openRecordStore("bturl", true ); |
167 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true ); |
- | 168 | ||
86 | 169 | if (recStore.getNumRecords()==2) |
|
87 | if (recStore.getNumRecords()==1) |
170 | { |
- | 171 | ||
- | 172 | //byte[] recData = new byte[recStore.getRecordSize(1)]; |
|
- | 173 | //int len = recStore.getRecord(1, recData, 0); |
|
- | 174 | ||
88 | { |
175 | //byte[] recData2 = new byte[recStore.getRecordSize(2)]; |
89 | byte[] recData = new byte[recStore.getRecordSize(1)]; |
176 | //int len2 = recStore.getRecord(2, recData, 0); |
- | 177 | ||
- | 178 | byte[] url_data=recStore.getRecord(1); |
|
- | 179 | byte[] name_data=recStore.getRecord(2); |
|
90 | int len = recStore.getRecord(1, recData, 0); |
180 | |
- | 181 | connect_mk(new String(url_data, 0, url_data.length),new String(name_data, 0, name_data.length)); |
|
91 | rescan=false; |
182 | |
92 | connect_mk(new String(recData, 0, len)); |
183 | } |
93 | } |
184 | recStore.closeRecordStore(); |
94 | } |
185 | } |
95 | catch (Exception e) |
186 | catch (Exception e) |
Line 96... | Line 187... | ||
96 | { |
187 | { |
- | 188 | err+=e.toString(); |
|
97 | err+=e.toString(); |
189 | } |
- | 190 | ||
98 | } |
191 | chg_state((mk.force_disconnect)?STATEID_SCANNING:STATEID_MAINMENU); |
Line 99... | Line 192... | ||
99 | 192 | ||
Line 100... | Line -... | ||
100 | if (mk==null) bt_scanner = new BTSearcher(); |
- | |
101 | - | ||
102 | new Thread(this).start(); |
- | |
103 | - | ||
104 | } |
- | |
Line 105... | Line 193... | ||
105 | 193 | ||
106 | boolean quit=false; |
194 | |
107 | boolean rescan=true; |
195 | new Thread(this).start(); |
108 | int bg_offset=0; |
196 | |
Line -... | Line 197... | ||
- | 197 | } |
|
109 | 198 | ||
110 | 199 | ||
111 | 200 | ||
112 | 201 | /****************************** Thread ******************/ |
|
Line 124... | Line 213... | ||
124 | long sleeptime=0; |
213 | long sleeptime=0; |
125 | // ticked thing |
214 | // ticked thing |
Line 126... | Line 215... | ||
126 | 215 | ||
Line 127... | Line -... | ||
127 | frame_pos++; |
- | |
128 | - | ||
129 | 216 | frame_pos++; |
|
130 | 217 | ||
131 | switch(state) |
218 | switch(state) |
Line 132... | Line 219... | ||
132 | { |
219 | { |
Line 144... | Line 231... | ||
144 | if (motor_test[act_motor]<0)motor_test[act_motor]=0; |
231 | if (motor_test[act_motor]<0)motor_test[act_motor]=0; |
145 | } |
232 | } |
Line 146... | Line 233... | ||
146 | 233 | ||
147 | mk.motor_test(motor_test); |
234 | mk.motor_test(motor_test); |
- | 235 | break; |
|
- | 236 | ||
- | 237 | case STATEID_SCANNING: |
|
- | 238 | if (!bt_scanner.searching) |
|
- | 239 | chg_state(STATEID_DEVICESELECT); |
|
- | 240 | ||
- | 241 | break; |
|
- | 242 | ||
- | 243 | ||
148 | break; |
244 | |
Line 149... | Line 245... | ||
149 | } |
245 | } |
150 | 246 | ||
151 | try { |
247 | try { |
Line 167... | Line 263... | ||
167 | 263 | ||
168 | 264 | ||
169 | 265 | ||
170 | try |
- | |
171 | { |
266 | try |
172 | RecordStore recStore = RecordStore.openRecordStore("bturl", true ); |
267 | { |
173 | 268 | RecordStore.deleteRecordStore(RECORD_STORE_NAME); |
|
174 | if (recStore.getNumRecords()==1) |
269 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true ); |
Line 175... | Line 270... | ||
175 | recStore.deleteRecord(1); |
270 | recStore.addRecord(mk.mk_url.getBytes(), 0, mk.mk_url.getBytes().length); |
176 | byte[] rec = mk.mk_url.getBytes(); |
271 | recStore.addRecord(mk.name.getBytes(), 0, mk.name.getBytes().length); |
177 | recStore.addRecord(rec, 0, rec.length); |
272 | recStore.closeRecordStore(); |
178 | 273 | ||
Line 184... | Line 279... | ||
184 | 279 | ||
185 | root.quit(); |
280 | root.quit(); |
186 | } |
281 | } |
187 | if (rescan) |
282 | if (rescan) |
188 | { |
- | |
189 | if (mk!=null) mk.close_connections(true); |
283 | { |
190 | mk=null; |
284 | |
191 | bt_scanner.search_again(); |
285 | rescan=false; |
Line 192... | Line 286... | ||
192 | } |
286 | } |
193 | 287 | ||
194 | try { |
288 | try { |
195 | rescan=false; |
289 | //rescan=false; |
196 | bg_offset--; |
290 | bg_offset--; |
197 | if (bg_offset==-bg_img.getWidth()) |
291 | if (bg_offset==-bg_img.getWidth()) |
198 | bg_offset=0; |
292 | bg_offset=0; |
Line 226... | Line 320... | ||
226 | } |
320 | } |
227 | } |
321 | } |
Line 228... | Line -... | ||
228 | - | ||
229 | - | ||
230 | - | ||
Line 231... | Line -... | ||
231 | public int state=-1; |
- | |
232 | - | ||
233 | public final static int STATEID_MOTORTEST=2; |
- | |
234 | - | ||
Line 235... | Line 322... | ||
235 | 322 | ||
236 | int local_max=-1; |
323 | |
237 | 324 | ||
238 | int[] motor_test = {0,0,0,0}; |
325 | |
Line 239... | Line 326... | ||
239 | 326 | ||
240 | // drawing section |
327 | // drawing section |
241 | public void paint(Graphics g) { |
328 | public void paint(Graphics g) { |
Line 253... | Line 340... | ||
253 | local_max=Math.abs(mk.debug_data.accnick()); |
340 | local_max=Math.abs(mk.debug_data.accnick()); |
254 | if (local_max<Math.abs(mk.debug_data.accroll())) |
341 | if (local_max<Math.abs(mk.debug_data.accroll())) |
255 | local_max=Math.abs(mk.debug_data.accroll()); |
342 | local_max=Math.abs(mk.debug_data.accroll()); |
256 | line_scaler= local_max/(this.getHeight()/2)+1; |
343 | line_scaler= local_max/(this.getHeight()/2)+1; |
257 | } |
344 | } |
258 | int spacer=(g.getFont().getHeight()); |
345 | spacer=(g.getFont().getHeight()); |
259 | g.setColor(0xFFFFFF); |
346 | g.setColor(0xFFFFFF); |
260 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
347 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
261 | g.drawImage(bg_img,bg_offset,0, g.TOP | g.LEFT); |
348 | g.drawImage(bg_img,bg_offset,0, g.TOP | g.LEFT); |
Line 262... | Line 349... | ||
262 | 349 | ||
263 | if (bg_offset+bg_img.getWidth()<this.getWidth()) |
350 | if (bg_offset+bg_img.getWidth()<this.getWidth()) |
Line 264... | Line -... | ||
264 | g.drawImage(bg_img,bg_offset+bg_img.getWidth(),0, g.TOP | g.LEFT); |
- | |
- | 351 | g.drawImage(bg_img,bg_offset+bg_img.getWidth(),0, g.TOP | g.LEFT); |
|
Line 265... | Line 352... | ||
265 | 352 | ||
266 | 353 | ||
267 | 354 | g.setColor(0x000000); |
|
268 | 355 | ||
Line 277... | Line 364... | ||
277 | g.drawString(""+motor_test[bar] ,this.getWidth()/8+bar*2*this.getWidth()/8,10,Graphics.TOP | Graphics.HCENTER); |
364 | g.drawString(""+motor_test[bar] ,this.getWidth()/8+bar*2*this.getWidth()/8,10,Graphics.TOP | Graphics.HCENTER); |
278 | if(bar!=4) g.drawString(""+mk.debug_data.motor_val(bar) ,this.getWidth()/8+bar*2*this.getWidth()/8,30,Graphics.TOP | Graphics.HCENTER); |
365 | if(bar!=4) g.drawString(""+mk.debug_data.motor_val(bar) ,this.getWidth()/8+bar*2*this.getWidth()/8,30,Graphics.TOP | Graphics.HCENTER); |
279 | } |
366 | } |
280 | break; |
367 | break; |
Line 281... | Line 368... | ||
281 | 368 | ||
282 | default: |
369 | case STATEID_EDIT_PARAMS: |
283 | g.setColor(0x000000); |
- | |
284 | 370 | params_editor.paint(g); |
|
285 | if (mk==null) |
- | |
286 | { |
- | |
287 | - | ||
288 | - | ||
289 | if (bt_scanner.searching) |
- | |
Line 290... | Line -... | ||
290 | { |
- | |
- | 371 | break; |
|
291 | 372 | ||
Line 292... | Line 373... | ||
292 | 373 | case STATEID_SCANNING: |
|
293 | g.drawString("scanning for BT-Devices",this.getWidth()/2,this.getHeight()/2+load_img.getHeight()/8,Graphics.TOP | Graphics.HCENTER); |
374 | paint_lcd(g,true); |
294 | 375 | ||
295 | g.setClip(this.getWidth()/2-load_img.getWidth()/6,this.getHeight()/2-load_img.getHeight()/8, load_img.getWidth()/4,load_img.getHeight()/3);; |
376 | g.setClip(this.getWidth()/2-load_img.getWidth()/6,this.getHeight()/2-load_img.getHeight()/8, load_img.getWidth()/4,load_img.getHeight()/3);; |
- | 377 | 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); |
|
- | 378 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
|
- | 379 | break; |
|
- | 380 | ||
- | 381 | case STATEID_MAINMENU: |
|
296 | 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); |
382 | g.drawString("MK-Connection(" + (mk.connected?("open"+((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s"):"close")+"):",0,y_off,Graphics.TOP | Graphics.LEFT); |
- | 383 | y_off+=spacer; |
|
297 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
384 | g.drawString(" Name:" + mk.name,0,y_off,Graphics.TOP | Graphics.LEFT); |
298 | } |
385 | y_off+=spacer; |
- | 386 | g.drawString(" URL:" + mk.mk_url,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
299 | else |
387 | y_off+=spacer; |
- | 388 | g.drawString(" Version:" + mk.version.str,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
300 | { |
389 | y_off+=spacer; |
301 | g.drawString("Press key 0-"+(bt_scanner.remote_device_count-1) + " to continue" ,0,0,Graphics.TOP | Graphics.LEFT); |
- | |
302 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
390 | g.drawString("Packet Traffic:",0,y_off,Graphics.TOP | Graphics.LEFT); |
- | 391 | y_off+=spacer; |
|
Line -... | Line 392... | ||
- | 392 | g.drawString( " debug:"+mk.debug_data_count+ " LCD:" + mk.lcd_data_count + " vers:" + mk.version_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 393 | y_off+=spacer; |
|
303 | g.drawString("#"+i+">" + bt_scanner.remote_device_name[i]+"("+bt_scanner.remote_device_mac[i]+")",0,spacer+spacer*i,Graphics.TOP | Graphics.LEFT); |
394 | g.drawString( " other:"+mk.other_data_count+" params:"+mk.params_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | 395 | ||
304 | 396 | ||
- | 397 | ||
305 | } |
398 | |
306 | 399 | // falltru wanted |
|
307 | 400 | case STATEID_SELECT_PARAMSET: |
|
308 | 401 | ||
Line 309... | Line 402... | ||
309 | 402 | case STATEID_DEVICESELECT: |
|
Line 310... | Line 403... | ||
310 | } |
403 | paint_menu(g); |
- | 404 | break; |
|
- | 405 | ||
- | 406 | case STATEID_FLIGHTVIEW: |
|
- | 407 | ||
- | 408 | 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); |
|
- | 409 | ||
- | 410 | y_off+=spacer; |
|
- | 411 | ||
- | 412 | 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); |
|
311 | else // MK is connected |
413 | y_off+=spacer; |
312 | { |
- | |
313 | int y_off=0; |
- | |
314 | 414 | ||
315 | 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+")",0,y_off,Graphics.TOP | Graphics.LEFT); |
415 | |
- | 416 | 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); |
|
- | 417 | y_off+=spacer; |
|
Line 316... | Line -... | ||
316 | - | ||
317 | y_off+=spacer; |
- | |
318 | - | ||
319 | 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); |
- | |
320 | y_off+=spacer; |
- | |
321 | - | ||
322 | - | ||
323 | 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); |
- | |
324 | y_off+=spacer; |
- | |
325 | - | ||
326 | if (mk.connected) |
- | |
Line -... | Line 418... | ||
- | 418 | ||
- | 419 | if (mk.connected) |
|
327 | { |
420 | { |
- | 421 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 422 | y_off+=spacer; |
|
328 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
423 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
329 | y_off+=spacer; |
- | |
330 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | |
331 | y_off+=spacer; |
424 | y_off+=spacer; |
332 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
425 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
Line 333... | Line 426... | ||
333 | } |
426 | } |
334 | 427 | ||
335 | 428 | ||
Line 349... | Line 442... | ||
349 | g.setClip(0,0,this.getWidth(),this.getHeight()); |
442 | g.setClip(0,0,this.getWidth(),this.getHeight()); |
Line 350... | Line 443... | ||
350 | 443 | ||
351 | 444 | ||
Line 352... | Line 445... | ||
352 | 445 | ||
Line 353... | Line 446... | ||
353 | 446 | ||
Line 376... | Line 469... | ||
376 | 469 | ||
Line 377... | Line 470... | ||
377 | } |
470 | } |
Line -... | Line 471... | ||
- | 471 | ||
- | 472 | } |
|
378 | 473 | ||
379 | } |
474 | |
Line 380... | Line 475... | ||
380 | 475 | ||
381 | } catch (Exception e) {} |
476 | } catch (Exception e) {} |
382 | } |
- | |
383 | 477 | } |
|
Line 384... | Line 478... | ||
384 | private void connect_mk(String url) |
478 | |
Line 385... | Line 479... | ||
385 | { |
479 | private void connect_mk(String url,String name) |
386 | mk = new MKCommunicator(url); |
480 | { |
Line 402... | Line 496... | ||
402 | public boolean fullscreen=false; |
496 | public boolean fullscreen=false; |
403 | public int act_motor=0; |
497 | public int act_motor=0; |
404 | public int act_motor_increase=0; |
498 | public int act_motor_increase=0; |
405 | public boolean motor_test_sel_all=false; |
499 | public boolean motor_test_sel_all=false; |
Line -... | Line 500... | ||
- | 500 | ||
406 | 501 | public String[] main_menu_items={"Telemetry" , "Motor Test" , "Flight Settings","(NA)Tool Settings","Change Device" , "Quit " }; |
|
407 | public void chg_state(int _state) |
502 | public void chg_state(int next_state) |
- | 503 | { |
|
- | 504 | act_menu_select=0; |
|
- | 505 | // prepare next state |
|
- | 506 | switch(next_state) |
|
- | 507 | { |
|
- | 508 | case STATEID_SCANNING: |
|
- | 509 | lcd_lines=new String[3]; |
|
- | 510 | lcd_lines[0]="Scanning for Devices"; |
|
- | 511 | lcd_lines[1]=" "; |
|
- | 512 | lcd_lines[2]="DUBwise v0.34 "; |
|
- | 513 | mk.close_connections(true); |
|
- | 514 | ||
- | 515 | bt_scanner.search(); |
|
- | 516 | break; |
|
- | 517 | ||
- | 518 | case STATEID_SELECT_PARAMSET: |
|
- | 519 | menu_items=new String[5]; |
|
- | 520 | menu_items[0]="ParamSet No 1"; |
|
- | 521 | menu_items[1]="ParamSet No 2"; |
|
- | 522 | menu_items[2]="ParamSet No 3"; |
|
- | 523 | menu_items[3]="ParamSet No 4"; |
|
- | 524 | menu_items[4]="ParamSet No 5"; |
|
- | 525 | lcd_lines=new String[5]; |
|
- | 526 | break; |
|
- | 527 | ||
- | 528 | case STATEID_DEVICESELECT: |
|
- | 529 | menu_items=new String[bt_scanner.remote_device_count]; |
|
- | 530 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
|
- | 531 | menu_items[i]=bt_scanner.remote_device_name[i]; |
|
- | 532 | lcd_lines=new String[bt_scanner.remote_device_count]; |
|
- | 533 | break; |
|
- | 534 | ||
- | 535 | case STATEID_MAINMENU: |
|
- | 536 | menu_items=main_menu_items; |
|
- | 537 | lcd_lines=new String[menu_items.length]; |
|
- | 538 | break; |
|
- | 539 | ||
- | 540 | } |
|
- | 541 | ||
408 | { |
542 | // switch state |
409 | state=_state; |
543 | state=next_state; |
Line 410... | Line 544... | ||
410 | } |
544 | } |
411 | 545 | ||
Line 423... | Line 557... | ||
423 | } |
557 | } |
Line 424... | Line 558... | ||
424 | 558 | ||
425 | public void keyPressed(int keyCode) |
559 | public void keyPressed(int keyCode) |
Line -... | Line 560... | ||
- | 560 | { |
|
- | 561 | ||
- | 562 | if (keyCode==KEY_STAR) |
|
- | 563 | { |
|
- | 564 | chg_state(STATEID_MAINMENU); |
|
- | 565 | return; |
|
- | 566 | } |
|
- | 567 | if (keyCode==KEY_POUND) |
|
- | 568 | { |
|
- | 569 | fullscreen=!fullscreen; |
|
- | 570 | setFullScreenMode(fullscreen); |
|
426 | { |
571 | return; |
427 | 572 | } |
|
428 | switch(state) |
573 | switch(state) |
429 | { |
574 | { |
430 | case STATEID_MOTORTEST: |
575 | case STATEID_MOTORTEST: |
Line 442... | Line 587... | ||
442 | motor_test_sel_all=!motor_test_sel_all; |
587 | motor_test_sel_all=!motor_test_sel_all; |
443 | break; |
588 | break; |
Line 444... | Line 589... | ||
444 | 589 | ||
445 | case LEFT: |
590 | case LEFT: |
446 | act_motor--; |
591 | act_motor--; |
447 | if (act_motor<0) {act_motor=0; chg_state(-1); } |
592 | if (act_motor<0) {act_motor=0; chg_state(STATEID_MAINMENU); } |
Line 448... | Line 593... | ||
448 | break; |
593 | break; |
449 | 594 | ||
450 | case RIGHT: |
595 | case RIGHT: |
451 | act_motor++; |
596 | act_motor++; |
452 | act_motor%=4; |
597 | act_motor%=4; |
Line 453... | Line 598... | ||
453 | break; |
598 | break; |
- | 599 | } |
|
- | 600 | ||
- | 601 | break; |
|
- | 602 | case STATEID_MAINMENU: |
|
- | 603 | if ( getGameAction (keyCode)==FIRE ) |
|
- | 604 | switch(act_menu_select) |
|
- | 605 | { |
|
- | 606 | case 0: |
|
- | 607 | chg_state(STATEID_FLIGHTVIEW); |
|
- | 608 | break; |
|
- | 609 | ||
- | 610 | case 1: |
|
- | 611 | chg_state(STATEID_MOTORTEST); |
|
- | 612 | break; |
|
- | 613 | ||
- | 614 | case 2: |
|
- | 615 | chg_state(STATEID_SELECT_PARAMSET); |
|
- | 616 | break; |
|
- | 617 | case 3: |
|
- | 618 | break; |
|
- | 619 | ||
- | 620 | case 4: |
|
- | 621 | chg_state(STATEID_SCANNING); |
|
- | 622 | break; |
|
- | 623 | ||
- | 624 | case 5: |
|
- | 625 | quit=true; |
|
- | 626 | break; |
|
- | 627 | ||
Line -... | Line 628... | ||
- | 628 | } |
|
- | 629 | else menu_keypress(keyCode); |
|
- | 630 | break; |
|
- | 631 | ||
454 | } |
632 | case STATEID_SELECT_PARAMSET: |
- | 633 | if ( getGameAction (keyCode)==FIRE ) |
|
- | 634 | { |
|
- | 635 | chg_state(STATEID_EDIT_PARAMS); |
|
455 | 636 | } |
|
- | 637 | else menu_keypress(keyCode); |
|
456 | break; |
638 | break; |
- | 639 | case STATEID_DEVICESELECT: |
|
- | 640 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
|
457 | 641 | { |
|
- | 642 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1",bt_scanner.remote_device_name[keyCode-this.KEY_NUM0]); |
|
- | 643 | chg_state(STATEID_MAINMENU); |
|
- | 644 | } |
|
- | 645 | else |
|
- | 646 | if ( getGameAction (keyCode)==FIRE ) |
|
- | 647 | { |
|
- | 648 | connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
|
- | 649 | chg_state(STATEID_MAINMENU); |
|
- | 650 | } |
|
- | 651 | else menu_keypress(keyCode); |
|
- | 652 | break; |
|
- | 653 | ||
- | 654 | case STATEID_EDIT_PARAMS: |
|
- | 655 | params_editor.keypress(keyCode,getGameAction (keyCode)) ; |
|
- | 656 | break; |
|
458 | default: |
657 | |
459 | if ((mk==null)&&(keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
658 | case STATEID_FLIGHTVIEW: |
- | 659 | ||
460 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1"); |
660 | switch (getGameAction (keyCode)) |
Line 461... | Line 661... | ||
461 | else |
661 | { |
462 | { |
662 | case UP: |
463 | switch (keyCode) |
- | |
464 | { |
663 | mk.LCD.LCD_PREVPAGE(); |
Line 465... | Line -... | ||
465 | - | ||
466 | case KEY_STAR: |
- | |
467 | mk.other_data_count=23; |
- | |
468 | quit=true; |
- | |
469 | break; |
- | |
470 | - | ||
471 | case KEY_POUND: |
- | |
472 | //rescan=true; |
- | |
473 | fullscreen=!fullscreen; |
- | |
474 | setFullScreenMode(fullscreen); |
664 | break; |
475 | 665 | ||
476 | break; |
666 | case DOWN: |
Line 477... | Line -... | ||
477 | } |
- | |
478 | switch (getGameAction (keyCode)) |
- | |
479 | { |
- | |
480 | case UP: |
- | |
481 | mk.LCD.LCD_PREVPAGE(); |
- | |
482 | break; |
- | |
483 | - | ||
484 | case DOWN: |
- | |
485 | mk.LCD.LCD_NEXTPAGE(); |
667 | mk.LCD.LCD_NEXTPAGE(); |
486 | break; |
668 | break; |
487 | 669 | ||
- | 670 | case LEFT: |
|
Line 488... | Line 671... | ||
488 | case RIGHT: |
671 | chg_state(STATEID_MAINMENU); |
489 | state=STATEID_MOTORTEST; |
672 | break; |