Subversion Repositories Projects

Rev

Rev 62 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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