Subversion Repositories FlightCtrl

Rev

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;