Rev 82 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 82 | Rev 135 | ||
---|---|---|---|
1 | /*************************************************************** |
1 | /*************************************************************** |
2 | * |
2 | * |
3 | * User Interface ( Canvas ) of DUBwise |
3 | * User Interface ( Canvas ) of DUBwise |
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 | import javax.microedition.media.*; |
14 | import javax.microedition.media.*; |
15 | import javax.microedition.media.control.*; |
15 | import javax.microedition.media.control.*; |
16 | 16 | ||
17 | public class DUBwiseCanvas |
17 | public class DUBwiseCanvas |
18 | extends Canvas |
18 | extends Canvas |
19 | implements Runnable |
19 | implements Runnable,DUBwiseDefinitions |
20 | { |
20 | { |
- | 21 | ||
- | 22 | int act_wp; |
|
21 | 23 | ||
22 | // name/handle for the recordStore to memorize some stuff |
24 | // name/handle for the recordStore to memorize some stuff |
23 | private final static String RECORD_STORE_NAME="DUBSETT"; |
25 | private final static String RECORD_STORE_NAME="DUBSETT"; |
24 | 26 | ||
25 | private BTSearcher bt_scanner; |
27 | private BTSearcher bt_scanner; |
26 | public MKCommunicator mk=null; |
28 | public MKCommunicator mk=null; |
27 | private MKStatistics mk_stat=null; |
29 | private MKStatistics mk_stat=null; |
28 | private MKParamsEditor params_editor=null; |
30 | private MKParamsEditor params_editor=null; |
29 | public DUBwiseDebug debug=null; |
31 | public DUBwiseDebug debug=null; |
30 | 32 | ||
31 | //#if voice_mode!="no_voice" |
33 | //#if voice_mode!="no_voice" |
32 | private MKStatusVoice status_voice; |
34 | private MKStatusVoice status_voice; |
33 | //#endif |
35 | //#endif |
34 | 36 | ||
35 | private String err=""; |
37 | private String err=""; |
36 | private DUBwise root; |
38 | private DUBwise root; |
37 | 39 | ||
38 | private UFOProber ufo_prober; |
40 | public UFOProber ufo_prober; |
39 | 41 | ||
40 | byte[] settings_arr; |
42 | byte[] settings_arr; |
41 | 43 | ||
42 | public boolean do_vibra=true; |
44 | public boolean do_vibra=true; |
43 | public boolean do_sound=true; |
45 | public boolean do_sound=true; |
44 | public boolean do_graph=true; |
46 | public boolean do_graph=true; |
45 | public boolean keep_lighton=false; |
47 | public boolean keep_lighton=false; |
46 | 48 | ||
47 | private Image bg_img; |
49 | private Image bg_img; |
48 | private Image bt_img; |
50 | private Image bt_img; |
49 | private Image lcd_img; |
51 | private Image lcd_img; |
50 | private Image load_img; |
52 | private Image load_img; |
51 | 53 | ||
- | 54 | ||
- | 55 | public boolean fullscreen=false; |
|
- | 56 | public int act_motor=0; |
|
- | 57 | public int act_motor_increase=0; |
|
- | 58 | public boolean motor_test_sel_all=false; |
|
- | 59 | ||
52 | 60 | ||
53 | final static int SKINID_DARK= 0; |
61 | final static int SKINID_DARK= 0; |
54 | final static int SKINID_LIGHT = 1; |
62 | final static int SKINID_LIGHT = 1; |
55 | 63 | ||
56 | //holds id of actual skin |
64 | //holds id of actual skin |
57 | byte act_skin=SKINID_DARK; |
65 | byte act_skin=SKINID_DARK; |
58 | 66 | ||
59 | 67 | ||
60 | public int[] nick_line_pos_data; |
68 | public int[] nick_line_pos_data; |
61 | public int[] roll_line_pos_data; |
69 | public int[] roll_line_pos_data; |
62 | 70 | ||
63 | public int[] accnick_line_pos_data; |
71 | public int[] accnick_line_pos_data; |
64 | public int[] accroll_line_pos_data; |
72 | public int[] accroll_line_pos_data; |
65 | 73 | ||
66 | public int lcd_char_width=0; |
74 | public int lcd_char_width=0; |
67 | public int lcd_char_height=0; |
75 | public int lcd_char_height=0; |
68 | 76 | ||
69 | public int frame_pos=0; |
77 | public int frame_pos=0; |
- | 78 | ||
- | 79 | public int user_intent=USER_INTENT_NONE; |
|
70 | 80 | ||
71 | int line_scaler=20; |
81 | int line_scaler=20; |
72 | 82 | ||
73 | int rawdebug_cursor_y=0; |
83 | int rawdebug_cursor_y=0; |
74 | int rawdebug_off_y=0; |
84 | int rawdebug_off_y=0; |
75 | 85 | ||
76 | public int line_middle_y; |
86 | public int line_middle_y; |
77 | 87 | ||
78 | boolean quit=false; |
88 | boolean quit=false; |
79 | boolean rescan=true; |
89 | boolean rescan=true; |
80 | int bg_offset=0; |
90 | int bg_offset=0; |
81 | 91 | ||
82 | // variable to hold the current state |
92 | // variable to hold the current state |
83 | public int state=-1; |
93 | public int state=-1; |
84 | - | ||
85 | // id for each state - must just be uniq - order isnt important |
- | |
86 | public final static int STATEID_SCANNING =0; |
- | |
87 | public final static int STATEID_DEVICESELECT =1; |
- | |
88 | public final static int STATEID_MAINMENU =2; |
- | |
89 | public final static int STATEID_MOTORTEST =3; |
- | |
90 | public final static int STATEID_SELECT_PARAMSET =4; |
- | |
91 | public final static int STATEID_EDIT_PARAMS =5; |
- | |
92 | public final static int STATEID_HANDLE_PARAMS =6; |
- | |
93 | public final static int STATEID_FLIGHTVIEW =7; |
- | |
94 | public final static int STATEID_RAWDEBUG =8; |
- | |
95 | public final static int STATEID_KEYCONTROL =9; |
- | |
96 | public final static int STATEID_SETTINGSMENU =10; |
- | |
97 | public final static int STATEID_STICKVIEW =11; |
- | |
98 | public final static int STATEID_CAMMODE =12; |
- | |
99 | - | ||
100 | - | ||
101 | public boolean fullscreen=false; |
- | |
102 | public int act_motor=0; |
- | |
103 | public int act_motor_increase=0; |
- | |
104 | public boolean motor_test_sel_all=false; |
- | |
105 | - | ||
106 | public String[] main_menu_items={"Telemetry","Raw Debug", "view RC-data", "MK-KeyControl", "Motor Test" , "Flight Settings","Tool Settings","Remote Cam","Proxy","Change Device" , "Quit " }; |
- | |
107 | public final static int MAINMENU_TELEMETRY =0; |
- | |
108 | public final static int MAINMENU_RAWDEBUG =1+MAINMENU_TELEMETRY; |
- | |
109 | public final static int MAINMENU_STICKS =1+MAINMENU_RAWDEBUG; |
- | |
110 | public final static int MAINMENU_KEYCONTROL =1+MAINMENU_STICKS; |
- | |
111 | public final static int MAINMENU_MOTORTEST =1+MAINMENU_KEYCONTROL; |
- | |
112 | public final static int MAINMENU_PARAMS =1+MAINMENU_MOTORTEST; |
- | |
113 | public final static int MAINMENU_SETTINGSMENU =1+MAINMENU_PARAMS; |
- | |
114 | public final static int MAINMENU_CAMMODE =1+MAINMENU_SETTINGSMENU; |
- | |
115 | public final static int MAINMENU_PROXY =1+MAINMENU_CAMMODE; |
- | |
116 | public final static int MAINMENU_DEVICESELECT =1+MAINMENU_PROXY; |
- | |
117 | public final static int MAINMENU_QUIT =1+MAINMENU_DEVICESELECT; |
- | |
118 | - | ||
119 | public String[] settings_menu_items={"Skin ","Sound ","Vibra " ,"Graph ","FullScreen " ,"Keep BGLight " ,"Back" }; |
- | |
120 | public final static int SETTINGSMENU_CHANGESKIN =0; |
- | |
121 | public final static int SETTINGSMENU_SOUNDTOGGLE =1; |
- | |
122 | public final static int SETTINGSMENU_VIBRATOGGLE =2; |
- | |
123 | public final static int SETTINGSMENU_GRAPHTOGGLE =3; |
- | |
124 | public final static int SETTINGSMENU_FULLSCREENTOGGLE =4; |
- | |
125 | public final static int SETTINGSMENU_LIGHTTOGGLE =5; |
- | |
126 | public final static int SETTINGSMENU_BACK =6; |
- | |
127 | 94 | ||
128 | 95 | ||
129 | 96 | ||
130 | int local_max=-1; |
97 | int local_max=-1; |
131 | 98 | ||
132 | int y_off=0; |
99 | int y_off=0; |
133 | int spacer=0; |
100 | int spacer=0; |
134 | int spacer1=0; |
101 | int spacer1=0; |
135 | 102 | ||
136 | int[] motor_test = {0,0,0,0}; |
103 | int[] motor_test = {0,0,0,0}; |
137 | 104 | ||
138 | 105 | ||
139 | String[] menu_items; |
106 | String[] menu_items; |
140 | int act_menu_select=0; |
107 | int act_menu_select=0; |
141 | 108 | ||
142 | String[] lcd_lines =null; |
109 | String[] lcd_lines =null; |
143 | 110 | ||
144 | public void paint_menu(Graphics g) |
111 | public void paint_menu(Graphics g) |
145 | { |
112 | { |
146 | for ( int i=0;i<menu_items.length;i++) |
113 | for ( int i=0;i<menu_items.length;i++) |
147 | { |
114 | { |
148 | if ((frame_pos%3)!=0) |
115 | if ((frame_pos%3)!=0) |
149 | { |
116 | { |
150 | lcd_lines[i]=(act_menu_select==i?">":" ") + menu_items[i]; |
117 | lcd_lines[i]=(act_menu_select==i?">":" ") + menu_items[i]; |
151 | for ( int ii=0;ii<(18-menu_items[i].length());ii++) |
118 | for ( int ii=0;ii<(18-menu_items[i].length());ii++) |
152 | lcd_lines[i]+=" "; |
119 | lcd_lines[i]+=" "; |
153 | if (act_menu_select==i) |
120 | if (act_menu_select==i) |
154 | lcd_lines[i]+="<"; |
121 | lcd_lines[i]+="<"; |
155 | } |
122 | } |
156 | else |
123 | else |
157 | lcd_lines[i]=" " + menu_items[i]; |
124 | lcd_lines[i]=" " + menu_items[i]; |
158 | 125 | ||
159 | 126 | ||
160 | } |
127 | } |
161 | paint_lcd(g,true); |
128 | paint_lcd(g,true); |
162 | } |
129 | } |
163 | 130 | ||
164 | public void menu_keypress(int keyCode) |
131 | public void menu_keypress(int keyCode) |
165 | { |
132 | { |
166 | switch (getGameAction (keyCode)) |
133 | switch (getGameAction (keyCode)) |
167 | { |
134 | { |
168 | case UP: |
135 | case UP: |
169 | if (act_menu_select!=0) act_menu_select--; |
136 | if (act_menu_select!=0) act_menu_select--; |
170 | else |
137 | else |
171 | act_menu_select=menu_items.length-1; |
138 | act_menu_select=menu_items.length-1; |
172 | break; |
139 | break; |
173 | 140 | ||
174 | case DOWN: |
141 | case DOWN: |
175 | if (act_menu_select<(menu_items.length-1)) act_menu_select++; |
142 | if (act_menu_select<(menu_items.length-1)) act_menu_select++; |
176 | else act_menu_select=0; |
143 | else act_menu_select=0; |
177 | break; |
144 | break; |
178 | 145 | ||
179 | } |
146 | } |
180 | 147 | ||
181 | } |
148 | } |
182 | 149 | ||
183 | public boolean cam_condition() |
150 | public boolean cam_condition() |
184 | { |
151 | { |
185 | return (mk.stick_data.stick[5]>100); |
152 | return (mk.stick_data.stick[5]>100); |
186 | 153 | ||
187 | } |
154 | } |
188 | 155 | ||
189 | public void paint_lcd(Graphics g,boolean bottomup) |
156 | public void paint_lcd(Graphics g,boolean bottomup) |
190 | { |
157 | { |
191 | 158 | ||
192 | int y; |
159 | int y; |
193 | 160 | ||
194 | for(int i=0;i<lcd_lines.length;i++) |
161 | for(int i=0;i<lcd_lines.length;i++) |
195 | for (int pos=0;pos<20;pos++) |
162 | for (int pos=0;pos<20;pos++) |
196 | { |
163 | { |
197 | if (bottomup) |
164 | if (bottomup) |
198 | y=this.getHeight()-(lcd_lines.length-i)*lcd_char_height; |
165 | y=this.getHeight()-(lcd_lines.length-i)*lcd_char_height; |
199 | else |
166 | else |
200 | y=i*lcd_char_height; |
167 | y=i*lcd_char_height; |
201 | g.setClip((lcd_img.getWidth()/222)*pos,y,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
168 | g.setClip((lcd_img.getWidth()/222)*pos,y,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
202 | 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); |
169 | 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); |
203 | 170 | ||
204 | } |
171 | } |
205 | } |
172 | } |
206 | 173 | ||
207 | public void load_images() |
174 | public void load_images() |
208 | { |
175 | { |
209 | try |
176 | try |
210 | { |
177 | { |
211 | // load all needed images |
178 | // load all needed images |
212 | switch (act_skin) |
179 | switch (act_skin) |
213 | { |
180 | { |
214 | case SKINID_DARK: |
181 | case SKINID_DARK: |
215 | lcd_img=Image.createImage("/lcd_green.png"); |
182 | lcd_img=Image.createImage("/lcd_green.png"); |
216 | bg_img=Image.createImage("/starfield.jpg"); break; |
183 | bg_img=Image.createImage("/starfield.jpg"); break; |
217 | 184 | ||
218 | case SKINID_LIGHT: |
185 | case SKINID_LIGHT: |
219 | lcd_img=Image.createImage("/lcd_blue.png"); |
186 | lcd_img=Image.createImage("/lcd_blue.png"); |
220 | bg_img=Image.createImage("/clouds.jpg"); |
187 | bg_img=Image.createImage("/clouds.jpg"); |
221 | break; |
188 | break; |
222 | } |
189 | } |
223 | 190 | ||
224 | 191 | ||
225 | bt_img=Image.createImage("/bt.png"); |
192 | bt_img=Image.createImage("/bt.png"); |
226 | 193 | ||
227 | load_img=Image.createImage("/load.png"); |
194 | load_img=Image.createImage("/load.png"); |
228 | } |
195 | } |
229 | catch (Exception e) |
196 | catch (Exception e) |
230 | { |
197 | { |
231 | err+=e.toString(); |
198 | err+=e.toString(); |
232 | } |
199 | } |
233 | 200 | ||
234 | lcd_char_width=lcd_img.getWidth()/222; |
201 | lcd_char_width=lcd_img.getWidth()/222; |
235 | lcd_char_height=lcd_img.getHeight(); |
202 | lcd_char_height=lcd_img.getHeight(); |
236 | 203 | ||
237 | 204 | ||
238 | nick_line_pos_data=new int[bg_img.getWidth()]; |
205 | nick_line_pos_data=new int[bg_img.getWidth()]; |
239 | roll_line_pos_data=new int[bg_img.getWidth()]; |
206 | roll_line_pos_data=new int[bg_img.getWidth()]; |
240 | accnick_line_pos_data=new int[bg_img.getWidth()]; |
207 | accnick_line_pos_data=new int[bg_img.getWidth()]; |
241 | accroll_line_pos_data=new int[bg_img.getWidth()]; |
208 | accroll_line_pos_data=new int[bg_img.getWidth()]; |
242 | 209 | ||
243 | for (int c=0;c<bg_img.getWidth();c++) |
210 | for (int c=0;c<bg_img.getWidth();c++) |
244 | { |
211 | { |
245 | nick_line_pos_data[c]=-1; |
212 | nick_line_pos_data[c]=-1; |
246 | roll_line_pos_data[c]=-1; |
213 | roll_line_pos_data[c]=-1; |
247 | accnick_line_pos_data[c]=-1; |
214 | accnick_line_pos_data[c]=-1; |
248 | accroll_line_pos_data[c]=-1; |
215 | accroll_line_pos_data[c]=-1; |
249 | } |
216 | } |
250 | 217 | ||
251 | } |
218 | } |
252 | 219 | ||
253 | public DUBwiseCanvas(DUBwise _root) |
220 | public DUBwiseCanvas(DUBwise _root) |
254 | { |
221 | { |
255 | 222 | ||
256 | 223 | ||
257 | root=_root; |
224 | root=_root; |
258 | 225 | ||
259 | debug = new DUBwiseDebug(); |
226 | debug = new DUBwiseDebug(this); |
260 | 227 | ||
261 | bt_scanner = new BTSearcher(); |
228 | bt_scanner = new BTSearcher(); |
262 | params_editor = new MKParamsEditor(this); |
229 | params_editor = new MKParamsEditor(this); |
263 | ufo_prober = new UFOProber(); |
230 | ufo_prober = new UFOProber(); |
264 | 231 | ||
265 | mk = new MKCommunicator(root,debug); |
232 | mk = new MKCommunicator(root,debug); |
266 | mk_stat = new MKStatistics(mk); |
233 | mk_stat = new MKStatistics(mk); |
267 | 234 | ||
268 | 235 | ||
269 | //#if voice_mode!="no_voice" |
236 | //#if voice_mode!="no_voice" |
270 | status_voice=new MKStatusVoice(mk,this); |
237 | status_voice=new MKStatusVoice(mk,this); |
271 | //#endif |
238 | //#endif |
272 | 239 | ||
273 | 240 | ||
274 | try |
241 | try |
275 | { |
242 | { |
276 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true ); |
243 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true ); |
277 | 244 | ||
278 | if (recStore.getNumRecords()==3) |
245 | if (recStore.getNumRecords()==3) |
279 | { |
246 | { |
280 | 247 | ||
281 | //byte[] recData = new byte[recStore.getRecordSize(1)]; |
248 | //byte[] recData = new byte[recStore.getRecordSize(1)]; |
282 | //int len = recStore.getRecord(1, recData, 0); |
249 | //int len = recStore.getRecord(1, recData, 0); |
283 | 250 | ||
284 | //byte[] recData2 = new byte[recStore.getRecordSize(2)]; |
251 | //byte[] recData2 = new byte[recStore.getRecordSize(2)]; |
285 | //int len2 = recStore.getRecord(2, recData, 0); |
252 | //int len2 = recStore.getRecord(2, recData, 0); |
286 | 253 | ||
287 | byte[] url_data=recStore.getRecord(1); |
254 | byte[] url_data=recStore.getRecord(1); |
288 | byte[] name_data=recStore.getRecord(2); |
255 | byte[] name_data=recStore.getRecord(2); |
289 | settings_arr=recStore.getRecord(3); |
256 | settings_arr=recStore.getRecord(3); |
290 | 257 | ||
291 | act_skin=settings_arr[0]; |
258 | act_skin=settings_arr[0]; |
292 | do_sound=(settings_arr[1]==1); |
259 | do_sound=(settings_arr[1]==1); |
293 | do_vibra=(settings_arr[2]==1); |
260 | do_vibra=(settings_arr[2]==1); |
294 | do_graph=(settings_arr[3]==1); |
261 | do_graph=(settings_arr[3]==1); |
295 | fullscreen=(settings_arr[4]==1); |
262 | fullscreen=(settings_arr[4]==1); |
296 | keep_lighton=(settings_arr[5]==1); |
263 | keep_lighton=(settings_arr[5]==1); |
297 | 264 | ||
298 | connect_mk(new String(url_data, 0, url_data.length),new String(name_data, 0, name_data.length)); |
265 | connect_mk(new String(url_data, 0, url_data.length),new String(name_data, 0, name_data.length)); |
299 | 266 | ||
300 | } |
267 | } |
301 | recStore.closeRecordStore(); |
268 | recStore.closeRecordStore(); |
302 | } |
269 | } |
303 | catch (Exception e) |
270 | catch (Exception e) |
304 | { |
271 | { |
305 | settings_arr=new byte[10]; |
272 | settings_arr=new byte[10]; |
306 | 273 | ||
307 | err+=e.toString(); |
274 | err+=e.toString(); |
308 | } |
275 | } |
309 | 276 | ||
310 | 277 | ||
311 | load_images(); |
278 | load_images(); |
312 | 279 | ||
313 | chg_state((mk.force_disconnect)?STATEID_SCANNING:STATEID_MAINMENU); |
280 | chg_state((mk.force_disconnect)?STATEID_SCANNING:STATEID_MAINMENU); |
314 | 281 | ||
315 | 282 | ||
316 | 283 | ||
317 | new Thread(this).start(); |
284 | new Thread(this).start(); |
318 | 285 | ||
319 | } |
286 | } |
320 | 287 | ||
321 | 288 | ||
322 | 289 | ||
323 | 290 | ||
324 | /****************************** Thread ******************/ |
291 | /****************************** Thread ******************/ |
325 | // ticking runnable Section |
292 | // ticking runnable Section |
326 | public void run() |
293 | public void run() |
327 | { |
294 | { |
328 | 295 | ||
329 | 296 | ||
330 | while(true) |
297 | while(true) |
331 | { |
298 | { |
332 | try { |
299 | try { |
333 | 300 | ||
334 | 301 | ||
335 | repaint(); |
302 | repaint(); |
336 | serviceRepaints(); |
303 | serviceRepaints(); |
337 | 304 | ||
338 | long loopStartTime = System.currentTimeMillis(); |
305 | long loopStartTime = System.currentTimeMillis(); |
339 | long sleeptime=0; |
306 | long sleeptime=0; |
340 | // ticked thing |
307 | // ticked thing |
341 | 308 | ||
342 | frame_pos++; |
309 | frame_pos++; |
343 | 310 | ||
344 | switch(state) |
311 | switch(state) |
345 | { |
312 | { |
346 | case STATEID_CAMMODE: |
313 | case STATEID_CAMMODE: |
347 | 314 | ||
348 | try |
315 | try |
349 | { |
316 | { |
350 | if(cam_condition()) |
317 | if(cam_condition()) |
351 | { |
318 | { |
352 | cam_img=null; |
319 | cam_img=null; |
353 | debug.log("get snap\n"); |
320 | debug.log("get snap\n"); |
354 | cam_raw = mVideoControl.getSnapshot(null); |
321 | cam_raw = mVideoControl.getSnapshot(null); |
355 | 322 | ||
356 | try { Thread.sleep(4000); } |
323 | try { Thread.sleep(4000); } |
357 | catch (Exception e) |
324 | catch (Exception e) |
358 | { |
325 | { |
359 | err="Problem Sleeping "; |
326 | err="Problem Sleeping "; |
360 | } |
327 | } |
361 | } |
328 | } |
362 | else |
329 | else |
363 | { |
330 | { |
364 | if (cam_img==null) |
331 | if (cam_img==null) |
365 | cam_img = Image.createImage(cam_raw, 0, cam_raw.length); |
332 | cam_img = Image.createImage(cam_raw, 0, cam_raw.length); |
366 | } |
333 | } |
367 | } |
334 | } |
368 | catch ( Exception e) |
335 | catch ( Exception e) |
369 | { |
336 | { |
370 | debug.log(e.toString()); |
337 | debug.log(e.toString()); |
371 | } |
338 | } |
372 | break; |
339 | break; |
373 | case STATEID_KEYCONTROL: |
340 | case STATEID_KEYCONTROL: |
374 | mk.send_keys(keycontrol_bitfield); |
341 | mk.send_keys(keycontrol_bitfield); |
375 | break; |
342 | break; |
- | 343 | ||
- | 344 | case STATEID_READ_PARAMS: |
|
- | 345 | if (mk.watchdog.act_paramset==5) |
|
- | 346 | chg_state(STATEID_SELECT_PARAMSET); |
|
- | 347 | else |
|
- | 348 | { |
|
- | 349 | lcd_lines[0]="Reading Settings "; |
|
- | 350 | lcd_lines[1]=mk.watchdog.act_paramset+"/5 |"+ (mk.watchdog.act_paramset>0?"#":"_") + (mk.watchdog.act_paramset>1?"#":"_") + (mk.watchdog.act_paramset>2?"#":"_")+ (mk.watchdog.act_paramset>3?"#":"_")+ (mk.watchdog.act_paramset>4?"#":"_") + "| "; |
|
- | 351 | } |
|
- | 352 | break; |
|
376 | 353 | ||
377 | case STATEID_MOTORTEST: |
354 | case STATEID_MOTORTEST: |
378 | 355 | ||
379 | if (motor_test_sel_all) |
356 | if (motor_test_sel_all) |
380 | for (int m=0;m<4;m++) |
357 | for (int m=0;m<4;m++) |
381 | { |
358 | { |
382 | motor_test[m]+=act_motor_increase; |
359 | motor_test[m]+=act_motor_increase; |
383 | if (motor_test[m]<0)motor_test[m]=0; |
360 | if (motor_test[m]<0)motor_test[m]=0; |
384 | if (motor_test[m]>255)motor_test[m]=255; |
361 | if (motor_test[m]>255)motor_test[m]=255; |
385 | } |
362 | } |
386 | else |
363 | else |
387 | { |
364 | { |
388 | motor_test[act_motor]+=act_motor_increase; |
365 | motor_test[act_motor]+=act_motor_increase; |
389 | if (motor_test[act_motor]<0) motor_test[act_motor]=0; |
366 | if (motor_test[act_motor]<0) motor_test[act_motor]=0; |
390 | if (motor_test[act_motor]>255) motor_test[act_motor]=255; |
367 | if (motor_test[act_motor]>255) motor_test[act_motor]=255; |
391 | } |
368 | } |
392 | 369 | ||
393 | mk.motor_test(motor_test); |
370 | mk.motor_test(motor_test); |
394 | break; |
371 | break; |
- | 372 | ||
- | 373 | case STATEID_MAINMENU: |
|
- | 374 | if (ufo_prober.change_notify) |
|
- | 375 | { |
|
- | 376 | ufo_prober.change_notify=false; |
|
- | 377 | chg_state(STATEID_MAINMENU); |
|
- | 378 | } |
|
- | 379 | break; |
|
395 | 380 | ||
396 | case STATEID_SCANNING: |
381 | case STATEID_SCANNING: |
397 | intro_str_delay--; |
382 | intro_str_delay--; |
398 | if (intro_str_delay<0) |
383 | if (intro_str_delay<0) |
399 | { |
384 | { |
400 | intro_str_delay=1; |
385 | intro_str_delay=1; |
401 | if (intro_str_pos>intro_str.length()) |
386 | if (intro_str_pos>intro_str.length()) |
402 | intro_str_pos=0; |
387 | intro_str_pos=0; |
403 | lcd_lines[3]=intro_str.substring(intro_str_pos, (((intro_str_pos+20)>intro_str.length())?intro_str.length():intro_str_pos+20)); |
388 | lcd_lines[3]=intro_str.substring(intro_str_pos, (((intro_str_pos+20)>intro_str.length())?intro_str.length():intro_str_pos+20)); |
404 | intro_str_pos++; |
389 | intro_str_pos++; |
405 | } |
390 | } |
406 | 391 | ||
407 | if (!bt_scanner.searching) |
392 | if (!bt_scanner.searching) |
408 | chg_state(STATEID_DEVICESELECT); |
393 | chg_state(STATEID_DEVICESELECT); |
409 | 394 | ||
410 | 395 | ||
411 | break; |
396 | break; |
412 | 397 | ||
413 | 398 | ||
414 | 399 | ||
415 | } |
400 | } |
416 | 401 | ||
417 | try { |
402 | try { |
418 | nick_line_pos_data[-bg_offset] = mk.debug_data.nick_int(); |
403 | nick_line_pos_data[-bg_offset] = mk.debug_data.nick_int(); |
419 | roll_line_pos_data[-bg_offset] = mk.debug_data.roll_int(); |
404 | roll_line_pos_data[-bg_offset] = mk.debug_data.roll_int(); |
420 | accnick_line_pos_data[-bg_offset] = mk.debug_data.accnick(); |
405 | accnick_line_pos_data[-bg_offset] = mk.debug_data.accnick(); |
421 | accroll_line_pos_data[-bg_offset] = mk.debug_data.accroll(); |
406 | accroll_line_pos_data[-bg_offset] = mk.debug_data.accroll(); |
422 | } |
407 | } |
423 | catch (Exception e) |
408 | catch (Exception e) |
424 | { |
409 | { |
425 | err+=e.toString(); |
410 | err+=e.toString(); |
426 | } |
411 | } |
427 | 412 | ||
428 | 413 | ||
429 | 414 | ||
430 | 415 | ||
431 | if (quit) |
416 | if (quit) |
432 | { |
417 | { |
433 | 418 | ||
434 | 419 | ||
435 | 420 | ||
436 | try |
421 | try |
437 | { |
422 | { |
438 | RecordStore.deleteRecordStore(RECORD_STORE_NAME); |
423 | RecordStore.deleteRecordStore(RECORD_STORE_NAME); |
439 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true ); |
424 | RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true ); |
440 | recStore.addRecord(mk.mk_url.getBytes(), 0, mk.mk_url.getBytes().length); |
425 | recStore.addRecord(mk.mk_url.getBytes(), 0, mk.mk_url.getBytes().length); |
441 | recStore.addRecord(mk.name.getBytes(), 0, mk.name.getBytes().length); |
426 | recStore.addRecord(mk.name.getBytes(), 0, mk.name.getBytes().length); |
442 | settings_arr=new byte[10]; |
427 | settings_arr=new byte[10]; |
443 | settings_arr[0]=(byte)act_skin; |
428 | settings_arr[0]=(byte)act_skin; |
444 | settings_arr[1]=(byte)(do_sound?1:0); |
429 | settings_arr[1]=(byte)(do_sound?1:0); |
445 | settings_arr[2]=(byte)(do_vibra?1:0); |
430 | settings_arr[2]=(byte)(do_vibra?1:0); |
446 | settings_arr[3]=(byte)(do_graph?1:0); |
431 | settings_arr[3]=(byte)(do_graph?1:0); |
447 | settings_arr[4]=(byte)(fullscreen?1:0); |
432 | settings_arr[4]=(byte)(fullscreen?1:0); |
448 | settings_arr[5]=(byte)(keep_lighton?1:0); |
433 | settings_arr[5]=(byte)(keep_lighton?1:0); |
449 | 434 | ||
450 | recStore.addRecord(settings_arr, 0, settings_arr.length); |
435 | recStore.addRecord(settings_arr, 0, settings_arr.length); |
451 | 436 | ||
452 | 437 | ||
453 | 438 | ||
454 | recStore.closeRecordStore(); |
439 | recStore.closeRecordStore(); |
455 | 440 | ||
456 | } |
441 | } |
457 | catch (Exception e) |
442 | catch (Exception e) |
458 | { |
443 | { |
459 | err+=e.toString(); |
444 | err+=e.toString(); |
460 | } |
445 | } |
461 | 446 | ||
462 | root.quit(); |
447 | root.quit(); |
463 | } |
448 | } |
464 | if (rescan) |
449 | if (rescan) |
465 | { |
450 | { |
466 | 451 | ||
467 | rescan=false; |
452 | rescan=false; |
468 | } |
453 | } |
469 | 454 | ||
470 | try { |
455 | try { |
471 | //rescan=false; |
456 | //rescan=false; |
472 | bg_offset--; |
457 | bg_offset--; |
473 | if (bg_offset==-bg_img.getWidth()) |
458 | if (bg_offset==-bg_img.getWidth()) |
474 | bg_offset=0; |
459 | bg_offset=0; |
475 | if (keep_lighton) com.nokia.mid.ui.DeviceControl.setLights(0,100); |
460 | if (keep_lighton) com.nokia.mid.ui.DeviceControl.setLights(0,100); |
476 | //bt.tick(); |
461 | //bt.tick(); |
477 | // every state has sth to do in tick section |
462 | // every state has sth to do in tick section |
478 | } |
463 | } |
479 | catch (Exception e) |
464 | catch (Exception e) |
480 | { |
465 | { |
481 | 466 | ||
482 | } |
467 | } |
483 | 468 | ||
484 | 469 | ||
485 | // System.gc(); |
470 | // System.gc(); |
486 | 471 | ||
487 | 472 | ||
488 | 473 | ||
489 | 474 | ||
490 | sleeptime=1000/ 15 - (int) (System.currentTimeMillis()- loopStartTime); |
475 | sleeptime=1000/ 15 - (int) (System.currentTimeMillis()- loopStartTime); |
491 | 476 | ||
492 | 477 | ||
493 | 478 | ||
494 | if (sleeptime<0) |
479 | if (sleeptime<0) |
495 | sleeptime=100; // everyone has fi sleep |
480 | sleeptime=100; // everyone has fi sleep |
496 | 481 | ||
497 | try { Thread.sleep(sleeptime); } |
482 | try { Thread.sleep(sleeptime); } |
498 | catch (Exception e) |
483 | catch (Exception e) |
499 | { |
484 | { |
500 | err="Problem Sleeping "; |
485 | err="Problem Sleeping "; |
501 | } |
486 | } |
502 | 487 | ||
503 | } |
488 | } |
504 | catch (Exception e) |
489 | catch (Exception e) |
505 | { |
490 | { |
506 | err+=e.toString(); |
491 | err+=e.toString(); |
507 | } |
492 | } |
508 | } |
493 | } |
509 | } |
494 | } |
510 | 495 | ||
511 | 496 | ||
512 | 497 | ||
513 | boolean firstrun=true; |
498 | boolean firstrun=true; |
514 | 499 | ||
515 | 500 | ||
516 | // drawing section |
501 | // drawing section |
517 | public void paint(Graphics g) { |
502 | public void paint(Graphics g) { |
518 | if (debug.showing) |
503 | if (debug.showing) |
519 | { |
504 | { |
520 | debug.paint(g); |
505 | debug.paint(g); |
521 | return; |
506 | return; |
522 | } |
507 | } |
523 | 508 | ||
524 | if (firstrun) |
509 | if (firstrun) |
525 | { |
510 | { |
526 | if (fullscreen) setFullScreenMode(fullscreen); |
511 | if (fullscreen) setFullScreenMode(fullscreen); |
527 | firstrun=false; |
512 | firstrun=false; |
528 | } |
513 | } |
529 | y_off=0; |
514 | y_off=0; |
530 | try { |
515 | try { |
531 | 516 | ||
532 | if (mk!=null) |
517 | if (mk!=null) |
533 | { |
518 | { |
534 | line_middle_y=this.getHeight()/2; |
519 | line_middle_y=this.getHeight()/2; |
535 | if (local_max<Math.abs(mk.debug_data.nick_int())) |
520 | if (local_max<Math.abs(mk.debug_data.nick_int())) |
536 | local_max=Math.abs(mk.debug_data.nick_int()); |
521 | local_max=Math.abs(mk.debug_data.nick_int()); |
537 | if (local_max<Math.abs(mk.debug_data.roll_int())) |
522 | if (local_max<Math.abs(mk.debug_data.roll_int())) |
538 | local_max=Math.abs(mk.debug_data.roll_int()); |
523 | local_max=Math.abs(mk.debug_data.roll_int()); |
539 | if (local_max<Math.abs(mk.debug_data.accnick())) |
524 | if (local_max<Math.abs(mk.debug_data.accnick())) |
540 | local_max=Math.abs(mk.debug_data.accnick()); |
525 | local_max=Math.abs(mk.debug_data.accnick()); |
541 | if (local_max<Math.abs(mk.debug_data.accroll())) |
526 | if (local_max<Math.abs(mk.debug_data.accroll())) |
542 | local_max=Math.abs(mk.debug_data.accroll()); |
527 | local_max=Math.abs(mk.debug_data.accroll()); |
543 | line_scaler= local_max/(this.getHeight()/2)+1; |
528 | line_scaler= local_max/(this.getHeight()/2)+1; |
544 | } |
529 | } |
545 | 530 | ||
546 | 531 | ||
547 | Font f1 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM); |
532 | Font f1 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM); |
548 | Font f2 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); |
533 | Font f2 = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); |
549 | 534 | ||
550 | spacer=(f1.getHeight()); |
535 | spacer=(f1.getHeight()); |
551 | spacer1=(f2.getHeight()); |
536 | spacer1=(f2.getHeight()); |
552 | 537 | ||
553 | //default Font |
538 | //default Font |
554 | g.setFont(f1); |
539 | g.setFont(f1); |
555 | 540 | ||
556 | if (state==STATEID_EDIT_PARAMS) |
541 | if (state==STATEID_EDIT_PARAMS) |
557 | { |
542 | { |
558 | g.setColor(0x000000); |
543 | g.setColor(0x000000); |
559 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
544 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
560 | } |
545 | } |
561 | else |
546 | else |
562 | { |
547 | { |
563 | g.setColor(0xFFFFFF); |
548 | g.setColor(0xFFFFFF); |
564 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
549 | g.fillRect(0,0,this.getWidth(),this.getHeight()); |
565 | g.drawImage(bg_img,bg_offset,0, g.TOP | g.LEFT); |
550 | g.drawImage(bg_img,bg_offset,0, g.TOP | g.LEFT); |
566 | 551 | ||
567 | if (bg_offset+bg_img.getWidth()<this.getWidth()) |
552 | if (bg_offset+bg_img.getWidth()<this.getWidth()) |
568 | g.drawImage(bg_img,bg_offset+bg_img.getWidth(),0, g.TOP | g.LEFT); |
553 | g.drawImage(bg_img,bg_offset+bg_img.getWidth(),0, g.TOP | g.LEFT); |
569 | } |
554 | } |
570 | 555 | ||
571 | switch (act_skin) |
556 | switch (act_skin) |
572 | { |
557 | { |
573 | case SKINID_DARK: |
558 | case SKINID_DARK: |
574 | g.setColor(0x2dcf20); |
559 | g.setColor(0x2dcf20); |
575 | 560 | ||
576 | break; |
561 | break; |
577 | 562 | ||
578 | case SKINID_LIGHT: |
563 | case SKINID_LIGHT: |
579 | g.setColor(0x000000); |
564 | g.setColor(0x000000); |
580 | break; |
565 | break; |
581 | } |
566 | } |
582 | 567 | ||
583 | 568 | ||
584 | 569 | ||
585 | switch(state) |
570 | switch(state) |
586 | { |
571 | { |
- | 572 | ||
- | 573 | case STATEID_GPSVIEW: |
|
- | 574 | g.drawString("GPS-Packages: " + mk.navi_data_count ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 575 | y_off+=spacer; |
|
- | 576 | g.drawString("Used Sats: " + mk.gps_position.Used_Sat ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 577 | y_off+=spacer; |
|
- | 578 | g.drawString("Latitude: " + mk.gps_position.Latitude_str() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 579 | y_off+=spacer; |
|
- | 580 | g.drawString("=>: " + mk.gps_position.Latitude_min_sec() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 581 | y_off+=spacer; |
|
- | 582 | g.drawString("Longitude: " + mk.gps_position.Longitude_str() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 583 | y_off+=spacer; |
|
- | 584 | g.drawString("=> " + mk.gps_position.Longitude_min_sec() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 585 | y_off+=spacer; |
|
- | 586 | ||
- | 587 | g.drawString("Target-Lat: " + mk.gps_position.TargetLatitude ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 588 | y_off+=spacer; |
|
- | 589 | g.drawString("Target-Long: " + mk.gps_position.TargetLongitude ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 590 | y_off+=spacer; |
|
- | 591 | g.drawString("Distance : " + mk.gps_position.Distance2Target ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 592 | y_off+=spacer; |
|
- | 593 | g.drawString("Angle: " + mk.gps_position.Angle2Target ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 594 | y_off+=spacer; |
|
- | 595 | ||
- | 596 | g.drawString("WayPoints: " + act_wp + "/" + mk.gps_position.last_wp ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 597 | y_off+=spacer; |
|
- | 598 | ||
- | 599 | g.drawString(" " + mk.gps_position.WP_Latitude_min_sec(act_wp) ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 600 | y_off+=spacer; |
|
- | 601 | ||
- | 602 | g.drawString(" " + mk.gps_position.WP_Longitude_min_sec(act_wp) ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 603 | y_off+=spacer; |
|
- | 604 | ||
- | 605 | ||
- | 606 | break; |
|
587 | 607 | ||
588 | case STATEID_CAMMODE: |
608 | case STATEID_CAMMODE: |
589 | 609 | ||
590 | if (cam_img!=null) |
610 | if (cam_img!=null) |
591 | g.drawImage(cam_img,0,0,g.TOP | g.LEFT); |
611 | g.drawImage(cam_img,0,0,g.TOP | g.LEFT); |
592 | g.drawString("condition: " + cam_condition() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
612 | g.drawString("condition: " + cam_condition() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
593 | y_off+=spacer; |
613 | y_off+=spacer; |
594 | g.drawString("width " + cam_img.getWidth(),0,y_off,Graphics.TOP | Graphics.LEFT); |
614 | g.drawString("width " + cam_img.getWidth(),0,y_off,Graphics.TOP | Graphics.LEFT); |
595 | y_off+=spacer; |
615 | y_off+=spacer; |
596 | g.drawString("height " + cam_img.getHeight(),0,y_off,Graphics.TOP | Graphics.LEFT); |
616 | g.drawString("height " + cam_img.getHeight(),0,y_off,Graphics.TOP | Graphics.LEFT); |
597 | y_off+=spacer; |
617 | y_off+=spacer; |
598 | break; |
618 | break; |
599 | 619 | ||
600 | case STATEID_STICKVIEW: |
620 | case STATEID_STICKVIEW: |
601 | y_off=0; |
621 | y_off=0; |
602 | for(int tmp_y=0;tmp_y<10;tmp_y++) |
622 | for(int tmp_y=0;tmp_y<10;tmp_y++) |
603 | { |
623 | { |
604 | g.drawString(""+tmp_y+"=>"+mk.stick_data.stick[tmp_y],0,y_off,Graphics.TOP | Graphics.LEFT); |
624 | g.drawString(""+tmp_y+"=>"+mk.stick_data.stick[tmp_y],0,y_off,Graphics.TOP | Graphics.LEFT); |
605 | y_off+=spacer; |
625 | y_off+=spacer; |
606 | } |
626 | } |
607 | break; |
627 | break; |
608 | 628 | ||
609 | case STATEID_KEYCONTROL: |
629 | case STATEID_KEYCONTROL: |
610 | 630 | ||
611 | 631 | ||
612 | y_off+=spacer; |
632 | y_off+=spacer; |
613 | g.drawString("UP&DOWN => nick",0,y_off,Graphics.TOP | Graphics.LEFT); |
633 | g.drawString("UP&DOWN => nick",0,y_off,Graphics.TOP | Graphics.LEFT); |
614 | y_off+=spacer; |
634 | y_off+=spacer; |
615 | g.drawString("LEFT&RIGHT => roll",0,y_off,Graphics.TOP | Graphics.LEFT); |
635 | g.drawString("LEFT&RIGHT => roll",0,y_off,Graphics.TOP | Graphics.LEFT); |
616 | y_off+=spacer; |
636 | y_off+=spacer; |
617 | g.drawString("1&4 => altitude",0,y_off,Graphics.TOP | Graphics.LEFT); |
637 | g.drawString("1&4 => altitude",0,y_off,Graphics.TOP | Graphics.LEFT); |
618 | 638 | ||
619 | y_off+=spacer; |
639 | y_off+=spacer; |
620 | g.drawString("2&3 => gier",0,y_off,Graphics.TOP | Graphics.LEFT); |
640 | g.drawString("2&3 => gier",0,y_off,Graphics.TOP | Graphics.LEFT); |
621 | 641 | ||
622 | y_off+=spacer; |
642 | y_off+=spacer; |
623 | g.drawString("Press # and * at once",0,y_off,Graphics.TOP | Graphics.LEFT); |
643 | g.drawString("Press # and * at once",0,y_off,Graphics.TOP | Graphics.LEFT); |
624 | y_off+=spacer; |
644 | y_off+=spacer; |
625 | g.drawString("to quit KeyControl",0,y_off,Graphics.TOP | Graphics.LEFT); |
645 | g.drawString("to quit KeyControl",0,y_off,Graphics.TOP | Graphics.LEFT); |
626 | y_off+=spacer; |
646 | y_off+=spacer; |
627 | g.drawString("bf1:"+ keycontrol_bitfield[0] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
647 | g.drawString("bf1:"+ keycontrol_bitfield[0] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
628 | g.drawString("bf2:"+ keycontrol_bitfield[1] ,this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
648 | g.drawString("bf2:"+ keycontrol_bitfield[1] ,this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
629 | 649 | ||
630 | break; |
650 | break; |
631 | 651 | ||
632 | case STATEID_MOTORTEST: |
652 | case STATEID_MOTORTEST: |
633 | for (int bar=0;bar<4;bar++) |
653 | for (int bar=0;bar<4;bar++) |
634 | 654 | ||
635 | { |
655 | { |
636 | g.setColor(((bar==act_motor)|motor_test_sel_all)?0x44CC44:0x4444DD); |
656 | g.setColor(((bar==act_motor)|motor_test_sel_all)?0x44CC44:0x4444DD); |
637 | g.fillRect(this.getWidth()/(8*2)+bar*2*this.getWidth()/8,10,this.getWidth()/8,20+motor_test[bar]); |
657 | g.fillRect(this.getWidth()/(8*2)+bar*2*this.getWidth()/8,10,this.getWidth()/8,20+motor_test[bar]); |
638 | g.setColor(0x000000); |
658 | g.setColor(0x000000); |
639 | g.drawString(""+motor_test[bar] ,this.getWidth()/8+bar*2*this.getWidth()/8,10,Graphics.TOP | Graphics.HCENTER); |
659 | g.drawString(""+motor_test[bar] ,this.getWidth()/8+bar*2*this.getWidth()/8,10,Graphics.TOP | Graphics.HCENTER); |
640 | if(bar!=4) g.drawString(""+mk.debug_data.motor_val(bar) ,this.getWidth()/8+bar*2*this.getWidth()/8,30,Graphics.TOP | Graphics.HCENTER); |
660 | if(bar!=4) g.drawString(""+mk.debug_data.motor_val(bar) ,this.getWidth()/8+bar*2*this.getWidth()/8,30,Graphics.TOP | Graphics.HCENTER); |
641 | } |
661 | } |
642 | break; |
662 | break; |
643 | 663 | ||
644 | case STATEID_EDIT_PARAMS: |
664 | case STATEID_EDIT_PARAMS: |
645 | params_editor.paint(g); |
665 | params_editor.paint(g); |
646 | break; |
666 | break; |
- | 667 | ||
- | 668 | ||
- | 669 | case STATEID_READ_PARAMS: |
|
- | 670 | paint_lcd(g,true); |
|
- | 671 | ||
- | 672 | 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);; |
|
- | 673 | 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); |
|
- | 674 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
|
- | 675 | break; |
|
- | 676 | ||
647 | 677 | ||
648 | case STATEID_SCANNING: |
678 | case STATEID_SCANNING: |
649 | paint_lcd(g,true); |
679 | paint_lcd(g,true); |
650 | 680 | ||
651 | 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);; |
681 | 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);; |
652 | 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); |
682 | 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); |
653 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
683 | g.drawImage(bt_img,this.getWidth()/2 ,this.getHeight()/2 , g.HCENTER | g.VCENTER); |
654 | break; |
684 | break; |
655 | 685 | ||
656 | case STATEID_RAWDEBUG: |
686 | case STATEID_RAWDEBUG: |
657 | g.setFont(f2); |
687 | g.setFont(f2); |
658 | rawdebug_off_y=0; |
688 | rawdebug_off_y=0; |
659 | if ((rawdebug_cursor_y+2)*spacer1>this.getHeight()) |
689 | if ((rawdebug_cursor_y+2)*spacer1>this.getHeight()) |
660 | rawdebug_off_y=((rawdebug_cursor_y+2)*spacer1-this.getHeight())/spacer1; |
690 | rawdebug_off_y=((rawdebug_cursor_y+2)*spacer1-this.getHeight())/spacer1; |
661 | for (int i=0;i<(this.getHeight()/spacer1);i++) |
691 | for (int i=0;i<(this.getHeight()/spacer1);i++) |
662 | { |
692 | { |
663 | if (i+rawdebug_off_y==rawdebug_cursor_y) |
693 | if (i+rawdebug_off_y==rawdebug_cursor_y) |
664 | { |
694 | { |
665 | g.setColor(0x0000CC); |
695 | g.setColor(0x0000CC); |
666 | g.fillRect(0,y_off,this.getWidth(),spacer1); |
696 | g.fillRect(0,y_off,this.getWidth(),spacer1); |
667 | 697 | ||
668 | switch (act_skin) |
698 | switch (act_skin) |
669 | { |
699 | { |
670 | case SKINID_DARK: |
700 | case SKINID_DARK: |
671 | g.setColor(0x2dcf20); |
701 | g.setColor(0x2dcf20); |
672 | 702 | ||
673 | break; |
703 | break; |
674 | 704 | ||
675 | case SKINID_LIGHT: |
705 | case SKINID_LIGHT: |
676 | g.setColor(0x000000); |
706 | g.setColor(0x000000); |
677 | break; |
707 | break; |
678 | } |
708 | } |
679 | } |
709 | } |
680 | if (i+rawdebug_off_y<32) //todo better style |
710 | if (i+rawdebug_off_y<32) //todo better style |
681 | g.drawString(mk.debug_data.names[i+rawdebug_off_y] + mk.debug_data.analog[i+rawdebug_off_y] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
711 | g.drawString(mk.debug_data.names[i+rawdebug_off_y] + mk.debug_data.analog[i+rawdebug_off_y] ,0,y_off,Graphics.TOP | Graphics.LEFT); |
682 | 712 | ||
683 | y_off+=spacer1; |
713 | y_off+=spacer1; |
684 | 714 | ||
685 | } |
715 | } |
686 | 716 | ||
687 | 717 | ||
688 | 718 | ||
689 | break; |
719 | break; |
690 | 720 | ||
691 | 721 | ||
692 | case STATEID_MAINMENU: |
722 | case STATEID_MAINMENU: |
693 | g.drawString("probed_device" + ufo_prober.probe_result + " by " + ufo_prober.reply,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | |
694 | y_off+=spacer; |
- | |
695 | g.drawString("MK-Connection(" + (mk.connected?("open"+((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s"):"close")+"):",0,y_off,Graphics.TOP | Graphics.LEFT); |
- | |
696 | y_off+=spacer; |
- | |
697 | g.setFont(f2); |
723 | g.setFont(f2); |
- | 724 | g.drawString(ufo_prober.extended_name()+ " (" + (mk.connected?("open"+((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s"):"closed")+"):",0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 725 | y_off+=spacer1; |
|
- | 726 | g.drawString(" Version:" + mk.version.str ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 727 | y_off+=spacer1; |
|
- | 728 | /* |
|
- | 729 | ||
698 | g.drawString(" Name:" + mk.name,0,y_off,Graphics.TOP | Graphics.LEFT); |
730 | g.drawString(" Name:" + mk.name,0,y_off,Graphics.TOP | Graphics.LEFT); |
699 | y_off+=spacer1; |
731 | y_off+=spacer1; |
700 | g.drawString(" URL:" + mk.mk_url,0,y_off,Graphics.TOP | Graphics.LEFT); |
732 | g.drawString(" URL:" + mk.mk_url,0,y_off,Graphics.TOP | Graphics.LEFT); |
701 | y_off+=spacer1; |
733 | y_off+=spacer1; |
702 | g.drawString(" Version:" + mk.version.str,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | |
703 | y_off+=spacer1; |
- | |
704 | 734 | |
|
705 | g.setFont(f1); |
735 | g.setFont(f1); |
706 | g.drawString("Packet Traffic:",0,y_off,Graphics.TOP | Graphics.LEFT); |
736 | g.drawString("Packet Traffic:",0,y_off,Graphics.TOP | Graphics.LEFT); |
707 | y_off+=spacer; |
737 | y_off+=spacer; |
708 | g.setFont(f2); |
738 | g.setFont(f2);*/ |
709 | g.drawString( " debug:"+mk.debug_data_count+ " LCD:" + mk.lcd_data_count + " vers:" + mk.version_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
739 | g.drawString( " debug:"+mk.debug_data_count+ " LCD:" + mk.lcd_data_count + " vers:" + mk.version_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
710 | y_off+=spacer1; |
740 | y_off+=spacer1; |
711 | g.drawString( " other:"+mk.other_data_count+" params:"+mk.params_data_count,0,y_off,Graphics.TOP | Graphics.LEFT); |
741 | g.drawString( " other:"+mk.other_data_count+" params:"+mk.params_data_count + " GPS:"+mk.navi_data_count ,0,y_off,Graphics.TOP | Graphics.LEFT); |
- | 742 | y_off+=spacer1; |
|
- | 743 | g.drawString( " debug_names:" + mk.debug_names_count + " angles:" + mk.angle_data_count ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 744 | ||
712 | 745 | ||
713 | 746 | ||
714 | 747 | ||
715 | case STATEID_SETTINGSMENU: |
748 | case STATEID_SETTINGSMENU: |
716 | // falltru wanted |
749 | // falltru wanted |
717 | case STATEID_SELECT_PARAMSET: |
750 | case STATEID_SELECT_PARAMSET: |
718 | case STATEID_HANDLE_PARAMS: |
751 | case STATEID_HANDLE_PARAMS: |
719 | 752 | ||
720 | case STATEID_DEVICESELECT: |
753 | case STATEID_DEVICESELECT: |
721 | paint_menu(g); |
754 | paint_menu(g); |
722 | break; |
755 | break; |
723 | 756 | ||
724 | case STATEID_FLIGHTVIEW: |
757 | case STATEID_FLIGHTVIEW: |
725 | 758 | ||
726 | 759 | ||
727 | // !!TODO!! check exactly which version those Datas where introduced |
760 | // !!TODO!! check exactly which version those Datas where introduced |
728 | if (mk.version.compare(0,60)==mk.version.VERSION_PREVIOUS) |
761 | if (mk.version.compare(0,60)==mk.version.VERSION_PREVIOUS) |
729 | { |
762 | { |
730 | g.drawString("Voltage: " + (mk.debug_data.UBatt()/10) + "," +(mk.debug_data.UBatt()%10)+"V" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
763 | g.drawString("Voltage: " + (mk.debug_data.UBatt()/10) + "," +(mk.debug_data.UBatt()%10)+"V" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
731 | g.drawString("Sender: " + mk.debug_data.SenderOkay(),this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
764 | g.drawString("Sender: " + mk.debug_data.SenderOkay(),this.getWidth()/2,y_off,Graphics.TOP | Graphics.LEFT); |
732 | y_off+=spacer; |
765 | y_off+=spacer; |
733 | } |
766 | } |
734 | 767 | ||
735 | 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); |
768 | 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); |
736 | 769 | ||
737 | y_off+=spacer; |
770 | y_off+=spacer; |
738 | 771 | ||
739 | 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); |
772 | 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); |
740 | y_off+=spacer; |
773 | y_off+=spacer; |
741 | 774 | ||
742 | 775 | ||
743 | 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); |
776 | 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); |
744 | y_off+=spacer; |
777 | y_off+=spacer; |
745 | 778 | ||
746 | if (mk.connected) |
779 | if (mk.connected) |
747 | { |
780 | { |
748 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
781 | g.drawString("time conn:" +((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
749 | y_off+=spacer; |
782 | y_off+=spacer; |
750 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
783 | g.drawString("time motor>15:" +(mk_stat.motor_on_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
751 | y_off+=spacer; |
784 | y_off+=spacer; |
752 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
785 | g.drawString("time motor=15:" +(mk_stat.motor_stand_time/1000) +"s" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
753 | } |
786 | y_off+=spacer; |
- | 787 | g.drawString("act_lcd_page:" + mk.LCD.act_mk_page + "/" + mk.LCD.pages + " ( wanted: " + mk.LCD.act_user_page +")" ,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
- | 788 | ||
- | 789 | } |
|
754 | 790 | ||
755 | 791 | ||
756 | y_off=this.getHeight()-4*lcd_img.getHeight(); |
792 | y_off=this.getHeight()-4*lcd_img.getHeight(); |
757 | 793 | ||
758 | for ( int foo=0;foo<4;foo++) |
794 | for ( int foo=0;foo<4;foo++) |
759 | { |
795 | { |
760 | for (int x=0;x<20;x++) |
796 | for (int x=0;x<20;x++) |
761 | { |
797 | { |
762 | g.setClip((lcd_img.getWidth()/222)*x,y_off,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
798 | g.setClip((lcd_img.getWidth()/222)*x,y_off,(lcd_img.getWidth()/222),lcd_img.getHeight()); |
763 | g.drawImage(lcd_img,(lcd_img.getWidth()/222)*x-(mk.LCD.get_act_page()[foo].charAt(x)-' ')*(lcd_img.getWidth()/222),y_off, g.TOP | g.LEFT); |
799 | g.drawImage(lcd_img,(lcd_img.getWidth()/222)*x-(mk.LCD.get_act_page()[foo].charAt(x)-' ')*(lcd_img.getWidth()/222),y_off, g.TOP | g.LEFT); |
764 | 800 | ||
765 | } |
801 | } |
766 | y_off+=lcd_img.getHeight(); |
802 | y_off+=lcd_img.getHeight(); |
767 | } |
803 | } |
768 | 804 | ||
769 | g.setClip(0,0,this.getWidth(),this.getHeight()); |
805 | g.setClip(0,0,this.getWidth(),this.getHeight()); |
770 | 806 | ||
771 | 807 | ||
772 | 808 | ||
773 | 809 | ||
774 | 810 | ||
775 | // draw lines |
811 | // draw lines |
776 | 812 | ||
777 | if (do_graph) for ( int x=0;x<this.getWidth();x++) |
813 | if (do_graph) for ( int x=0;x<this.getWidth();x++) |
778 | 814 | ||
779 | { |
815 | { |
780 | 816 | ||
781 | int p= (((-bg_offset+x-this.getWidth()-5))); |
817 | int p= (((-bg_offset+x-this.getWidth()-5))); |
782 | if (p<1) |
818 | if (p<1) |
783 | p+=bg_img.getWidth(); |
819 | p+=bg_img.getWidth(); |
784 | p%=(bg_img.getWidth()-1); |
820 | p%=(bg_img.getWidth()-1); |
785 | 821 | ||
786 | g.setColor(0x156315); |
822 | g.setColor(0x156315); |
787 | draw_graph_part(g,x,nick_line_pos_data[p]/line_scaler,nick_line_pos_data[p+1]/line_scaler); |
823 | draw_graph_part(g,x,nick_line_pos_data[p]/line_scaler,nick_line_pos_data[p+1]/line_scaler); |
788 | g.setColor(0xCC1315); |
824 | g.setColor(0xCC1315); |
789 | draw_graph_part(g,x,roll_line_pos_data[p]/line_scaler,roll_line_pos_data[p+1]/line_scaler); |
825 | draw_graph_part(g,x,roll_line_pos_data[p]/line_scaler,roll_line_pos_data[p+1]/line_scaler); |
790 | g.setColor(0xf8ef02); |
826 | g.setColor(0xf8ef02); |
791 | draw_graph_part(g,x,accnick_line_pos_data[p]/line_scaler,accnick_line_pos_data[p+1]/line_scaler); |
827 | draw_graph_part(g,x,accnick_line_pos_data[p]/line_scaler,accnick_line_pos_data[p+1]/line_scaler); |
792 | g.setColor(0x19194d); |
828 | g.setColor(0x19194d); |
793 | draw_graph_part(g,x,accroll_line_pos_data[p]/line_scaler,accroll_line_pos_data[p+1]/line_scaler); |
829 | draw_graph_part(g,x,accroll_line_pos_data[p]/line_scaler,accroll_line_pos_data[p+1]/line_scaler); |
794 | 830 | ||
795 | 831 | ||
796 | 832 | ||
797 | } |
833 | } |
798 | 834 | ||
799 | } |
835 | } |
800 | 836 | ||
801 | 837 | ||
802 | 838 | ||
803 | } catch (Exception e) {} |
839 | } catch (Exception e) {} |
804 | 840 | ||
805 | } |
841 | } |
806 | Player mPlayer; |
842 | Player mPlayer; |
807 | VideoControl mVideoControl; |
843 | VideoControl mVideoControl; |
808 | Image cam_img; |
844 | Image cam_img; |
809 | int cam_img_seq=0; |
845 | int cam_img_seq=0; |
810 | byte[] cam_raw; |
846 | byte[] cam_raw; |
811 | 847 | ||
812 | private void connect_mk(String url,String name) |
848 | private void connect_mk(String url,String name) |
813 | { |
849 | { |
814 | // ufo_prober.bluetooth_probe(url); |
850 | // ufo_prober.bluetooth_probe(url); |
815 | mk.connect_to(url,name); |
851 | mk.connect_to(url,name); |
816 | 852 | ||
817 | 853 | ||
818 | } |
854 | } |
819 | 855 | ||
820 | public void draw_graph_part(Graphics g,int x,int y1,int y2) |
856 | public void draw_graph_part(Graphics g,int x,int y1,int y2) |
821 | { |
857 | { |
822 | if ( this.getWidth()>200) |
858 | if ( this.getWidth()>200) |
823 | { |
859 | { |
824 | g.fillRect(x,line_middle_y-y1,1,1 ); |
860 | g.fillRect(x,line_middle_y-y1,1,1 ); |
825 | if (y1>y2) |
861 | if (y1>y2) |
826 | g.fillRect(x,line_middle_y-y1,1,y1-y2); |
862 | g.fillRect(x,line_middle_y-y1,1,y1-y2); |
827 | else |
863 | else |
828 | g.fillRect(x,line_middle_y-y2,1,y2-y1); |
864 | g.fillRect(x,line_middle_y-y2,1,y2-y1); |
829 | 865 | ||
830 | } |
866 | } |
831 | else |
867 | else |
832 | { |
868 | { |
833 | g.fillRect(x,line_middle_y-y1,1,1 ); |
869 | g.fillRect(x,line_middle_y-y1,1,1 ); |
834 | if (y1>y2) |
870 | if (y1>y2) |
835 | g.fillRect(x,line_middle_y-y1,1,y1-y2); |
871 | g.fillRect(x,line_middle_y-y1,1,y1-y2); |
836 | else |
872 | else |
837 | g.fillRect(x,line_middle_y-y2,1,y2-y1); |
873 | g.fillRect(x,line_middle_y-y2,1,y2-y1); |
838 | } |
874 | } |
839 | 875 | ||
840 | 876 | ||
841 | 877 | ||
842 | 878 | ||
843 | } |
879 | } |
844 | 880 | ||
845 | 881 | ||
846 | /*********************************************** input Section **********************************************/ |
882 | /*********************************************** input Section **********************************************/ |
847 | 883 | ||
848 | 884 | ||
849 | 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) "; |
885 | 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) "; |
850 | 886 | ||
851 | int intro_str_pos=0; |
887 | int intro_str_pos=0; |
852 | int intro_str_delay=3; |
888 | int intro_str_delay=3; |
853 | 889 | ||
854 | public void chg_state(int next_state) |
890 | public void chg_state(int next_state) |
855 | { |
891 | { |
856 | if (next_state!=state)act_menu_select=0; |
892 | if (next_state!=state)act_menu_select=0; |
857 | // prepare next state |
893 | // prepare next state |
858 | switch(next_state) |
894 | switch(next_state) |
859 | { |
895 | { |
860 | case STATEID_CAMMODE: |
896 | case STATEID_CAMMODE: |
861 | 897 | ||
862 | if (mVideoControl==null) |
898 | if (mVideoControl==null) |
863 | try |
899 | try |
864 | { |
900 | { |
865 | debug.log("creating player\n"); |
901 | debug.log("creating player\n"); |
866 | mPlayer = Manager.createPlayer("capture://video?encoding=png&width=2048&height=1536"); |
902 | mPlayer = Manager.createPlayer("capture://video?encoding=png&width=2048&height=1536"); |
867 | 903 | ||
868 | debug.log("realizing player\n"); |
904 | debug.log("realizing player\n"); |
869 | mPlayer.realize(); |
905 | mPlayer.realize(); |
870 | 906 | ||
871 | debug.log("get_videocontrol\n"); |
907 | debug.log("get_videocontrol\n"); |
872 | 908 | ||
873 | mVideoControl = (VideoControl)mPlayer.getControl("VideoControl"); |
909 | mVideoControl = (VideoControl)mPlayer.getControl("VideoControl"); |
874 | 910 | ||
875 | debug.log("switching Canvas\n"); |
911 | debug.log("switching Canvas\n"); |
876 | mVideoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); |
912 | mVideoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); |
877 | 913 | ||
878 | debug.log("get snap\n"); |
914 | debug.log("get snap\n"); |
879 | byte[] raw = mVideoControl.getSnapshot(null); |
915 | byte[] raw = mVideoControl.getSnapshot(null); |
880 | 916 | ||
881 | } |
917 | } |
882 | catch ( Exception e) |
918 | catch ( Exception e) |
883 | { |
919 | { |
884 | debug.log(e.toString()); |
920 | debug.log(e.toString()); |
885 | } |
921 | } |
886 | 922 | ||
887 | 923 | ||
888 | break; |
924 | break; |
889 | case STATEID_KEYCONTROL: |
925 | case STATEID_KEYCONTROL: |
890 | keycontrol_exit=0; |
926 | keycontrol_exit=0; |
891 | break; |
927 | break; |
- | 928 | ||
- | 929 | case STATEID_READ_PARAMS: |
|
- | 930 | user_intent=USER_INTENT_PARAMS; |
|
- | 931 | lcd_lines=new String[2]; |
|
- | 932 | lcd_lines[0]="Reading Settings "; |
|
- | 933 | lcd_lines[1]=mk.watchdog.act_paramset+"/5 |"+ (mk.watchdog.act_paramset>0?"#":"_") + (mk.watchdog.act_paramset>1?"#":"_") + (mk.watchdog.act_paramset>2?"#":"_")+ (mk.watchdog.act_paramset>3?"#":"_")+ (mk.watchdog.act_paramset>4?"#":"_") + "| "; |
|
- | 934 | ||
- | 935 | break; |
|
- | 936 | ||
892 | 937 | ||
893 | case STATEID_SCANNING: |
938 | case STATEID_SCANNING: |
894 | lcd_lines=new String[4]; |
939 | lcd_lines=new String[4]; |
895 | lcd_lines[0]="Scanning for Devices"; |
940 | lcd_lines[0]="Scanning for Devices"; |
896 | lcd_lines[1]=" "; |
941 | lcd_lines[1]=" "; |
897 | 942 | ||
898 | //#expand lcd_lines[2]="DUBwise v%VERSION% "; |
943 | //#expand lcd_lines[2]="DUBwise v%VERSION% "; |
899 | lcd_lines[3]=intro_str.substring(0,20); |
944 | lcd_lines[3]=intro_str.substring(0,20); |
900 | mk.close_connections(true); |
945 | mk.close_connections(true); |
901 | 946 | ||
902 | bt_scanner.search(); |
947 | bt_scanner.search(); |
903 | break; |
948 | break; |
904 | 949 | ||
905 | case STATEID_HANDLE_PARAMS: |
950 | case STATEID_HANDLE_PARAMS: |
906 | menu_items=new String[2]; |
951 | menu_items=new String[2]; |
907 | menu_items[0]="write to MK"; |
952 | menu_items[0]="write to MK"; |
908 | menu_items[1]="Discard"; |
953 | menu_items[1]="Discard"; |
909 | lcd_lines=new String[2]; |
954 | lcd_lines=new String[2]; |
910 | 955 | ||
911 | break; |
956 | break; |
912 | 957 | ||
913 | case STATEID_SELECT_PARAMSET: |
958 | case STATEID_SELECT_PARAMSET: |
914 | menu_items=new String[5]; |
959 | menu_items=new String[5]; |
915 | for (int i=0;i<5;i++) |
960 | for (int i=0;i<5;i++) |
916 | menu_items[i]=mk.params.names[i]; |
961 | menu_items[i]=mk.params.names[i]; |
917 | 962 | ||
918 | lcd_lines=new String[5]; |
963 | lcd_lines=new String[5]; |
919 | break; |
964 | break; |
920 | 965 | ||
921 | case STATEID_DEVICESELECT: |
966 | case STATEID_DEVICESELECT: |
922 | menu_items=new String[bt_scanner.remote_device_count+1]; |
967 | menu_items=new String[bt_scanner.remote_device_count+1]; |
923 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
968 | for (int i=0;i<bt_scanner.remote_device_count;i++) |
924 | menu_items[i]=bt_scanner.remote_device_name[i]; |
969 | menu_items[i]=bt_scanner.remote_device_name[i]; |
925 | menu_items[bt_scanner.remote_device_count]="scan again"; |
970 | menu_items[bt_scanner.remote_device_count]="scan again"; |
926 | lcd_lines=new String[bt_scanner.remote_device_count+1]; |
971 | lcd_lines=new String[bt_scanner.remote_device_count+1]; |
927 | break; |
972 | break; |
928 | 973 | ||
929 | 974 | ||
930 | case STATEID_MAINMENU: |
975 | case STATEID_MAINMENU: |
- | 976 | if (ufo_prober.is_navi()) |
|
- | 977 | menu_items=main_menu_items_navi; |
|
- | 978 | else if (ufo_prober.is_mk()) |
|
931 | menu_items=main_menu_items; |
979 | menu_items=main_menu_items_mk; |
- | 980 | else |
|
- | 981 | menu_items=main_menu_items_no_connection; |
|
- | 982 | ||
932 | lcd_lines=new String[menu_items.length]; |
983 | lcd_lines=new String[menu_items.length]; |
933 | break; |
984 | break; |
934 | 985 | ||
935 | case STATEID_SETTINGSMENU: |
986 | case STATEID_SETTINGSMENU: |
936 | 987 | ||
937 | menu_items=new String[settings_menu_items.length]; |
988 | menu_items=new String[settings_menu_items.length]; |
938 | for(int cnt=0;cnt<settings_menu_items.length;cnt++) |
989 | for(int cnt=0;cnt<settings_menu_items.length;cnt++) |
939 | menu_items[cnt]=settings_menu_items[cnt]; |
990 | menu_items[cnt]=settings_menu_items[cnt]; |
940 | 991 | ||
941 | menu_items[0]+=(act_skin==SKINID_DARK)?"Dark":"Light"; |
992 | menu_items[0]+=(act_skin==SKINID_DARK)?"Dark":"Light"; |
942 | menu_items[1]+=(!do_sound)?"Off":"On"; |
993 | menu_items[1]+=(!do_sound)?"Off":"On"; |
943 | menu_items[2]+=(!do_vibra)?"Off":"On"; |
994 | menu_items[2]+=(!do_vibra)?"Off":"On"; |
944 | menu_items[3]+=(!do_graph)?"Off":"On"; |
995 | menu_items[3]+=(!do_graph)?"Off":"On"; |
945 | menu_items[4]+=(!fullscreen)?"Off":"On"; |
996 | menu_items[4]+=(!fullscreen)?"Off":"On"; |
946 | menu_items[5]+=(!keep_lighton)?"Off":"On"; |
997 | menu_items[5]+=(!keep_lighton)?"Off":"On"; |
947 | 998 | ||
948 | lcd_lines=new String[menu_items.length]; |
999 | lcd_lines=new String[menu_items.length]; |
949 | break; |
1000 | break; |
- | 1001 | ||
- | 1002 | case STATEID_RAWDEBUG: |
|
- | 1003 | user_intent=USER_INTENT_RAWDEBUG; |
|
- | 1004 | break; |
|
950 | 1005 | ||
- | 1006 | } |
|
- | 1007 | ||
- | 1008 | ||
951 | } |
1009 | |
952 | 1010 | ||
953 | // switch state |
1011 | // switch state |
954 | state=next_state; |
1012 | state=next_state; |
955 | } |
1013 | } |
956 | 1014 | ||
957 | 1015 | ||
958 | public void keyReleased(int keyCode) |
1016 | public void keyReleased(int keyCode) |
959 | { |
1017 | { |
960 | 1018 | ||
961 | switch(state) |
1019 | switch(state) |
962 | { |
1020 | { |
963 | case STATEID_MOTORTEST: |
1021 | case STATEID_MOTORTEST: |
964 | act_motor_increase=0; |
1022 | act_motor_increase=0; |
965 | break; |
1023 | break; |
966 | 1024 | ||
967 | case STATEID_KEYCONTROL: |
1025 | case STATEID_KEYCONTROL: |
968 | if (keyCode==KEY_POUND) |
1026 | if (keyCode==KEY_POUND) |
969 | keycontrol_exit &= 255^1; |
1027 | keycontrol_exit &= 255^1; |
970 | else |
1028 | else |
971 | if (keyCode==KEY_STAR) |
1029 | if (keyCode==KEY_STAR) |
972 | keycontrol_exit &= 255^2; |
1030 | keycontrol_exit &= 255^2; |
973 | else |
1031 | else |
974 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
1032 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
975 | keycontrol_bitfield[0]&=255^( 1<<(keyCode-this.KEY_NUM0)); |
1033 | keycontrol_bitfield[0]&=255^( 1<<(keyCode-this.KEY_NUM0)); |
976 | else |
1034 | else |
977 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
1035 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
978 | keycontrol_bitfield[1]&=255^( 1<<(keyCode-this.KEY_NUM8)); |
1036 | keycontrol_bitfield[1]&=255^( 1<<(keyCode-this.KEY_NUM8)); |
979 | else |
1037 | else |
980 | switch (getGameAction (keyCode)) |
1038 | switch (getGameAction (keyCode)) |
981 | { |
1039 | { |
982 | case UP: |
1040 | case UP: |
983 | keycontrol_bitfield[1]&=255^4; |
1041 | keycontrol_bitfield[1]&=255^4; |
984 | break; |
1042 | break; |
985 | 1043 | ||
986 | case DOWN: |
1044 | case DOWN: |
987 | keycontrol_bitfield[1]&=255^8; |
1045 | keycontrol_bitfield[1]&=255^8; |
988 | break; |
1046 | break; |
989 | 1047 | ||
990 | 1048 | ||
991 | case LEFT: |
1049 | case LEFT: |
992 | keycontrol_bitfield[1]&=255^16; |
1050 | keycontrol_bitfield[1]&=255^16; |
993 | break; |
1051 | break; |
994 | 1052 | ||
995 | case RIGHT: |
1053 | case RIGHT: |
996 | keycontrol_bitfield[1]&=255^32; |
1054 | keycontrol_bitfield[1]&=255^32; |
997 | break; |
1055 | break; |
998 | 1056 | ||
999 | case FIRE: |
1057 | case FIRE: |
1000 | keycontrol_bitfield[1]&=255^64; |
1058 | keycontrol_bitfield[1]&=255^64; |
1001 | break; |
1059 | break; |
1002 | 1060 | ||
1003 | 1061 | ||
1004 | } |
1062 | } |
1005 | mk.send_keys(keycontrol_bitfield); |
1063 | mk.send_keys(keycontrol_bitfield); |
1006 | break; |
1064 | break; |
1007 | } |
1065 | } |
1008 | 1066 | ||
1009 | } |
1067 | } |
1010 | 1068 | ||
1011 | 1069 | ||
1012 | byte keycontrol_exit=0; |
1070 | byte keycontrol_exit=0; |
1013 | 1071 | ||
1014 | public final static int[] keycontrol_bitfield={0,0}; |
1072 | public final static int[] keycontrol_bitfield={0,0}; |
1015 | 1073 | ||
1016 | 1074 | ||
1017 | public void pointerPressed (int pointer_x, int pointer_y) |
1075 | public void pointerPressed (int pointer_x, int pointer_y) |
1018 | { |
1076 | { |
1019 | if (pointer_x<this.getWidth()/2) |
1077 | if (pointer_x<this.getWidth()/2) |
1020 | { |
1078 | { |
1021 | if (state==STATEID_EDIT_PARAMS) |
1079 | if (state==STATEID_EDIT_PARAMS) |
1022 | { |
1080 | { |
1023 | chg_state(STATEID_HANDLE_PARAMS); |
1081 | chg_state(STATEID_HANDLE_PARAMS); |
1024 | return; |
1082 | return; |
1025 | } |
1083 | } |
1026 | 1084 | ||
1027 | else |
1085 | else |
1028 | if (state!=STATEID_KEYCONTROL) |
1086 | if (state!=STATEID_KEYCONTROL) |
1029 | { |
1087 | { |
1030 | chg_state(STATEID_MAINMENU); |
1088 | chg_state(STATEID_MAINMENU); |
1031 | return; |
1089 | return; |
1032 | } |
1090 | } |
1033 | } |
1091 | } |
1034 | else |
1092 | else |
1035 | { |
1093 | { |
1036 | fullscreen=!fullscreen; |
1094 | fullscreen=!fullscreen; |
1037 | setFullScreenMode(fullscreen); |
1095 | setFullScreenMode(fullscreen); |
1038 | } |
1096 | } |
1039 | 1097 | ||
1040 | } |
1098 | } |
1041 | 1099 | ||
1042 | public void keyPressed(int keyCode) |
1100 | public void keyPressed(int keyCode) |
1043 | { |
1101 | { |
1044 | debug.process_key(keyCode); |
1102 | debug.process_key(keyCode); |
1045 | 1103 | ||
1046 | 1104 | ||
1047 | if (keyCode==KEY_STAR) |
1105 | if (keyCode==KEY_STAR) |
1048 | { |
1106 | { |
1049 | if (state==STATEID_EDIT_PARAMS) |
1107 | if (state==STATEID_EDIT_PARAMS) |
1050 | { |
1108 | { |
1051 | chg_state(STATEID_HANDLE_PARAMS); |
1109 | chg_state(STATEID_HANDLE_PARAMS); |
1052 | return; |
1110 | return; |
1053 | } |
1111 | } |
1054 | else |
1112 | else |
1055 | if (state!=STATEID_KEYCONTROL) |
1113 | if (state!=STATEID_KEYCONTROL) |
1056 | { |
1114 | { |
1057 | chg_state(STATEID_MAINMENU); |
1115 | chg_state(STATEID_MAINMENU); |
1058 | return; |
1116 | return; |
1059 | } |
1117 | } |
1060 | 1118 | ||
1061 | } |
1119 | } |
1062 | if ((keyCode==KEY_POUND)&&(state!=STATEID_KEYCONTROL)) |
1120 | if ((keyCode==KEY_POUND)&&(state!=STATEID_KEYCONTROL)) |
1063 | { |
1121 | { |
1064 | fullscreen=!fullscreen; |
1122 | fullscreen=!fullscreen; |
1065 | setFullScreenMode(fullscreen); |
1123 | setFullScreenMode(fullscreen); |
1066 | return; |
1124 | return; |
1067 | } |
1125 | } |
1068 | switch(state) |
1126 | switch(state) |
1069 | { |
1127 | { |
- | 1128 | case STATEID_GPSVIEW: |
|
- | 1129 | if (keyCode == this.KEY_NUM0) |
|
- | 1130 | mk.set_gps_target(mk.gps_position.Latitude,mk.gps_position.Longitude); |
|
- | 1131 | ||
- | 1132 | if (keyCode == this.KEY_NUM1) |
|
- | 1133 | mk.gps_position.push_wp(); |
|
- | 1134 | ||
- | 1135 | ||
- | 1136 | switch (getGameAction (keyCode)) |
|
- | 1137 | { |
|
- | 1138 | case UP: |
|
- | 1139 | if (act_wp!=0) act_wp--; |
|
- | 1140 | break; |
|
- | 1141 | ||
- | 1142 | case DOWN: |
|
- | 1143 | if (act_wp<mk.gps_position.last_wp) act_wp++; |
|
- | 1144 | ||
- | 1145 | break; |
|
- | 1146 | ||
- | 1147 | ||
- | 1148 | } |
|
- | 1149 | ||
- | 1150 | ||
- | 1151 | break; |
|
- | 1152 | ||
1070 | case STATEID_RAWDEBUG: |
1153 | case STATEID_RAWDEBUG: |
1071 | 1154 | ||
1072 | switch (getGameAction (keyCode)) |
1155 | switch (getGameAction (keyCode)) |
1073 | { |
1156 | { |
1074 | case UP: |
1157 | case UP: |
1075 | if (rawdebug_cursor_y==0) |
1158 | if (rawdebug_cursor_y==0) |
1076 | rawdebug_cursor_y=31; |
1159 | rawdebug_cursor_y=31; |
1077 | else |
1160 | else |
1078 | rawdebug_cursor_y--; |
1161 | rawdebug_cursor_y--; |
1079 | break; |
1162 | break; |
1080 | 1163 | ||
1081 | case DOWN: |
1164 | case DOWN: |
1082 | if (rawdebug_cursor_y==31) |
1165 | if (rawdebug_cursor_y==31) |
1083 | rawdebug_cursor_y=0; |
1166 | rawdebug_cursor_y=0; |
1084 | else |
1167 | else |
1085 | rawdebug_cursor_y++; |
1168 | rawdebug_cursor_y++; |
1086 | break; |
1169 | break; |
- | 1170 | ||
1087 | 1171 | ||
1088 | } |
1172 | } |
1089 | break; |
1173 | break; |
1090 | case STATEID_KEYCONTROL: |
1174 | case STATEID_KEYCONTROL: |
1091 | if (keyCode==KEY_POUND) |
1175 | if (keyCode==KEY_POUND) |
1092 | keycontrol_exit |= 1; |
1176 | keycontrol_exit |= 1; |
1093 | else |
1177 | else |
1094 | if (keyCode==KEY_STAR) |
1178 | if (keyCode==KEY_STAR) |
1095 | keycontrol_exit |= 2; |
1179 | keycontrol_exit |= 2; |
1096 | else |
1180 | else |
1097 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
1181 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM8)) |
1098 | keycontrol_bitfield[0]|=1<<(keyCode-this.KEY_NUM0); |
1182 | keycontrol_bitfield[0]|=1<<(keyCode-this.KEY_NUM0); |
1099 | else |
1183 | else |
1100 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
1184 | if ((keyCode >= this.KEY_NUM8) && (keyCode <= this.KEY_NUM9)) |
1101 | keycontrol_bitfield[1]|=1<<(keyCode-this.KEY_NUM8); |
1185 | keycontrol_bitfield[1]|=1<<(keyCode-this.KEY_NUM8); |
1102 | 1186 | ||
1103 | else |
1187 | else |
1104 | switch (getGameAction (keyCode)) |
1188 | switch (getGameAction (keyCode)) |
1105 | { |
1189 | { |
1106 | case UP: |
1190 | case UP: |
1107 | keycontrol_bitfield[1]|=4; |
1191 | keycontrol_bitfield[1]|=4; |
1108 | break; |
1192 | break; |
1109 | 1193 | ||
1110 | case DOWN: |
1194 | case DOWN: |
1111 | keycontrol_bitfield[1]|=8; |
1195 | keycontrol_bitfield[1]|=8; |
1112 | break; |
1196 | break; |
1113 | 1197 | ||
1114 | 1198 | ||
1115 | case LEFT: |
1199 | case LEFT: |
1116 | keycontrol_bitfield[1]|=16; |
1200 | keycontrol_bitfield[1]|=16; |
1117 | break; |
1201 | break; |
1118 | 1202 | ||
1119 | case RIGHT: |
1203 | case RIGHT: |
1120 | keycontrol_bitfield[1]|=32; |
1204 | keycontrol_bitfield[1]|=32; |
1121 | break; |
1205 | break; |
1122 | 1206 | ||
1123 | case FIRE: |
1207 | case FIRE: |
1124 | keycontrol_bitfield[1]|=64; |
1208 | keycontrol_bitfield[1]|=64; |
1125 | break; |
1209 | break; |
1126 | 1210 | ||
1127 | } |
1211 | } |
1128 | if (keycontrol_exit==3) |
1212 | if (keycontrol_exit==3) |
1129 | chg_state(STATEID_MAINMENU); |
1213 | chg_state(STATEID_MAINMENU); |
1130 | else |
1214 | else |
1131 | mk.send_keys(keycontrol_bitfield); |
1215 | mk.send_keys(keycontrol_bitfield); |
1132 | break; |
1216 | break; |
1133 | 1217 | ||
1134 | 1218 | ||
1135 | case STATEID_MOTORTEST: |
1219 | case STATEID_MOTORTEST: |
1136 | switch (getGameAction (keyCode)) |
1220 | switch (getGameAction (keyCode)) |
1137 | { |
1221 | { |
1138 | case UP: |
1222 | case UP: |
1139 | act_motor_increase=-1; |
1223 | act_motor_increase=-1; |
1140 | break; |
1224 | break; |
1141 | 1225 | ||
1142 | case DOWN: |
1226 | case DOWN: |
1143 | act_motor_increase=1; |
1227 | act_motor_increase=1; |
1144 | break; |
1228 | break; |
1145 | 1229 | ||
1146 | case FIRE: |
1230 | case FIRE: |
1147 | motor_test_sel_all=!motor_test_sel_all; |
1231 | motor_test_sel_all=!motor_test_sel_all; |
1148 | break; |
1232 | break; |
1149 | 1233 | ||
1150 | case LEFT: |
1234 | case LEFT: |
1151 | act_motor--; |
1235 | act_motor--; |
1152 | if (act_motor<0) {act_motor=0; chg_state(STATEID_MAINMENU); } |
1236 | if (act_motor<0) {act_motor=0; chg_state(STATEID_MAINMENU); } |
1153 | break; |
1237 | break; |
1154 | 1238 | ||
1155 | case RIGHT: |
1239 | case RIGHT: |
1156 | act_motor++; |
1240 | act_motor++; |
1157 | act_motor%=4; |
1241 | act_motor%=4; |
1158 | break; |
1242 | break; |
1159 | } |
1243 | } |
1160 | 1244 | ||
1161 | break; |
1245 | break; |
1162 | case STATEID_HANDLE_PARAMS: |
1246 | case STATEID_HANDLE_PARAMS: |
1163 | if ( getGameAction (keyCode)==FIRE ) |
1247 | if ( getGameAction (keyCode)==FIRE ) |
1164 | switch(act_menu_select) |
1248 | switch(act_menu_select) |
1165 | { |
1249 | { |
1166 | case 0: |
1250 | case 0: |
1167 | mk.write_params(); |
1251 | mk.write_params(); |
1168 | default: |
1252 | default: |
1169 | chg_state(STATEID_MAINMENU); |
1253 | chg_state(STATEID_MAINMENU); |
1170 | } |
1254 | } |
1171 | else |
1255 | else |
1172 | menu_keypress(keyCode); |
1256 | menu_keypress(keyCode); |
1173 | break; |
1257 | break; |
1174 | 1258 | ||
1175 | case STATEID_SETTINGSMENU: |
1259 | case STATEID_SETTINGSMENU: |
1176 | if ( getGameAction (keyCode)==FIRE ) |
1260 | if ( getGameAction (keyCode)==FIRE ) |
1177 | switch(act_menu_select) |
1261 | switch(act_menu_select) |
1178 | { |
1262 | { |
1179 | case SETTINGSMENU_CHANGESKIN: |
1263 | case SETTINGSMENU_CHANGESKIN: |
1180 | act_skin++; |
1264 | act_skin++; |
1181 | act_skin=(byte)(act_skin%2); |
1265 | act_skin=(byte)(act_skin%2); |
1182 | load_images(); |
1266 | load_images(); |
1183 | chg_state(STATEID_SETTINGSMENU); |
1267 | chg_state(STATEID_SETTINGSMENU); |
1184 | break; |
1268 | break; |
1185 | case SETTINGSMENU_SOUNDTOGGLE: |
1269 | case SETTINGSMENU_SOUNDTOGGLE: |
1186 | do_sound=!do_sound; |
1270 | do_sound=!do_sound; |
1187 | chg_state(STATEID_SETTINGSMENU); |
1271 | chg_state(STATEID_SETTINGSMENU); |
1188 | break; |
1272 | break; |
1189 | case SETTINGSMENU_VIBRATOGGLE: |
1273 | case SETTINGSMENU_VIBRATOGGLE: |
1190 | do_vibra=!do_vibra; |
1274 | do_vibra=!do_vibra; |
1191 | chg_state(STATEID_SETTINGSMENU); |
1275 | chg_state(STATEID_SETTINGSMENU); |
1192 | break; |
1276 | break; |
1193 | 1277 | ||
1194 | case SETTINGSMENU_GRAPHTOGGLE: |
1278 | case SETTINGSMENU_GRAPHTOGGLE: |
1195 | do_graph=!do_graph; |
1279 | do_graph=!do_graph; |
1196 | chg_state(STATEID_SETTINGSMENU); |
1280 | chg_state(STATEID_SETTINGSMENU); |
1197 | break; |
1281 | break; |
1198 | 1282 | ||
1199 | 1283 | ||
1200 | case SETTINGSMENU_FULLSCREENTOGGLE: |
1284 | case SETTINGSMENU_FULLSCREENTOGGLE: |
1201 | fullscreen=!fullscreen; |
1285 | fullscreen=!fullscreen; |
1202 | setFullScreenMode(fullscreen); |
1286 | setFullScreenMode(fullscreen); |
1203 | chg_state(STATEID_SETTINGSMENU); |
1287 | chg_state(STATEID_SETTINGSMENU); |
1204 | break; |
1288 | break; |
1205 | 1289 | ||
1206 | case SETTINGSMENU_LIGHTTOGGLE: |
1290 | case SETTINGSMENU_LIGHTTOGGLE: |
1207 | keep_lighton =!keep_lighton; |
1291 | keep_lighton =!keep_lighton; |
1208 | chg_state(STATEID_SETTINGSMENU); |
1292 | chg_state(STATEID_SETTINGSMENU); |
1209 | break; |
1293 | break; |
1210 | 1294 | ||
1211 | case SETTINGSMENU_BACK: |
1295 | case SETTINGSMENU_BACK: |
1212 | chg_state(STATEID_MAINMENU); |
1296 | chg_state(STATEID_MAINMENU); |
1213 | break; |
1297 | break; |
1214 | 1298 | ||
1215 | } |
1299 | } |
1216 | else menu_keypress(keyCode); |
1300 | else menu_keypress(keyCode); |
1217 | break; |
1301 | break; |
1218 | 1302 | ||
1219 | case STATEID_MAINMENU: |
1303 | case STATEID_MAINMENU: |
1220 | if ( getGameAction (keyCode)==FIRE ) |
1304 | if ( getGameAction (keyCode)==FIRE ) |
- | 1305 | { |
|
- | 1306 | ||
- | 1307 | if (ufo_prober.is_mk()) |
|
1221 | switch(act_menu_select) |
1308 | switch(act_menu_select) |
1222 | { |
1309 | { |
1223 | case MAINMENU_CAMMODE: |
1310 | case MAINMENU_MK_CAMMODE: |
1224 | chg_state(STATEID_CAMMODE); |
1311 | chg_state(STATEID_CAMMODE); |
1225 | break; |
1312 | break; |
1226 | 1313 | ||
1227 | case MAINMENU_SETTINGSMENU: |
1314 | case MAINMENU_MK_SETTINGSMENU: |
1228 | chg_state(STATEID_SETTINGSMENU); |
1315 | chg_state(STATEID_SETTINGSMENU); |
1229 | break; |
1316 | break; |
1230 | case MAINMENU_STICKS: |
1317 | case MAINMENU_MK_STICKS: |
1231 | chg_state(STATEID_STICKVIEW); |
1318 | chg_state(STATEID_STICKVIEW); |
1232 | break; |
1319 | break; |
1233 | 1320 | ||
1234 | case MAINMENU_KEYCONTROL: |
1321 | case MAINMENU_MK_KEYCONTROL: |
1235 | chg_state(STATEID_KEYCONTROL); |
1322 | chg_state(STATEID_KEYCONTROL); |
1236 | break; |
1323 | break; |
1237 | 1324 | ||
1238 | case MAINMENU_TELEMETRY : |
1325 | case MAINMENU_MK_TELEMETRY : |
1239 | chg_state(STATEID_FLIGHTVIEW); |
1326 | chg_state(STATEID_FLIGHTVIEW); |
1240 | break; |
1327 | break; |
1241 | 1328 | ||
1242 | case MAINMENU_MOTORTEST : |
1329 | case MAINMENU_MK_MOTORTEST : |
1243 | chg_state(STATEID_MOTORTEST); |
1330 | chg_state(STATEID_MOTORTEST); |
1244 | break; |
1331 | break; |
1245 | 1332 | ||
- | 1333 | case MAINMENU_MK_PARAMS : |
|
- | 1334 | if (mk.watchdog.act_paramset<5) |
|
- | 1335 | chg_state(STATEID_READ_PARAMS); |
|
1246 | case MAINMENU_PARAMS : |
1336 | else |
1247 | chg_state(STATEID_SELECT_PARAMSET); |
1337 | chg_state(STATEID_SELECT_PARAMSET); |
1248 | break; |
1338 | break; |
1249 | 1339 | ||
1250 | 1340 | ||
1251 | case MAINMENU_PROXY: |
1341 | case MAINMENU_MK_PROXY: |
1252 | mk.do_proxy("socket://192.168.1.42:2323"); |
1342 | mk.do_proxy("socket://192.168.1.42:2323"); |
1253 | break; |
1343 | break; |
1254 | 1344 | ||
1255 | case MAINMENU_DEVICESELECT: |
1345 | case MAINMENU_MK_DEVICESELECT: |
1256 | chg_state(STATEID_SCANNING); |
1346 | chg_state(STATEID_SCANNING); |
1257 | break; |
1347 | break; |
1258 | 1348 | ||
1259 | case MAINMENU_RAWDEBUG: |
1349 | case MAINMENU_MK_RAWDEBUG: |
1260 | chg_state(STATEID_RAWDEBUG); |
1350 | chg_state(STATEID_RAWDEBUG); |
1261 | break; |
1351 | break; |
1262 | 1352 | ||
1263 | case MAINMENU_QUIT: |
1353 | case MAINMENU_MK_QUIT: |
1264 | // set quit Flag |
1354 | // set quit Flag |
1265 | quit=true; |
1355 | quit=true; |
1266 | break; |
1356 | break; |
1267 | 1357 | ||
1268 | } |
1358 | } |
- | 1359 | else if (ufo_prober.is_navi()) |
|
- | 1360 | switch(act_menu_select) |
|
- | 1361 | { |
|
- | 1362 | ||
- | 1363 | ||
- | 1364 | ||
- | 1365 | case MAINMENU_NAVI_SETTINGS: |
|
- | 1366 | chg_state(STATEID_SETTINGSMENU); |
|
- | 1367 | break; |
|
- | 1368 | ||
- | 1369 | case MAINMENU_NAVI_TELEMETRY : |
|
- | 1370 | chg_state(STATEID_FLIGHTVIEW); |
|
- | 1371 | break; |
|
- | 1372 | ||
- | 1373 | ||
- | 1374 | case MAINMENU_NAVI_RAWDEBUG: |
|
- | 1375 | chg_state(STATEID_RAWDEBUG); |
|
- | 1376 | break; |
|
- | 1377 | ||
- | 1378 | case MAINMENU_NAVI_GPSVIEW: |
|
- | 1379 | chg_state(STATEID_GPSVIEW); |
|
- | 1380 | break; |
|
- | 1381 | ||
- | 1382 | case MAINMENU_NAVI_DEVICESELECT: |
|
- | 1383 | chg_state(STATEID_SCANNING); |
|
- | 1384 | break; |
|
- | 1385 | ||
- | 1386 | ||
- | 1387 | case MAINMENU_NAVI_QUIT: |
|
- | 1388 | // set quit Flag |
|
- | 1389 | quit=true; |
|
- | 1390 | break; |
|
- | 1391 | } |
|
- | 1392 | ||
- | 1393 | else |
|
- | 1394 | switch(act_menu_select) |
|
- | 1395 | { |
|
- | 1396 | ||
- | 1397 | ||
- | 1398 | ||
- | 1399 | case MAINMENU_NO_CONN_SETTINGS: |
|
- | 1400 | chg_state(STATEID_SETTINGSMENU); |
|
- | 1401 | break; |
|
- | 1402 | ||
- | 1403 | case MAINMENU_NO_CONN_DEVICESELECT: |
|
- | 1404 | chg_state(STATEID_SCANNING); |
|
- | 1405 | break; |
|
- | 1406 | ||
- | 1407 | ||
- | 1408 | case MAINMENU_NO_CONN_QUIT: |
|
- | 1409 | // set quit Flag |
|
- | 1410 | quit=true; |
|
- | 1411 | break; |
|
- | 1412 | ||
- | 1413 | ||
- | 1414 | } |
|
- | 1415 | } |
|
1269 | else menu_keypress(keyCode); |
1416 | else menu_keypress(keyCode); |
1270 | break; |
1417 | break; |
1271 | 1418 | ||
1272 | case STATEID_SELECT_PARAMSET: |
1419 | case STATEID_SELECT_PARAMSET: |
1273 | if ( getGameAction (keyCode)==FIRE ) |
1420 | if ( getGameAction (keyCode)==FIRE ) |
1274 | { |
1421 | { |
1275 | if ( mk.params.field[act_menu_select]!=null) |
1422 | if ( mk.params.field[act_menu_select]!=null) |
1276 | { |
1423 | { |
1277 | mk.params.act_paramset=act_menu_select; |
1424 | mk.params.act_paramset=act_menu_select; |
1278 | chg_state(STATEID_EDIT_PARAMS); |
1425 | chg_state(STATEID_EDIT_PARAMS); |
1279 | } |
1426 | } |
1280 | } |
1427 | } |
1281 | else menu_keypress(keyCode); |
1428 | else menu_keypress(keyCode); |
1282 | break; |
1429 | break; |
1283 | case STATEID_DEVICESELECT: |
1430 | case STATEID_DEVICESELECT: |
1284 | /* |
1431 | /* |
1285 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
1432 | if ((keyCode >= this.KEY_NUM0) && (keyCode < this.KEY_NUM0+bt_scanner.remote_device_count)) |
1286 | { |
1433 | { |
1287 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1",bt_scanner.remote_device_name[keyCode-this.KEY_NUM0]); |
1434 | connect_mk("btspp://"+bt_scanner.remote_device_mac[keyCode-this.KEY_NUM0] + ":1",bt_scanner.remote_device_name[keyCode-this.KEY_NUM0]); |
1288 | chg_state(STATEID_MAINMENU); |
1435 | chg_state(STATEID_MAINMENU); |
1289 | } |
1436 | } |
1290 | else |
1437 | else |
1291 | */ |
1438 | */ |
1292 | 1439 | ||
1293 | if ( getGameAction (keyCode)==FIRE ) |
1440 | if ( getGameAction (keyCode)==FIRE ) |
1294 | { |
1441 | { |
1295 | 1442 | ||
1296 | if (bt_scanner.remote_device_count > act_menu_select) |
1443 | if (bt_scanner.remote_device_count > act_menu_select) |
1297 | { |
1444 | { |
1298 | connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
1445 | connect_mk("btspp://"+bt_scanner.remote_device_mac[act_menu_select] + ":1",bt_scanner.remote_device_name[act_menu_select]); |
1299 | chg_state(STATEID_MAINMENU); |
1446 | chg_state(STATEID_MAINMENU); |
- | 1447 | // keyCode=-1; |
|
1300 | } |
1448 | } |
1301 | else |
1449 | else |
1302 | chg_state(STATEID_SCANNING); |
1450 | chg_state(STATEID_SCANNING); |
1303 | } |
1451 | } |
1304 | else menu_keypress(keyCode); |
1452 | else menu_keypress(keyCode); |
1305 | 1453 | ||
1306 | break; |
1454 | break; |
1307 | 1455 | ||
1308 | case STATEID_EDIT_PARAMS: |
1456 | case STATEID_EDIT_PARAMS: |
1309 | params_editor.keypress(keyCode,getGameAction (keyCode)) ; |
1457 | params_editor.keypress(keyCode,getGameAction (keyCode)) ; |
1310 | break; |
1458 | break; |
1311 | 1459 | ||
1312 | case STATEID_FLIGHTVIEW: |
1460 | case STATEID_FLIGHTVIEW: |
1313 | 1461 | ||
1314 | if ((keyCode >= this.KEY_NUM0) && (keyCode <= this.KEY_NUM9)) |
1462 | if ((keyCode >= this.KEY_NUM0) && (keyCode <= this.KEY_NUM9)) |
1315 | mk.LCD.set_page(keyCode-this.KEY_NUM0); |
1463 | mk.LCD.set_page(keyCode-this.KEY_NUM0); |
1316 | else |
1464 | else |
1317 | switch (getGameAction (keyCode)) |
1465 | switch (getGameAction (keyCode)) |
1318 | { |
1466 | { |
1319 | case LEFT: |
1467 | case LEFT: |
1320 | case UP: |
1468 | case UP: |
1321 | mk.LCD.LCD_PREVPAGE(); |
1469 | mk.LCD.LCD_PREVPAGE(); |
1322 | break; |
1470 | break; |
1323 | 1471 | ||
1324 | case RIGHT: |
1472 | case RIGHT: |
1325 | case DOWN: |
1473 | case DOWN: |
1326 | mk.LCD.LCD_NEXTPAGE(); |
1474 | mk.LCD.LCD_NEXTPAGE(); |
1327 | break; |
1475 | break; |
1328 | 1476 | ||
1329 | 1477 | ||
1330 | 1478 | ||
1331 | } |
1479 | } |
1332 | break; |
1480 | break; |
1333 | } |
1481 | } |
1334 | 1482 | ||
1335 | 1483 | ||
1336 | 1484 | ||
1337 | } |
1485 | } |
1338 | 1486 | ||
1339 | 1487 | ||
1340 | 1488 | ||
1341 | 1489 | ||
1342 | 1490 | ||
1343 | 1491 | ||
1344 | 1492 | ||
1345 | 1493 | ||
1346 | } |
1494 | } |
1347 | 1495 | ||
1348 | 1496 | ||
1349 | 1497 |