103,6 → 103,7 |
|
// variable to hold the current state |
public byte state=STATEID_INITIAL; |
public byte nextstate=STATEID_INITIAL; |
|
int local_max=-1; |
|
158,7 → 159,7 |
tmp_actions[setup_pos]=ACTIONID_RCDATA; |
tmp_items[setup_pos++] ="view RC-data"; |
|
tmp_actions[setup_pos]=ACTIONID_EDIT_PARAMS; |
tmp_actions[setup_pos]=ACTIONID_PARAM_MENU; |
tmp_items[setup_pos++] ="Flight Settings"; |
|
tmp_actions[setup_pos] =ACTIONID_HORIZON; |
189,7 → 190,6 |
} |
|
|
|
if ( mk.ufo_prober.is_navi()) |
{ |
tmp_actions[setup_pos]=ACTIONID_GPSDATA; |
392,8 → 392,8 |
public DUBwiseCanvas(DUBwise _root) |
{ |
|
act_menu_select_bak=new int[LAST_STATEID]; |
for (int i=0;i<LAST_STATEID;i++) |
act_menu_select_bak=new int[STATEID_COUNT]; |
for (int i=0;i<STATEID_COUNT;i++) |
act_menu_select_bak[i]=0; |
//#if fileapi=="on" |
file_access=new DUBwiseFileAccess(this); |
457,7 → 457,7 |
if (mk.ufo_prober.is_incompatible()) |
{ |
mk.error_str="incompatible Device"; |
chg_state(STATEID_NC_ERRORS); |
chg_state(STATEID_ERROR_MSG); |
} |
else |
if (state==STATEID_MAINMENU) |
467,7 → 467,15 |
|
switch(state) |
{ |
|
|
case STATEID_RESET_PARAMS: |
if (mk.bootloader_finish_ok) |
{ |
nextstate=STATEID_PARAM_MENU; |
success_msg="Param Reset Success!"; |
chg_state(STATEID_SUCCESS_MSG); |
} |
break; |
case STATEID_GRAPH: |
graph_offset--; |
if (graph_offset==-graph_data[0].length) |
508,7 → 516,8 |
//mk.send_keys(keycontrol_bitfield); |
break; |
|
case STATEID_NC_ERRORS: |
|
case STATEID_ERROR_MSG: |
lcd_lines[0]=""+mk.error_str; |
break; |
|
526,7 → 535,7 |
if (mk.params.found_incompatible) |
{ |
mk.error_str="incompatible params"; |
chg_state(STATEID_NC_ERRORS); |
chg_state(STATEID_ERROR_MSG); |
} |
|
} |
957,17 → 966,20 |
y_off-=spacer1; |
} |
break; |
case STATEID_NC_ERRORS: |
|
case STATEID_SUCCESS_MSG: |
case STATEID_ERROR_MSG: |
if (err_img!=null) |
{ |
int err_img_left=(canvas_width-err_img.getWidth()/2)/2; |
int err_img_top=(canvas_height-err_img.getHeight())/2; |
if (err_img_top<0)err_img_top=0; |
g.setClip(err_img_left,err_img_top,err_img.getWidth()/2,err_img.getHeight()); |
g.drawImage(err_img,err_img_left-err_img.getWidth()/2,err_img_top, g.TOP | g.LEFT); |
g.drawImage(err_img,err_img_left-((state==STATEID_SUCCESS_MSG)?0:(err_img.getWidth()/2)),err_img_top, g.TOP | g.LEFT); |
} |
paint_lcd(g); |
|
break; |
break; |
|
case STATEID_GPSVIEW: |
|
1066,6 → 1078,7 |
|
break; |
|
case STATEID_RESET_PARAMS: |
case STATEID_FLASHING: |
g.setFont(f2); |
int msg_pos=0; |
1157,9 → 1170,15 |
paint_menu(g); |
break; |
//#endif |
|
|
case STATEID_PARAM_MENU: |
paint_menu(g); |
break; |
case STATEID_STRINGINPUT: |
case STATEID_ABOUT: |
case STATEID_IPINPUT: |
|
paint_lcd(g); |
break; |
|
1473,6 → 1492,7 |
// int intro_str_pos=0; |
// int intro_str_delay=3; |
// boolean init_bootloader=false; |
String success_msg=""; |
|
public void chg_state(byte next_state) |
{ |
1486,9 → 1506,11 |
// prepare next state |
switch(next_state) |
{ |
case STATEID_NC_ERRORS: |
case STATEID_SUCCESS_MSG: |
case STATEID_ERROR_MSG: |
lcd_lines=new String[1]; |
lcd_lines[0]=""+mk.error_str; |
|
lcd_lines[0]=""+((next_state==STATEID_SUCCESS_MSG)?success_msg:mk.error_str); |
try |
{ |
err_img=Image.createImage("/preflight.jpg"); |
1511,6 → 1533,13 |
case STATEID_FLIGHTVIEW: |
mk.user_intent=USER_INTENT_LCD; |
break; |
case STATEID_RESET_PARAMS: |
|
mk.bootloader_intension_flash=false; |
mk.bl_retrys=0; |
mk.init_bootloader=true; |
break; |
|
case STATEID_FLASHING: |
mk.bootloader_intension_flash=true; |
mk.bl_retrys=0; |
1548,6 → 1577,11 |
case STATEID_CONN_DETAILS: |
setup_menu(conn_details_menu_items,conn_details_menu_actions); |
break; |
|
|
case STATEID_PARAM_MENU: |
setup_menu(param_menu_items,param_menu_actions); |
break; |
case STATEID_TRAFFIC: |
setup_menu(onlyback_menu_items,back_to_conndetails_actions); |
break; |
1619,11 → 1653,12 |
break; |
|
case STATEID_SELECT_PARAMSET: |
menu_items=new String[5]; |
menu_items=new String[6]; |
for (int i=0;i<5;i++) |
menu_items[i]=""+(i+1)+": " + mk.params.getParamName(i) + ((i==mk.params.active_paramset)?"*":""); |
|
lcd_lines=new String[5]; |
menu_items[5]="back"; |
lcd_lines=new String[6]; |
break; |
|
//#if bluetooth=="on" |
1846,7 → 1881,10 |
switch(state) |
{ |
|
case STATEID_NC_ERRORS: |
case STATEID_SUCCESS_MSG: |
chg_state(nextstate); |
break; |
case STATEID_ERROR_MSG: |
chg_state(STATEID_MAINMENU); |
break; |
case STATEID_STRINGINPUT: |
2147,6 → 2185,7 |
// handle menue |
// case STATEID_SELECT_SPEED_FORMAT: |
// case STATEID_SELECT_GPS_FORMAT: |
case STATEID_PARAM_MENU: |
case STATEID_TRAFFIC: |
case STATEID_CONN_DETAILS: |
case STATEID_HANDLE_PARAMS: |
2157,7 → 2196,14 |
{ |
switch(menu_actions[act_menu_select]) |
{ |
|
case ACTIONID_PARAM_MENU: |
chg_state(STATEID_PARAM_MENU); |
break; |
|
case ACTIONID_PARAM_WRITE_OK: |
success_msg="Parameter Write OK"; |
chg_state(STATEID_SUCCESS_MSG); |
break; |
case ACTIONID_HORIZON: |
chg_state(STATEID_HORIZON); |
break; |
2174,10 → 2220,9 |
break; |
|
case ACTIONID_RESET_PARAMS: |
state=STATEID_FLASHING; |
mk.bootloader_intension_flash=false; |
mk.bl_retrys=0; |
mk.init_bootloader=true; |
chg_state(STATEID_RESET_PARAMS); |
// state=STATEID_FLASHING; |
|
break; |
|
case ACTIONID_FLASH: |
2189,7 → 2234,7 |
break; |
|
case ACTIONID_NC_ERRORS: |
chg_state(STATEID_NC_ERRORS); |
chg_state(STATEID_ERROR_MSG); |
break; |
|
case ACTIONID_ABOUT: |
2265,6 → 2310,9 |
|
|
case ACTIONID_EDIT_PARAMS: |
chg_state(STATEID_EDIT_PARAMS); |
break; |
case ACTIONID_SELECT_PARAMS: |
select_paramset4edit=true; |
if (mk.watchdog.act_paramset<5) |
chg_state(STATEID_READ_PARAMS); |
2281,12 → 2329,17 |
|
case ACTIONID_WRITE_PARAMS: |
mk.write_params(mk.params.act_paramset); |
chg_state(STATEID_MAINMENU); |
success_msg="Saved Settings"; // too optimistic |
nextstate=STATEID_HANDLE_PARAMS; |
chg_state(STATEID_SUCCESS_MSG); |
break; |
|
case ACTIONID_UNDO_PARAMS: |
mk.params.use_backup(); |
chg_state(STATEID_MAINMENU); |
success_msg="Settings Undo OK"; // too optimistic |
nextstate=STATEID_HANDLE_PARAMS; |
chg_state(STATEID_SUCCESS_MSG); |
|
break; |
|
case ACTIONID_MAINMENU: |
2330,16 → 2383,31 |
case STATEID_SELECT_PARAMSET: |
if ( getGameAction (keyCode)==FIRE ) |
{ |
if (select_paramset4edit) |
// if ( mk.params.field[act_menu_select]!=null) |
{ |
mk.params.act_paramset=act_menu_select; |
chg_state(STATEID_EDIT_PARAMS); |
if (act_menu_select==5) // back |
{ |
if (select_paramset4edit) |
chg_state(STATEID_PARAM_MENU); |
else |
chg_state(STATEID_HANDLE_PARAMS); |
|
} |
else |
{ |
mk.write_params(act_menu_select); |
chg_state(STATEID_MAINMENU); |
{ |
if (select_paramset4edit) |
// if ( mk.params.field[act_menu_select]!=null) |
{ |
mk.params.act_paramset=act_menu_select; |
chg_state(STATEID_HANDLE_PARAMS); |
//success_msg="Params saved"; |
} |
else |
{ |
mk.write_params(act_menu_select); |
nextstate=STATEID_HANDLE_PARAMS; |
success_msg="saved in slot " + (act_menu_select+1) ; |
chg_state(STATEID_SUCCESS_MSG); // TODO - ground too optimistic way ;-) |
} |
|
} |
} |
else menu_keypress(keyCode); |