65,6 → 65,7 |
public DUBwiseDebug debug=null; |
public FirmwareLoader fw_loader=null; |
|
public byte last_navi_error=0; |
|
|
|
199,8 → 200,12 |
public void setup_conn_menu() |
{ |
tmp_menu_init(7); |
|
if (mk.connected) |
{ |
tmp_menu_add(l(STRINGID_PACKET_TRAFFIC),ACTIONID_TRAFFIC); |
tmp_menu_add(l(STRINGID_VIEW_DATA),ACTIONID_DATABUFF); |
} |
//#if bluetooth=="on" |
tmp_menu_add(l(STRINGID_CONNECT_BT),ACTIONID_SCAN_BT); |
//#endif |
222,14 → 227,17 |
tmp_menu_add(l(STRINGID_SETTINGS),ACTIONID_SETTINGS); |
tmp_menu_add(l(STRINGID_CONN),ACTIONID_CONN_DETAILS); |
|
if (settings.dev_mode) |
{ |
tmp_menu_add(l(STRINGID_SELECT_FIRMWARE),ACTIONID_SELECT_FIRMWARE); |
tmp_menu_add("UPDATE_DUBWISE",ACTIONID_UPDATE_DUBWISE); |
} |
|
|
|
if (settings.expert_mode) |
tmp_menu_add(l(STRINGID_DEBUG),ACTIONID_DEBUG); |
|
// only mk |
if (mk.ufo_prober.is_mk()) |
{ |
|
237,29 → 245,29 |
tmp_menu_add(l(STRINGID_KEYCONTROL),ACTIONID_KEYCONTROL); |
tmp_menu_add(l(STRINGID_RCDATA),ACTIONID_RCDATA); |
tmp_menu_add(l(STRINGID_FLIGHTSETTINGS),ACTIONID_PARAM_MENU); |
|
tmp_menu_add(l(STRINGID_GRAPH),ACTIONID_GRAPH); |
} |
|
|
|
// mk & navi |
if ( mk.ufo_prober.is_navi()||mk.ufo_prober.is_mk() ) |
{ |
tmp_menu_add(l(STRINGID_HORIZON),ACTIONID_HORIZON); |
tmp_menu_add(l(STRINGID_COCKPIT),ACTIONID_HORIZON); |
tmp_menu_add(l(STRINGID_LCD),ACTIONID_LCD); |
tmp_menu_add("Follow Me",ACTIONID_SHOWPHONEGPS); |
} |
|
if ( mk.ufo_prober.is_mk() ) |
tmp_menu_add(l(STRINGID_GRAPH),ACTIONID_GRAPH); |
|
|
if (( mk.ufo_prober.is_navi()||mk.ufo_prober.is_mk()||mk.ufo_prober.is_mk3mag() )) |
tmp_menu_add(l(STRINGID_DEBUG_VALUES),ACTIONID_RAWDEBUG); |
|
|
// only navi |
if ( mk.ufo_prober.is_navi()) |
{ |
if (settings.dev_mode) tmp_menu_add("Follow Me",ACTIONID_SHOWPHONEGPS); |
tmp_menu_add(l(STRINGID_VIEW_GPS),ACTIONID_GPSDATA); |
tmp_menu_add(l(STRINGID_VIEW_ERRORS),ACTIONID_NC_ERRORS); |
if (last_navi_error!=0) tmp_menu_add(l(STRINGID_VIEW_ERRORS),ACTIONID_NC_ERRORS); |
tmp_menu_add(l(STRINGID_SWITCH_FC),ACTIONID_SWITCH_FC); |
tmp_menu_add(l(STRINGID_SWITCH_MK3MAG),ACTIONID_SWITCH_MK3MAG); |
|
274,7 → 282,7 |
if (settings.expert_mode) |
tmp_menu_add(l(STRINGID_FLASH_FIRMWARE),ACTIONID_FLASH); |
|
if (settings.expert_mode&& mk.ufo_prober.is_mk() ) |
if (settings.dev_mode&& mk.ufo_prober.is_mk() ) |
tmp_menu_add(l(STRINGID_REMOTE_CAM),ACTIONID_CAM); |
|
if (!settings.expert_mode) |
288,9 → 296,12 |
|
public void setup_menu(String[] items , byte[] actions) |
{ |
if ((menu_items==null)||(act_menu_select>menu_items.length)) |
act_menu_select=0; |
menu_items=items; |
menu_actions=actions; |
lcd_lines=new String[menu_items.length]; |
|
} |
|
public void setup_menu(int[] items , byte[] actions) |
495,7 → 506,7 |
try |
{ |
symbols_img=Image.createImage("/symbols.png"); |
symbols_img_tile_height=symbols_img.getHeight()/2; |
symbols_img_tile_height=symbols_img.getHeight()/3; |
symbols_img_tile_width=symbols_img.getWidth()/10; |
|
/* if (bg_img!=null) |
596,8 → 607,8 |
|
|
|
mk.gps_position.act_speed_format=settings.speed_format; |
mk.gps_position.act_gps_format= settings.gps_format; |
// mk.gps_position.act_speed_format=settings.speed_format; |
/// mk.gps_position.act_gps_format= settings.gps_format; |
|
|
chg_state(STATEID_MAINMENU); |
638,15 → 649,49 |
chg_state(STATEID_ERROR_MSG); |
} |
else |
{ |
if (state==STATEID_MAINMENU) |
chg_state(STATEID_MAINMENU); // reload mainmenu ( changed content ) |
if (state==STATEID_CONN_DETAILS) |
chg_state(STATEID_CONN_DETAILS); // reload mainmenu ( changed content ) |
} |
} |
|
if (mk.disconnect_notify) |
{ |
mk.disconnect_notify=false; |
nextstate=STATEID_MAINMENU; |
mk.error_str=l(STRINGID_DISCONNECT); |
chg_state( STATEID_ERROR_MSG); |
if (settings.do_vibra) |
root.vibrate(100); |
} |
if (mk.ufo_prober.is_navi()) |
{ |
if ((last_navi_error==0)&&(mk.gps_position.ErrorCode!=0)) |
{ |
|
nextstate=state; |
|
mk.error_str=null; |
chg_state( STATEID_ERROR_MSG); |
if (settings.do_vibra) |
root.vibrate(100); |
} |
else |
if ((last_navi_error!=0)&&(mk.gps_position.ErrorCode==0)&&(state== STATEID_ERROR_MSG)) |
chg_state(nextstate); |
else if (last_navi_error!=mk.gps_position.ErrorCode) |
mk.error_str=null; |
last_navi_error=(byte)mk.gps_position.ErrorCode; |
} |
|
|
switch(state) |
{ |
|
|
//#if jsr179=="on" |
case STATEID_SHOWPHONEGPS: |
|
try |
682,6 → 727,7 |
if(c != null ) { |
// Use coordinate information |
//#if cldc11=="on" |
|
phone_lat= c.getLatitude(); |
phone_long = c.getLongitude(); |
//#endif |
696,6 → 742,7 |
|
break; |
|
//#endif |
case STATEID_SELECT_FIRMWARE: |
if ((menu_items.length==0)&&(fw_loader.got_list)) |
setup_menu(fw_loader.names,null); |
932,8 → 979,8 |
|
if (quit) |
{ |
settings.speed_format=mk.gps_position.act_speed_format; |
settings.gps_format=mk.gps_position.act_gps_format; |
// settings.speed_format=mk.gps_position.act_speed_format; |
//settings.gps_format=mk.gps_position.act_gps_format; |
settings.save(); |
root.quit(); |
} |
1176,11 → 1223,41 |
|
if (mk.ufo_prober.is_navi()) |
{ |
if (mk.gps_position.ErrorCode!=0) |
{ |
symbol_paint(g,symbol_left,7,0); |
symbol_left+=5*(symbols_img_tile_width)/4; |
} |
|
if ((mk.gps_position.NCFlags&2)!=0) |
{ |
symbol_paint(g,symbol_left,8,0); |
symbol_left+=5*(symbols_img_tile_width)/4; |
} |
|
|
if ((mk.gps_position.NCFlags&4)!=0) |
{ |
symbol_paint(g,symbol_left,0,2); |
symbol_left+=5*(symbols_img_tile_width)/4; |
|
} |
|
if ((mk.gps_position.NCFlags&8)!=0) |
{ |
symbol_paint(g,symbol_left,0,2); |
symbol_left+=5*(symbols_img_tile_width)/4; |
|
} |
|
symbol_paint(g,symbol_left,5,0); |
symbol_left+=5*(symbols_img_tile_width)/4; |
|
symbol_paint(g,symbol_left,(mk.gps_position.SatsInUse)%10,1); |
symbol_left+=6*(symbols_img_tile_width)/4; |
|
|
|
} |
|
} |
1205,16 → 1282,14 |
int horizon_middle=y_off+horizon_height; |
|
|
int horizon_roll_pixels= (mk.AngleRoll()*horizon_height)/600; |
int horizon_roll_pixels_=horizon_roll_pixels; |
int horizon_roll_pixels= ((mk.AngleRoll()*horizon_height)/600) * (settings.horizon_invert_roll?-1:1); |
|
|
int nick_bar_width=canvas_width/4; |
int nick_bar_height= nick_bar_width/2; |
|
|
int nick_size=canvas_width/4; |
int nick_pixels_y=(mk.AngleNick()*horizon_height)/900; |
int nick_pixels_y=((mk.AngleNick()*horizon_height)/900) * (settings.horizon_invert_nick?-1:1);; |
|
int nick_pixels_x; |
if ((mk.AngleRoll()*mk.AngleNick())>1) |
1223,65 → 1298,23 |
nick_pixels_x=((int)Math.sqrt(-mk.AngleRoll()*mk.AngleNick())*(canvas_width/2))/(900); |
|
|
if (horizon_roll_pixels_>0) |
if (horizon_roll_pixels>0) |
|
{ |
|
g.fillTriangle(0,horizon_middle+horizon_roll_pixels,canvas_width,horizon_middle+horizon_roll_pixels,canvas_width,horizon_middle-horizon_roll_pixels); |
g.fillRect(0,horizon_middle+horizon_roll_pixels_,canvas_width,canvas_height-(horizon_middle+horizon_roll_pixels_)); |
g.fillRect(0,horizon_middle+horizon_roll_pixels,canvas_width,canvas_height-(horizon_middle+horizon_roll_pixels)); |
} |
else |
{ |
|
g.fillTriangle(0,horizon_middle+horizon_roll_pixels,0,horizon_middle-horizon_roll_pixels,canvas_width,horizon_middle-horizon_roll_pixels); |
g.fillRect(0,horizon_middle-horizon_roll_pixels_,canvas_width,canvas_height-(horizon_middle-horizon_roll_pixels_)); |
g.fillRect(0,horizon_middle-horizon_roll_pixels,canvas_width,canvas_height-(horizon_middle-horizon_roll_pixels)); |
} |
|
|
|
|
/* while (horizon_roll_pixels!=0) |
{ |
|
if (horizon_roll_pixels_>0) |
{ |
g.drawLine(0,horizon_middle+horizon_roll_pixels_,canvas_width,horizon_middle-horizon_roll_pixels); |
g.drawLine(0,horizon_middle+horizon_roll_pixels_,canvas_width,horizon_middle+horizon_roll_pixels); |
} |
else |
{ |
g.drawLine(0,horizon_middle+horizon_roll_pixels,canvas_width,horizon_middle-horizon_roll_pixels_); |
g.drawLine(0,horizon_middle-horizon_roll_pixels,canvas_width,horizon_middle-horizon_roll_pixels_); |
} |
// g.drawLine(0,horizon_middle-horizon_roll_pixels_,canvas_width,horizon_middle-horizon_roll_pixels); |
horizon_roll_pixels+=(horizon_roll_pixels<0)?1:-1; // go to 0 |
|
//g.drawLine(0,horizon_middle-horizon_roll_pixels,canvas_width,horizon_middle+horizon_roll_pixels); |
//if (horizon_roll_pixels<0) |
// g.drawLine(0,horizon_middle-horizon_roll_pixels_,canvas_width,horizon_middle-horizon_roll_pixels); |
// else |
// g.drawLine(0,horizon_middle+horizon_roll_pixels,canvas_width,horizon_middle+horizon_roll_pixels_); |
|
// horizon_roll_pixels+=(horizon_roll_pixels<0)?1:-1; // go to 0 |
|
} |
|
if (horizon_roll_pixels_>0) |
{ |
g.drawLine(0,horizon_middle+horizon_roll_pixels_,canvas_width,horizon_middle-horizon_roll_pixels); |
g.drawLine(0,horizon_middle+horizon_roll_pixels_,canvas_width,horizon_middle+horizon_roll_pixels); |
g.fillRect(0,horizon_middle+horizon_roll_pixels_,canvas_width,canvas_height-(horizon_middle+horizon_roll_pixels_)); |
} |
else |
{ |
g.drawLine(0,horizon_middle+horizon_roll_pixels,canvas_width,horizon_middle-horizon_roll_pixels_); |
g.drawLine(0,horizon_middle-horizon_roll_pixels,canvas_width,horizon_middle-horizon_roll_pixels_); |
g.fillRect(0,horizon_middle-horizon_roll_pixels_,canvas_width,canvas_height-(horizon_middle-horizon_roll_pixels_)); |
} |
|
*/ |
|
|
g.setColor(0x254d9e); |
|
|
1313,7 → 1346,6 |
g.setColor(skin_fg_color()); |
|
|
|
if (settings.expert_mode) |
{ |
g.drawString("nick => " + mk.AngleNick(),0,y_off,Graphics.TOP | Graphics.LEFT); |
1332,21 → 1364,35 |
else |
g.setColor(0xFFFFFF); |
|
y_off=canvas_height-5; |
|
|
|
g.setFont(font_small); |
if (mk.ufo_prober.is_navi()) |
g.drawString("avg:" + mk.stats.avg_speed() + " max:"+ mk.stats.max_speed,10-c,y_off-c,Graphics.BOTTOM | Graphics.LEFT); |
|
g.drawString(" max:"+ mk.stats.max_alt/10,canvas_width-10-c,y_off-c,Graphics.BOTTOM | Graphics.RIGHT); |
|
y_off-=spacer_small; |
|
g.setFont(font_large); |
|
|
if (mk.ufo_prober.is_navi()) |
g.drawString("" + mk.gps_position.GroundSpeed_str() ,10-c*3,canvas_height-5-c*3,Graphics.BOTTOM | Graphics.LEFT); |
g.drawString("" + mk.gps_position.GroundSpeed_str() ,10-c*3,y_off-c*3,Graphics.BOTTOM | Graphics.LEFT); |
else |
g.drawString("" + mk.stats.flying_time()+"s" ,10-c*3,canvas_height-5-c*3,Graphics.BOTTOM | Graphics.LEFT); |
if (settings.horizon_display_flytime) g.drawString("" + mk.stats.flying_time()+"s" ,10-c*3,y_off-c*3,Graphics.BOTTOM | Graphics.LEFT); |
|
g.drawString( mk.Alt_formated() + "/"+status_voice.last_alt ,canvas_width-10-c*3,canvas_height-5-c*3,Graphics.BOTTOM | Graphics.RIGHT); |
if (settings.horizon_display_altitude) g.drawString( mk.Alt_formated()/* + "/"+status_voice.last_alt*/ ,canvas_width-10-c*3,y_off-c*3,Graphics.BOTTOM | Graphics.RIGHT); |
|
if (mk.ufo_prober.is_navi()) |
y_off-=spacer_large; |
if (mk.ufo_prober.is_navi()&&(settings.horizon_display_flytime)) |
{ |
g.setFont(font_medium); |
g.drawString("" + mk.stats.flying_time()+"s" ,10-c*3,canvas_height-5-spacer_large-c*3,Graphics.BOTTOM | Graphics.LEFT); |
g.drawString("" + mk.stats.flying_time()+"s" ,10-c*2,y_off-c*2,Graphics.BOTTOM | Graphics.LEFT); |
} |
|
} |
|
break; |
1405,6 → 1451,9 |
g.drawString("Used Sats: " + mk.gps_position.SatsInUse + " | Packages: " + mk.stats.navi_data_count ,0,y_off,Graphics.TOP | Graphics.LEFT); |
y_off+=spacer_small; |
|
g.drawString("Err: " + mk.gps_position.ErrorCode + " NC-Flags:" + mk.gps_position.NCFlags + " MK-Flags:" + mk.gps_position.MKFlags ,0,y_off,Graphics.TOP | Graphics.LEFT); |
y_off+=spacer_small; |
|
g.drawString("Lat: " + mk.gps_position.Latitude_str() ,0,y_off,Graphics.TOP | Graphics.LEFT); |
y_off+=spacer_small; |
|
1948,6 → 1997,7 |
|
public void chg_state(byte next_state) |
{ |
if ((next_state!=STATEID_ERROR_MSG)&&(next_state!=STATEID_SETTINGSMENU)) |
settings_editor = null; |
params_editor = null; |
err_img=null; |
2164,26 → 2214,9 |
break; |
|
case STATEID_SETTINGSMENU: |
if (settings_editor==null) |
settings_editor = new MKParamsEditor(this,settings,STATEID_MAINMENU); |
/* |
menu_items=new String[settings_menu_items.length]; |
for(int cnt=0;cnt<settings_menu_items.length;cnt++) |
menu_items[cnt]=settings_menu_items[cnt]; |
|
menu_items[0]+=(settings.act_skin==SKINID_DARK)?"Dark":"Light"; |
menu_items[1]+=(!settings.do_sound)?"Off":"On"; |
menu_items[2]+=(!settings.do_vibra)?"Off":"On"; |
menu_items[3]+=(!settings.do_scrollbg)?"Off":"On"; |
menu_items[4]+=(!settings.fullscreen)?"Off":"On"; |
menu_items[5]+=(mk.gps_position.act_gps_format==0)?" Decimal":" MinSec"; |
menu_items[6]+=(mk.gps_position.act_speed_format==0)?" KM/H":((mk.gps_position.act_speed_format==1)?" MP/H":"CM/S"); |
|
//#if devicecontrol=="on" |
menu_items[7]+=(!settings.keep_lighton)?"Off":"On"; |
//#endif |
menu_items[8]+=(!settings.expert_mode)?" Off":" On"; |
menu_actions=settings_menu_actions; |
lcd_lines=new String[menu_items.length];*/ |
break; |
|
case STATEID_RAWDEBUG: |
2417,6 → 2450,7 |
break; |
|
case ACTIONID_NC_ERRORS: |
mk.error_str=null; |
chg_state(STATEID_ERROR_MSG); |
break; |
|