/DUBwise/trunk/shared/src/UFOProber.java |
---|
File deleted |
/DUBwise/trunk/shared/src/DUBwiseDefinitions.java |
---|
12,6 → 12,7 |
public final static byte USER_INTENT_LCD =5; |
public final static byte USER_INTENT_EXTERNAL_CONTROL =6; |
public final static byte USER_INTENT_GPSOSD =7; |
public final static byte USER_INTENT_FOLLOWME =8; |
public final static byte GPS_FORMAT_DECIMAL =0; |
22,8 → 23,9 |
public final static byte SPEED_FORMAT_MPH =1; // miles/h |
public final static byte SPEED_FORMAT_CMS =2; // cm/s |
public final static byte BOOTLOADER_STAGE_NONE=0; |
public final static byte BOOTLOADER_STAGE_GOT_MKBL=1; |
/* from uart.h |
unsigned char Digital[2]; |
unsigned char RemoteTasten; |
/DUBwise/trunk/shared/src/DUBwiseLangDefs.java |
---|
3,193 → 3,205 |
{ |
public final static int STRINGID_LANG0=0; |
public final static int STRINGID_LANG1=1; |
public final static int STRINGID_CONN=2; |
public final static int STRINGID_SETTINGS=3; |
public final static int STRINGID_SELECT_FIRMWARE=4; |
public final static int STRINGID_DEBUG=5; |
public final static int STRINGID_MOTORTEST=6; |
public final static int STRINGID_ABOUT=7; |
public final static int STRINGID_EDIT_SETTINGS=8; |
public final static int STRINGID_COPY_TO_MOBILE=9; |
public final static int STRINGID_LOAD_FROM_MOBILE=10; |
public final static int STRINGID_REINITIALIZE_ALL=11; |
public final static int STRINGID_BACK=12; |
public final static int STRINGID_QUIT=13; |
public final static int STRINGID_REMOTE_CAM=14; |
public final static int STRINGID_FLASH_FIRMWARE=15; |
public final static int STRINGID_SWITCH_NAVI=16; |
public final static int STRINGID_SWITCH_MK3MAG=17; |
public final static int STRINGID_SWITCH_FC=18; |
public final static int STRINGID_VIEW_GPS=19; |
public final static int STRINGID_LCD=20; |
public final static int STRINGID_GRAPH=21; |
public final static int STRINGID_DEBUG_VALUES=22; |
public final static int STRINGID_KEYCONTROL=23; |
public final static int STRINGID_RCDATA=24; |
public final static int STRINGID_FLIGHTSETTINGS=25; |
public final static int STRINGID_HORIZON=26; |
public final static int STRINGID_VIEW_ERRORS=27; |
public final static int STRINGID_USERINTERFACE=28; |
public final static int STRINGID_GPS=29; |
public final static int STRINGID_SPECIALKEYS=30; |
public final static int STRINGID_VOICE=31; |
public final static int STRINGID_OTHER=32; |
public final static int STRINGID_ALTITUDE=33; |
public final static int STRINGID_CAMERA=34; |
public final static int STRINGID_CHANNELS=35; |
public final static int STRINGID_CONFIGURATION=36; |
public final static int STRINGID_GYRO=37; |
public final static int STRINGID_LOOP=38; |
public final static int STRINGID_NAVI=39; |
public final static int STRINGID_OUTPUT=40; |
public final static int STRINGID_STICK=41; |
public final static int STRINGID_USERPARAMS=42; |
public final static int STRINGID_EDIT_CONTENT=43; |
public final static int STRINGID_RENAME=44; |
public final static int STRINGID_SAVE_AS=45; |
public final static int STRINGID_SAVE=46; |
public final static int STRINGID_REREAD=47; |
public final static int STRINGID_PACKET_TRAFFIC=48; |
public final static int STRINGID_VIEW_DATA=49; |
public final static int STRINGID_CONNECT_BT=50; |
public final static int STRINGID_CONNECT_TCP=51; |
public final static int STRINGID_CONNECT_COM=52; |
public final static int STRINGID_SET_PROXY=53; |
public final static int STRINGID_ON=54; |
public final static int STRINGID_OFF=55; |
public final static int STRINGID_DARK=56; |
public final static int STRINGID_LIGHT=57; |
public final static int STRINGID_KMH=58; |
public final static int STRINGID_MPH=59; |
public final static int STRINGID_CMS=60; |
public final static int STRINGID_DECIMAL=61; |
public final static int STRINGID_MINSEC=62; |
public final static int STRINGID_NONE_ASSIGNED=63; |
public final static int STRINGID_LANGUAGE=64; |
public final static int STRINGID_SKIN=65; |
public final static int STRINGID_FULLSCREEN=66; |
public final static int STRINGID_SCROLLBG=67; |
public final static int STRINGID_PERMALIGHT=68; |
public final static int STRINGID_GPSFORMAT=69; |
public final static int STRINGID_SPEEDFORMAT=70; |
public final static int STRINGID_NICK=71; |
public final static int STRINGID_ROLL=72; |
public final static int STRINGID_GIER=73; |
public final static int STRINGID_GASINCREASE=74; |
public final static int STRINGID_HEIGHTINCREASE=75; |
public final static int STRINGID_BACKTOMAINMENU=76; |
public final static int STRINGID_CLEAR=77; |
public final static int STRINGID_LEGEND=78; |
public final static int STRINGID_SCALEGRID=79; |
public final static int STRINGID_VOLTS=80; |
public final static int STRINGID_DELAYINS=81; |
public final static int STRINGID_VOLUME=82; |
public final static int STRINGID_SOUND=83; |
public final static int STRINGID_VIBRA=84; |
public final static int STRINGID_REMOTECAMSTICK=85; |
public final static int STRINGID_ALWAYSRELOADPARAMS=86; |
public final static int STRINGID_EXPERTMODE=87; |
public final static int STRINGID_MINACCELERATE=88; |
public final static int STRINGID_BAROD=89; |
public final static int STRINGID_SETPOINT=90; |
public final static int STRINGID_ALTITUDEP=91; |
public final static int STRINGID_GAIN=92; |
public final static int STRINGID_ZACC=93; |
public final static int STRINGID_SWITCH3=94; |
public final static int STRINGID_SERVOCONTROL=95; |
public final static int STRINGID_NICKCOMP=96; |
public final static int STRINGID_SERVOMIN=97; |
public final static int STRINGID_SERVOMAX=98; |
public final static int STRINGID_REFRESHRATE=99; |
public final static int STRINGID_INVERTDIRECTION=100; |
public final static int STRINGID_ACCELERATE=101; |
public final static int STRINGID_POTI1=102; |
public final static int STRINGID_POTI2=103; |
public final static int STRINGID_POTI3=104; |
public final static int STRINGID_POTI4=105; |
public final static int STRINGID_ALTITUDECONTROL=106; |
public final static int STRINGID_SWITCHFORSETPOINT=107; |
public final static int STRINGID_HEADINGHOLD=108; |
public final static int STRINGID_COMPASACTIVE=109; |
public final static int STRINGID_COMPASFIX=110; |
public final static int STRINGID_COUPLING=111; |
public final static int STRINGID_COUPLING2=112; |
public final static int STRINGID_COUPLINGYAWCORRECT=113; |
public final static int STRINGID_YAWRATELIMITER=114; |
public final static int STRINGID_YAWPOSFEEDBACK=115; |
public final static int STRINGID_YAWNEGFEEDBACK=116; |
public final static int STRINGID_ACCGYROFACTOR=117; |
public final static int STRINGID_PRATE=118; |
public final static int STRINGID_IRATE=119; |
public final static int STRINGID_ACCGYROCOMP=120; |
public final static int STRINGID_DRIFTCOMP=121; |
public final static int STRINGID_DYNAMICSTABILITY=122; |
public final static int STRINGID_GASLIMIT=123; |
public final static int STRINGID_THRESHOLD=124; |
public final static int STRINGID_HYSTERESE=125; |
public final static int STRINGID_TURNOVERNICK=126; |
public final static int STRINGID_TURNOVERROLL=127; |
public final static int STRINGID_UP=128; |
public final static int STRINGID_DOWN=129; |
public final static int STRINGID_LEFT=130; |
public final static int STRINGID_RIGHT=131; |
public final static int STRINGID_MODECONTROL=132; |
public final static int STRINGID_GPSGAIN=133; |
public final static int STRINGID_GPSP=134; |
public final static int STRINGID_GPSPLIMIT=135; |
public final static int STRINGID_GPSI=136; |
public final static int STRINGID_GPSILIMIT=137; |
public final static int STRINGID_GPSD=138; |
public final static int STRINGID_GPSDLIMIT=139; |
public final static int STRINGID_GPSACC=140; |
public final static int STRINGID_DRATE=141; |
public final static int STRINGID_SATMIN=142; |
public final static int STRINGID_STICKTHRESHOLD=143; |
public final static int STRINGID_WINDCORRECT=144; |
public final static int STRINGID_SPEEDCOMP=145; |
public final static int STRINGID_OPERATIONRADIUS=146; |
public final static int STRINGID_ANGLELIMIT=147; |
public final static int STRINGID_MINGAS=148; |
public final static int STRINGID_MAXGAS=149; |
public final static int STRINGID_COMPASEFFECT=150; |
public final static int STRINGID_VOLTAGEWARNING=151; |
public final static int STRINGID_DISTRESSGAS=152; |
public final static int STRINGID_DISTRESSGASTIME=153; |
public final static int STRINGID_J16BITMASK=154; |
public final static int STRINGID_J17BITMASK=155; |
public final static int STRINGID_J16TIMING=156; |
public final static int STRINGID_J17TIMING=157; |
public final static int STRINGID_NICKROLLP=158; |
public final static int STRINGID_NICKROLLD=159; |
public final static int STRINGID_GIERP=160; |
public final static int STRINGID_EXTERNCONTROL=161; |
public final static int STRINGID_PARAM1=162; |
public final static int STRINGID_PARAM2=163; |
public final static int STRINGID_PARAM3=164; |
public final static int STRINGID_PARAM4=165; |
public final static int STRINGID_PARAM5=166; |
public final static int STRINGID_PARAM6=167; |
public final static int STRINGID_PARAM7=168; |
public final static int STRINGID_PARAM8=169; |
public final static int STRINGID_NOTREADYET=170; |
public final static int STRINGID_PHLOGINTIME=171; |
public final static int STRINGID_PARAMSINCOMPATIBLE=172; |
public final static int STRINGID_NOPARAMSONMOBILE=173; |
public final static int STRINGID_PARAMWRITEOK=174; |
public final static int STRINGID_SAVEDSETTINGS=175; |
public final static int STRINGID_SETTINGSUNDOOK=176; |
public final static int STRINGID_INCOMPATIBLEDEVICE=177; |
public final static int STRINGID_PARAMRESETOK=178; |
public final static int STRINGID_WRITINGPARAMS=179; |
public final static int STRINGID_GRAPHINTERVAL=180; |
public final static int STRINGID_ALTIMETER=181; |
public final static int STRINGID_COCKPIT=182; |
public final static int STRINGID_INVERTNICK=183; |
public final static int STRINGID_INVERTROLL=184; |
public final static int STRINGID_SHOWFLIGHTTIME=185; |
public final static int STRINGID_SHOWALTITUDE=186; |
public final static int STRINGID_UNITS=187; |
public final static int STRINGID_DEVMODE=188; |
public final static int STRINGID_DISCONNECT=189; |
public final static int STRING_COUNT=190; |
public final static int STRINGID_LANG2=2; |
public final static int STRINGID_CONN=3; |
public final static int STRINGID_SETTINGS=4; |
public final static int STRINGID_SELECT_FIRMWARE=5; |
public final static int STRINGID_DEBUG=6; |
public final static int STRINGID_MOTORTEST=7; |
public final static int STRINGID_ABOUT=8; |
public final static int STRINGID_EDIT_SETTINGS=9; |
public final static int STRINGID_COPY_TO_MOBILE=10; |
public final static int STRINGID_LOAD_FROM_MOBILE=11; |
public final static int STRINGID_REINITIALIZE_ALL=12; |
public final static int STRINGID_BACK=13; |
public final static int STRINGID_QUIT=14; |
public final static int STRINGID_REMOTE_CAM=15; |
public final static int STRINGID_FLASH_FIRMWARE=16; |
public final static int STRINGID_SWITCH_NAVI=17; |
public final static int STRINGID_SWITCH_MK3MAG=18; |
public final static int STRINGID_SWITCH_FC=19; |
public final static int STRINGID_VIEW_GPS=20; |
public final static int STRINGID_LCD=21; |
public final static int STRINGID_GRAPH=22; |
public final static int STRINGID_DEBUG_VALUES=23; |
public final static int STRINGID_KEYCONTROL=24; |
public final static int STRINGID_RCDATA=25; |
public final static int STRINGID_FLIGHTSETTINGS=26; |
public final static int STRINGID_HORIZON=27; |
public final static int STRINGID_VIEW_ERRORS=28; |
public final static int STRINGID_USERINTERFACE=29; |
public final static int STRINGID_GPS=30; |
public final static int STRINGID_SPECIALKEYS=31; |
public final static int STRINGID_VOICE=32; |
public final static int STRINGID_OTHER=33; |
public final static int STRINGID_ALTITUDE=34; |
public final static int STRINGID_CAMERA=35; |
public final static int STRINGID_CHANNELS=36; |
public final static int STRINGID_CONFIGURATION=37; |
public final static int STRINGID_GYRO=38; |
public final static int STRINGID_LOOP=39; |
public final static int STRINGID_NAVI=40; |
public final static int STRINGID_OUTPUT=41; |
public final static int STRINGID_STICK=42; |
public final static int STRINGID_USERPARAMS=43; |
public final static int STRINGID_EDIT_CONTENT=44; |
public final static int STRINGID_RENAME=45; |
public final static int STRINGID_SAVE_AS=46; |
public final static int STRINGID_SAVE=47; |
public final static int STRINGID_REREAD=48; |
public final static int STRINGID_PACKET_TRAFFIC=49; |
public final static int STRINGID_VIEW_DATA=50; |
public final static int STRINGID_CONNECT_BT=51; |
public final static int STRINGID_CONNECT_TCP=52; |
public final static int STRINGID_CONNECT_COM=53; |
public final static int STRINGID_SET_PROXY=54; |
public final static int STRINGID_ON=55; |
public final static int STRINGID_OFF=56; |
public final static int STRINGID_DARK=57; |
public final static int STRINGID_LIGHT=58; |
public final static int STRINGID_KMH=59; |
public final static int STRINGID_MPH=60; |
public final static int STRINGID_CMS=61; |
public final static int STRINGID_DECIMAL=62; |
public final static int STRINGID_MINSEC=63; |
public final static int STRINGID_NONE_ASSIGNED=64; |
public final static int STRINGID_LANGUAGE=65; |
public final static int STRINGID_SKIN=66; |
public final static int STRINGID_FULLSCREEN=67; |
public final static int STRINGID_SCROLLBG=68; |
public final static int STRINGID_PERMALIGHT=69; |
public final static int STRINGID_GPSFORMAT=70; |
public final static int STRINGID_SPEEDFORMAT=71; |
public final static int STRINGID_NICK=72; |
public final static int STRINGID_ROLL=73; |
public final static int STRINGID_GIER=74; |
public final static int STRINGID_GASINCREASE=75; |
public final static int STRINGID_HEIGHTINCREASE=76; |
public final static int STRINGID_BACKTOMAINMENU=77; |
public final static int STRINGID_CLEAR=78; |
public final static int STRINGID_LEGEND=79; |
public final static int STRINGID_SCALEGRID=80; |
public final static int STRINGID_VOLTS=81; |
public final static int STRINGID_DELAYINS=82; |
public final static int STRINGID_VOLUME=83; |
public final static int STRINGID_SOUND=84; |
public final static int STRINGID_VIBRA=85; |
public final static int STRINGID_REMOTECAMSTICK=86; |
public final static int STRINGID_ALWAYSRELOADPARAMS=87; |
public final static int STRINGID_EXPERTMODE=88; |
public final static int STRINGID_MINACCELERATE=89; |
public final static int STRINGID_BAROD=90; |
public final static int STRINGID_SETPOINT=91; |
public final static int STRINGID_ALTITUDEP=92; |
public final static int STRINGID_GAIN=93; |
public final static int STRINGID_ZACC=94; |
public final static int STRINGID_SWITCH3=95; |
public final static int STRINGID_SERVOCONTROL=96; |
public final static int STRINGID_NICKCOMP=97; |
public final static int STRINGID_SERVOMIN=98; |
public final static int STRINGID_SERVOMAX=99; |
public final static int STRINGID_REFRESHRATE=100; |
public final static int STRINGID_INVERTDIRECTION=101; |
public final static int STRINGID_ACCELERATE=102; |
public final static int STRINGID_POTI1=103; |
public final static int STRINGID_POTI2=104; |
public final static int STRINGID_POTI3=105; |
public final static int STRINGID_POTI4=106; |
public final static int STRINGID_ALTITUDECONTROL=107; |
public final static int STRINGID_SWITCHFORSETPOINT=108; |
public final static int STRINGID_HEADINGHOLD=109; |
public final static int STRINGID_COMPASACTIVE=110; |
public final static int STRINGID_COMPASFIX=111; |
public final static int STRINGID_COUPLING=112; |
public final static int STRINGID_COUPLING2=113; |
public final static int STRINGID_COUPLINGYAWCORRECT=114; |
public final static int STRINGID_YAWRATELIMITER=115; |
public final static int STRINGID_YAWPOSFEEDBACK=116; |
public final static int STRINGID_YAWNEGFEEDBACK=117; |
public final static int STRINGID_ACCGYROFACTOR=118; |
public final static int STRINGID_PRATE=119; |
public final static int STRINGID_IRATE=120; |
public final static int STRINGID_ACCGYROCOMP=121; |
public final static int STRINGID_DRIFTCOMP=122; |
public final static int STRINGID_DYNAMICSTABILITY=123; |
public final static int STRINGID_GASLIMIT=124; |
public final static int STRINGID_THRESHOLD=125; |
public final static int STRINGID_HYSTERESE=126; |
public final static int STRINGID_TURNOVERNICK=127; |
public final static int STRINGID_TURNOVERROLL=128; |
public final static int STRINGID_UP=129; |
public final static int STRINGID_DOWN=130; |
public final static int STRINGID_LEFT=131; |
public final static int STRINGID_RIGHT=132; |
public final static int STRINGID_MODECONTROL=133; |
public final static int STRINGID_GPSGAIN=134; |
public final static int STRINGID_GPSP=135; |
public final static int STRINGID_GPSPLIMIT=136; |
public final static int STRINGID_GPSI=137; |
public final static int STRINGID_GPSILIMIT=138; |
public final static int STRINGID_GPSD=139; |
public final static int STRINGID_GPSDLIMIT=140; |
public final static int STRINGID_GPSACC=141; |
public final static int STRINGID_DRATE=142; |
public final static int STRINGID_SATMIN=143; |
public final static int STRINGID_STICKTHRESHOLD=144; |
public final static int STRINGID_WINDCORRECT=145; |
public final static int STRINGID_SPEEDCOMP=146; |
public final static int STRINGID_OPERATIONRADIUS=147; |
public final static int STRINGID_ANGLELIMIT=148; |
public final static int STRINGID_MINGAS=149; |
public final static int STRINGID_MAXGAS=150; |
public final static int STRINGID_COMPASEFFECT=151; |
public final static int STRINGID_VOLTAGEWARNING=152; |
public final static int STRINGID_DISTRESSGAS=153; |
public final static int STRINGID_DISTRESSGASTIME=154; |
public final static int STRINGID_J16BITMASK=155; |
public final static int STRINGID_J17BITMASK=156; |
public final static int STRINGID_J16TIMING=157; |
public final static int STRINGID_J17TIMING=158; |
public final static int STRINGID_NICKROLLP=159; |
public final static int STRINGID_NICKROLLD=160; |
public final static int STRINGID_GIERP=161; |
public final static int STRINGID_EXTERNCONTROL=162; |
public final static int STRINGID_PARAM1=163; |
public final static int STRINGID_PARAM2=164; |
public final static int STRINGID_PARAM3=165; |
public final static int STRINGID_PARAM4=166; |
public final static int STRINGID_PARAM5=167; |
public final static int STRINGID_PARAM6=168; |
public final static int STRINGID_PARAM7=169; |
public final static int STRINGID_PARAM8=170; |
public final static int STRINGID_NOTREADYET=171; |
public final static int STRINGID_PHLOGINTIME=172; |
public final static int STRINGID_PARAMSINCOMPATIBLE=173; |
public final static int STRINGID_NOPARAMSONMOBILE=174; |
public final static int STRINGID_PARAMWRITEOK=175; |
public final static int STRINGID_SAVEDSETTINGS=176; |
public final static int STRINGID_SETTINGSUNDOOK=177; |
public final static int STRINGID_INCOMPATIBLEDEVICE=178; |
public final static int STRINGID_PARAMRESETOK=179; |
public final static int STRINGID_WRITINGPARAMS=180; |
public final static int STRINGID_GRAPHINTERVAL=181; |
public final static int STRINGID_ALTIMETER=182; |
public final static int STRINGID_COCKPIT=183; |
public final static int STRINGID_INVERTNICK=184; |
public final static int STRINGID_INVERTROLL=185; |
public final static int STRINGID_SHOWFLIGHTTIME=186; |
public final static int STRINGID_SHOWALTITUDE=187; |
public final static int STRINGID_UNITS=188; |
public final static int STRINGID_DEVMODE=189; |
public final static int STRINGID_DISCONNECT=190; |
public final static int STRINGID_INSTANTERRORSHOW=191; |
public final static int STRINGID_FORCERECONNECT=192; |
public final static int STRINGID_EDIT=193; |
public final static int STRINGID_ALTSTEPS=194; |
public final static int STRINGID_LOADPLAIN=195; |
public final static int STRINGID_LOADFANCY=196; |
public final static int STRINGID_TIMING=197; |
public final static int STRINGID_PRIMARYABO=198; |
public final static int STRINGID_SECONDARYABO=199; |
public final static int STRINGID_DEFAULTABO=200; |
public final static int STRINGID_BIGFONTS=201; |
public final static int STRING_COUNT=202; |
} |
/DUBwise/trunk/shared/src/MKCommunicator.java |
---|
29,19 → 29,29 |
public class MKCommunicator |
implements Runnable,DUBwiseDefinitions |
{ |
public byte slave_addr=-1; |
public int primary_abo; |
public int secondary_abo; |
public int default_abo; |
public int angle_nick=-4242; |
public int angle_roll=-4242; |
public byte bl_retrys=0; |
public boolean init_bootloader=false; |
public boolean disconnect_notify=false; |
public byte lib_version_major=0; |
public byte lib_version_minor=7; |
public byte lib_version_minor=9; |
public byte last_navi_error=0; |
public boolean mixer_change_notify=false; |
public boolean mixer_change_success=false; |
public boolean change_notify=false; |
public boolean thread_running=true; |
public String lib_version_str() |
{ |
return "V"+lib_version_major+"."+lib_version_minor; |
50,9 → 60,9 |
public int AngleNick() |
{ |
if (ufo_prober.is_mk()) |
if (is_mk()) |
return angle_nick; |
else if (ufo_prober.is_navi()) |
else if (is_navi()) |
return debug_data.analog[0]; |
return -1; |
62,10 → 72,10 |
public int Alt() // in dm |
{ |
int alt=0; |
if (ufo_prober.is_mk()) |
if (is_mk()) |
alt=debug_data.analog[5]/3; |
else |
if (ufo_prober.is_navi()) |
if (is_navi()) |
alt=gps_position.Altimeter/3; |
if ( alt<0) alt=0; // mk |
if ( alt>20000) alt=0; // navi |
80,9 → 90,10 |
} |
public int AngleRoll() |
{ |
if (ufo_prober.is_mk()) |
if (is_mk()) |
return angle_roll; |
else if (ufo_prober.is_navi()) |
else |
if (is_navi()) |
return debug_data.analog[1]; |
return -1; |
110,40 → 121,6 |
// public final static int DATA_IN_BUFF_SIZE=4096; |
public byte user_intent=0; |
public final static int[] crc16_table = { |
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, |
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, |
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, |
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, |
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, |
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, |
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, |
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, |
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, |
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, |
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, |
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, |
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, |
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, |
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, |
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, |
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, |
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, |
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, |
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, |
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, |
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, |
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, |
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, |
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, |
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, |
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, |
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, |
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, |
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, |
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, |
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 |
}; |
public void log(String str) |
{ |
154,12 → 131,6 |
// System.out.println(str); |
} |
public int CRC16(int ch, int crc) |
{ |
return crc16_table[((crc >> 8) ^ (ch)) & 0xFF] ^ (crc << 8); |
} |
public int conn_time_in_s() |
{ |
if (connected) |
167,11 → 138,10 |
else |
return 0; |
} |
public final static byte BOOTLOADER_STAGE_NONE=0; |
public final static byte BOOTLOADER_STAGE_GOT_MKBL=1; |
byte bootloader_stage= BOOTLOADER_STAGE_NONE; |
// byte bootloader_stage= BOOTLOADER_STAGE_NONE; |
public MKLCD LCD; |
public MKVersion version; |
public MKDebugData debug_data; |
187,7 → 157,7 |
public MKStatistics stats ; |
// public DUBwiseDebug debug; |
public UFOProber ufo_prober; |
// public UFOProber ufo_prober; |
public long connection_start_time=-1; |
194,13 → 164,84 |
public String error_str = null; |
public final static int FC_SLAVE_ADDR = 'a'+1; |
public final static int NAVI_SLAVE_ADDR = 'a'+2; |
public final static int MK3MAG_SLAVE_ADDR = 'a'+3; |
public final static byte FC_SLAVE_ADDR = 1; |
public final static byte NAVI_SLAVE_ADDR = 2; |
public final static byte MK3MAG_SLAVE_ADDR = 3; |
public final static byte FOLLOWME_SLAVE_ADDR = 10; |
public final static byte RE_SLAVE_ADDR = 23; |
public boolean is_navi() |
{ |
return (slave_addr==NAVI_SLAVE_ADDR); |
} |
public boolean is_mk() |
{ |
return (slave_addr==FC_SLAVE_ADDR); |
} |
public boolean is_mk3mag() |
{ |
return (slave_addr==MK3MAG_SLAVE_ADDR); |
} |
public boolean is_rangeextender() |
{ |
return (slave_addr==RE_SLAVE_ADDR); |
} |
public boolean is_followme() |
{ |
return (slave_addr==FOLLOWME_SLAVE_ADDR); |
} |
public boolean is_incompatible() |
{ |
switch (slave_addr) |
{ |
case FC_SLAVE_ADDR: |
case NAVI_SLAVE_ADDR: |
case MK3MAG_SLAVE_ADDR: |
case FOLLOWME_SLAVE_ADDR: |
case RE_SLAVE_ADDR: |
return false; |
default: |
return true; |
} |
} |
public String extended_name() |
{ |
switch (slave_addr) |
{ |
case -1: |
return "No Device"; |
case FC_SLAVE_ADDR: |
return "MK-Connection"; |
case NAVI_SLAVE_ADDR: |
return "Navi-Connection"; |
case MK3MAG_SLAVE_ADDR: |
return "MK3MAG-Connection"; |
case FOLLOWME_SLAVE_ADDR: |
return "FollowMe Connection"; |
case RE_SLAVE_ADDR: |
return "RangeExtender Connection"; |
default: |
return "Incompatible Device"; |
} |
} |
/****************** Section: private Attributes **********************************************/ |
//#ifdef j2me |
//# private javax.microedition.io.StreamConnection connection; |
248,7 → 289,7 |
gps_position=new MKGPSPosition(); |
stats = new MKStatistics(); |
proxy =new MKProxy(this); |
ufo_prober=new UFOProber(); |
// ufo_prober=new UFOProber(); |
new Thread( this ).start(); // fire up main Thread |
} |
381,6 → 422,8 |
} |
public void wait4send() |
{ |
while(sending) //||recieving) |
420,7 → 463,52 |
send_command(FC_SLAVE_ADDR,'t',params); |
} |
public void set_mixer_table(int[] params) |
{ |
send_command(FC_SLAVE_ADDR,'m',params); |
} |
public long lon; |
public long lat; |
public void send_follow_me(int time) |
{ |
long alt=0; |
int[] params=new int[29]; |
params[0]=(int)((lon)&0xFF) ; |
params[1]=(int)((lon>>8)&0xFF) ; |
params[2]=(int)((lon>>16)&0xFF) ; |
params[3]=(int)((lon>>24)&0xFF) ; |
params[4]=(int)((lat)&0xFF) ; |
params[5]=(int)((lat>>8)&0xFF) ; |
params[6]=(int)((lat>>16)&0xFF) ; |
params[7]=(int)((lat>>24)&0xFF) ; |
params[8]=(int)((alt)&0xFF ); |
params[9]=(int)((alt>>8)&0xFF ); |
params[10]=(int)((alt>>16)&0xFF); |
params[11]=(int)((alt>>24)&0xFF ); |
params[12]=2; // newdata |
params[13]=0; // heading |
params[14]=0; // heading |
params[15]=1; // tolerance |
params[16]=time; // time |
params[17]=0; // event |
send_command(NAVI_SLAVE_ADDR,'s',params); |
} |
public void send_extern_control() |
{ |
506,22 → 594,23 |
} |
public String[] flash_msgs; |
int msg_pos=0; |
public boolean bootloader_intension_flash=false; |
// public boolean bootloader_intension_flash=false; |
public boolean bootloader_finish_ok=false; |
// public boolean bootloader_finish_ok=false; |
public void jump_bootloader() |
{ |
// public void jump_bootloader() |
// { |
/* |
bootloader_finish_ok=false; |
msg_pos=0; |
bootloader_stage= BOOTLOADER_STAGE_NONE; |
flash_msgs=new String[100]; |
flash_msgs[msg_pos++]="Initiializing Bootloader"; |
// flash_msgs=new String[100]; |
// flash_msgs[msg_pos++]="Initiializing Bootloader"; |
wait4send(); |
sending=true; |
556,7 → 645,8 |
} |
new Thread( this ).start(); // fire up main Thread |
} |
*/ |
// } |
public void get_error_str() |
615,7 → 705,7 |
byte[] send_buff=new byte[3 + (params.length/3 + (params.length%3==0?0:1) )*4]; // 5=1*start_char+1*addr+1*cmd+2*crc |
send_buff[0]='#'; |
send_buff[1]=modul; |
send_buff[1]=(byte)(modul+'a'); |
send_buff[2]=(byte)cmd; |
for(int param_pos=0;param_pos<(params.length/3 + (params.length%3==0?0:1)) ;param_pos++) |
670,31 → 760,63 |
} |
public int slave_addr=-1; |
public int UBatt() |
{ |
if (ufo_prober.is_mk()) |
return debug_data.UBatt(); |
else if (ufo_prober.is_navi()) |
return gps_position.UBatt; |
return -1; |
switch (slave_addr) |
{ |
case FC_SLAVE_ADDR: |
return debug_data.analog[8]; |
case NAVI_SLAVE_ADDR: |
return gps_position.UBatt; |
case FOLLOWME_SLAVE_ADDR: |
return debug_data.analog[8]; |
default: |
return -1; // No Info |
} |
} |
public int SatsInUse() |
{ |
switch (slave_addr) |
{ |
case NAVI_SLAVE_ADDR: |
return gps_position.SatsInUse; |
case FOLLOWME_SLAVE_ADDR: |
return debug_data.analog[12]; |
default: |
return -1; // No Info |
} |
} |
public int SenderOkay() |
{ |
if (ufo_prober.is_mk()) |
return debug_data.SenderOkay(); |
else if (ufo_prober.is_navi()) |
return gps_position.SenderOkay; |
return -1; |
switch (slave_addr) |
{ |
case FC_SLAVE_ADDR: |
return debug_data.analog[10]; |
case NAVI_SLAVE_ADDR: |
return gps_position.SenderOkay; |
default: |
return -1; // No Info |
} |
} |
738,14 → 860,34 |
public void process_data(byte[] data,int len) |
{ |
slave_addr=data[1]; |
// check crc |
int tmp_crc=0; |
for ( int i=0 ; i<len-2 ; i++) |
tmp_crc+=(int)data[i]; |
tmp_crc%=4096; |
if (!((data[len-2]==(char)(tmp_crc/64 + '=')) |
&& |
(data[len-1]==(char)(tmp_crc%64 + '=')))) |
{ |
stats.crc_fail++; |
return; |
} |
// end of c |
// slave_addr=data[1]; |
log("command " +(char)data[2] ); |
int[] decoded_data=Decode64(data,3,len-5); |
switch((char)data[2]) |
{ |
case 'A': // debug Data Names |
stats.debug_names_count++; |
debug_data.set_names_by_mk_data(Decode64(data,3,len-3)); |
debug_data.set_names_by_mk_data(decoded_data); |
break; |
case 'B': // external_control confirm frames |
754,7 → 896,7 |
case 'L': // LCD Data |
stats.lcd_data_count++; |
LCD.handle_lcd_data(Decode64(data,3,len-3)); |
LCD.handle_lcd_data(decoded_data); |
break; |
761,9 → 903,9 |
case 'D': // debug Data |
log("got debug data"); |
stats.debug_data_count++; |
debug_data.set_by_mk_data(Decode64(data,3,len-3),version); |
debug_data.set_by_mk_data(decoded_data,version); |
if (ufo_prober.is_mk()) |
if (is_mk()) |
{ |
stats.process_mkflags(debug_data.motor_val(0)); // TODO remove dirty hack |
stats.process_alt(Alt()); |
783,8 → 925,13 |
case 'V': // Version Info |
stats.version_data_count++; |
slave_addr=data[1]; |
if (slave_addr!=data[1]-'a') |
{ |
slave_addr=(byte)(data[1]-'a'); |
change_notify=true; |
} |
/* |
switch(slave_addr) |
{ |
case FC_SLAVE_ADDR: |
796,70 → 943,69 |
break; |
case MK3MAG_SLAVE_ADDR: |
// ufo_prober.set_to_mk(); |
ufo_prober.set_to_mk3mag(); |
break; |
case RE_SLAVE_ADDR: |
ufo_prober.set_to_rangeextender(); |
break; |
default: |
ufo_prober.set_to_incompatible(); |
break; |
} |
*/ |
version.set_by_mk_data(Decode64(data,3,len-3)); |
version.set_by_mk_data(decoded_data); |
break; |
case 'w': |
int[] dec=Decode64(data,3,len-3); |
angle_nick=MKHelper.parse_signed_int_2(dec[0],dec[1]); |
angle_roll=MKHelper.parse_signed_int_2(dec[2],dec[3]); |
angle_nick=MKHelper.parse_signed_int_2(decoded_data[0],decoded_data[1]); |
angle_roll=MKHelper.parse_signed_int_2(decoded_data[2],decoded_data[3]); |
stats.angle_data_count++; |
break; |
case 'Q': |
if (ufo_prober.is_mk()) |
if (is_mk()) |
{ |
stats.params_data_count++; |
params.set_by_mk_data(Decode64(data,3,len-3)); |
params.set_by_mk_data(decoded_data); |
} |
break; |
case 'M': |
mixer_change_notify=true; |
mixer_change_success=(decoded_data[0]==1); |
break; |
case 'P': |
stats.stick_data_count++; |
stick_data.set_by_mk_data(Decode64(data,3,20)); |
stick_data.set_by_mk_data(decoded_data); |
break; |
case 'E': |
int[] dec_data=Decode64(data,3,len-3); |
case 'E': // Error Str from Navi |
error_str=""; |
for(int foo=0;foo<20;foo++) |
if (dec_data[foo]!=0) |
error_str+=(char)dec_data[foo]; |
if (decoded_data[foo]!=0) |
error_str+=(char)decoded_data[foo]; |
break; |
case 'O': |
case 'O': // OSD Values Str from Navi |
stats.navi_data_count++; |
log("got navi data(" + len +"):"); |
gps_position.set_by_mk_data(Decode64(data,3,len-3),version); |
gps_position.set_by_mk_data(decoded_data,version); |
stats.process_mkflags(gps_position.MKFlags); |
stats.process_compas(gps_position.CompasHeading); |
stats.process_speed(gps_position.GroundSpeed); |
stats.process_alt(Alt()); |
log("long:" + gps_position.Longitude); |
log("lat:" + gps_position.Latitude); |
break; |
// Error from Navi |
default: |
stats.other_data_count++; |
break; |
876,7 → 1022,7 |
{ |
// if ((!force)&&root.canvas.do_vibra) root.vibrate(500); |
force_disconnect=force; |
force_disconnect|=force; |
try{ reader.close(); } |
catch (Exception inner_ex) { } |
887,75 → 1033,30 |
//# try{ connection.close(); } |
//# catch (Exception inner_ex) { } |
//#endif |
ufo_prober.set_to_none(); |
slave_addr=-1; |
// ufo_prober.set_to_none(); |
stats.reset(); |
connected=false; |
version.reset(); |
// if (bootloader_stage==BOOTLOADER_STAGE_NONE) |
disconnect_notify=true; |
} |
int last_avr_sig=-1; |
// Thread to recieve data from Connection |
public void run() |
{ |
boolean sigfail=false; |
if (bootloader_stage==BOOTLOADER_STAGE_GOT_MKBL) |
// boolean sigfail=false; |
/* if (bootloader_stage==BOOTLOADER_STAGE_GOT_MKBL) |
{ |
try { |
flash_msgs[msg_pos++]="reading avr_sig"; |
writer.write( 't'); |
writer.flush(); |
int avr_sig=reader.read(); |
//while (avr_sig==63) |
// avr_sig=reader.read(); |
flash_msgs[msg_pos++]="got avr sig " + avr_sig; |
int avrsig_suff=reader.read(); |
if (avrsig_suff!=0) |
throw new Exception("val after avrsig is" +avrsig_suff +"should b 0"); |
if ((avr_sig!=0x74)&&(avr_sig!=224)&&(avr_sig!=120)) |
{ |
sigfail=true; |
throw new Exception("avr sig" + avr_sig + " unknown"); |
} |
writer.write('T'); |
// writer.flush(); |
writer.write(avr_sig); // set devicetyp = 0x74 oder 0x76 |
writer.flush(); |
if (reader.read()!=0x0d) |
throw new Exception("cant get buffer size"); |
writer.write('V'); |
writer.flush(); |
int bl_version_major=reader.read(); |
int bl_version_minor=reader.read(); |
flash_msgs[msg_pos++]="BL Version " + bl_version_major+"."+bl_version_minor; |
writer.write('b'); |
writer.flush(); |
if (reader.read()!='Y') |
throw new Exception("cant get buffer size"); |
int send_buff_size1=reader.read(); |
int send_buff_size2=reader.read(); |
int send_buff_size=send_buff_size1*0x100+send_buff_size2; |
flash_msgs[msg_pos++]="BUFF Size:" + send_buff_size; |
// if (send_buff_size>128) |
// send_buff_size=128; |
// if (!bootloader_intension |
if (bootloader_intension_flash) |
if (bootloader_intension_flash) |
{ |
byte[] flash_buff =new byte[send_buff_size]; ///!! |
977,13 → 1078,10 |
} |
catch (Exception e) { throw new Exception(" .. cant read size"); } |
int blocks2write=((firmware_size/send_buff_size)); |
flash_msgs[msg_pos++]=".. open("+blocks2write+" blocks," + firmware_size + "bytes)"; |
// if (true) throw new Exception("before erasing"); |
// if (true) throw new Exception("before erasing" ); |
1052,6 → 1150,9 |
// sleep(1000); |
} |
*/ |
// flash_msgs[msg_pos]="bl:" + block + "/" + blocks2write + " si:"+hex_bytes_read ; |
/* |
1119,6 → 1220,10 |
} |
*/ |
/** |
flash_msgs[++msg_pos]="written last block "; |
msg_pos++; |
flash_buff=null; |
1186,30 → 1291,24 |
sending=false; |
} |
**/ |
byte[] data_set=new byte[1024]; |
int data_set_pos=0; |
byte[] data_in_buff=new byte[DATA_IN_BUFF_SIZE]; |
int input; |
int pos=0; |
log("Thread started"); |
while(true) |
while(thread_running) |
{ |
if (!connected) |
{ |
sleep(10); |
if (!force_disconnect) connect(); |
sleep(100); |
} |
else |
try{ |
1275,18 → 1374,20 |
} |
else |
{ |
// { |
data_set[data_set_pos++]=data_in_buff[pos]; |
/* |
if ( (data_set_pos>4) && (data_set[data_set_pos-4]==(byte)'M') && (data_set[data_set_pos-3]==(byte)'K') && (data_set[data_set_pos-2]==(byte)'B') && (data_set[data_set_pos-1]==(byte)'L')) |
{ |
bootloader_stage= BOOTLOADER_STAGE_GOT_MKBL; |
return; |
} |
} |
}*/ |
} |
/DUBwise/trunk/shared/src/MKDebugData.java |
---|
16,22 → 16,22 |
public int[] analog; |
public String[] names; |
public boolean[] got_name; |
public int motor_complete=-1; |
// public int motor_complete=-1; |
private int i; |
public int motor_val(int id) { return analog[12+id]; } |
public int nick_int() { return analog[0]; } |
/* public int nick_int() { return analog[0]; } |
public int roll_int() { return analog[1]; } |
public int accnick() { return analog[2]; } |
public int accroll() { return analog[3]; } |
*/ |
// public int UBatt() { return analog[9]; } |
// public int SenderOkay() { return analog[10]; } |
public int UBatt() { return analog[9]; } |
public int SenderOkay() { return analog[10]; } |
public MKDebugData() |
66,14 → 66,9 |
{ |
for (i=0;i<32;i++) |
// { |
analog[i]=MKHelper.parse_signed_int_2( in_arr[2+i*2], in_arr[3+i*2] ); |
//(int)((in_arr[3+i*2]<<8) | in_arr[2+i*2]); |
// if ((analog[i]&(1<<15))!=0) |
//analog[i]=-(analog[i]&(0xFFFF-1))^(0xFFFF-1); |
// } |
analog[i]=MKHelper.parse_signed_int_2( in_arr[2+i*2], in_arr[3+i*2] ); |
motor_complete=motor_val(0)+motor_val(1)+motor_val(2)+motor_val(3); |
// motor_complete=motor_val(0)+motor_val(1)+motor_val(2)+motor_val(3); |
} |
/DUBwise/trunk/shared/src/MKFirmwareFlasher.java |
---|
0,0 → 1,498 |
/******************************************* |
* |
* Handling of MK LCD |
* |
* Author: Marcus -LiGi- Bueschleb |
* see README for further Infos |
* |
* |
*******************************************/ |
package org.ligi.ufo; |
import java.io.*; |
//#ifdef j2me |
//# import javax.microedition.io.*; |
//#endif |
public class MKFirmwareFlasher |
implements Runnable |
{ |
public String[] flash_msgs; |
public int msg_pos=0; |
public int bootloader_init_attempt; |
private InputStream reader; |
private OutputStream writer; |
private StreamConnection connection; |
private byte[] bl_magic={(byte)'M',(byte)'K',(byte)'B',(byte)'L'}; |
private byte bl_magic_pos=0; |
private boolean got_bl_magic=false; |
private int attempt=0; |
byte intension=0; |
public boolean success=false; |
public boolean job_done=false; |
public boolean started=false; |
public MKFirmwareFlasher(String _url,byte _intension) |
{ |
intension=_intension; |
url=_url; |
flash_msgs=new String[100]; |
log("loading BL Handler"); |
} |
public void start() |
{ |
started=true; |
connect(); |
new Thread( this ).start(); // fire up main Thread |
} |
public void sleep(int time) |
{ |
try { Thread.sleep(time); } |
catch (Exception e) { } |
} |
private void log(String msg) |
{ |
flash_msgs[msg_pos++]=msg; |
} |
private void log_(String msg) |
{ |
flash_msgs[msg_pos]=msg; |
} |
String url; |
boolean sigfail; |
// int last_avr_sig; |
public int avr_sig=0; |
public void connect() |
{ |
try { |
connection = (StreamConnection) Connector.open(url); |
reader=connection.openInputStream(); |
writer=connection.openOutputStream(); |
} |
catch (Exception e) {} |
} |
public void close_connections() |
{ |
try { |
int foo,leech_cnt=0; |
while (( reader.available() != 0)&&(leech_cnt<1000)) |
{ |
leech_cnt++; |
foo=reader.read(); |
} |
} |
catch (Exception e) {} |
// if ((!force)&&root.canvas.do_vibra) root.vibrate(500); |
try{ reader.close(); } |
catch (Exception inner_ex) { } |
try{ writer.close(); } |
catch (Exception inner_ex) { } |
//#ifdef j2me |
//# try{ connection.close(); } |
//# catch (Exception inner_ex) { } |
//#endif |
} |
public InputStream in; |
public void run() |
{ |
boolean init_sequence=true; |
int send_buff_size=0; |
int gbl=0; |
log_("attempt:"+attempt); |
while (!got_bl_magic) |
{ |
attempt++; |
try{ |
if (init_sequence) |
{ |
// if (attempt!=0) |
// sleep((attempt%2==0)?80:800); //800 |
msg_pos=0; |
flash_msgs[msg_pos++]=("at:"+attempt+" gbl:"+gbl); |
flash_msgs[msg_pos]=null; |
if ((attempt%2)==0) // after work |
{ |
writer.write('#'); |
writer.write(0); |
writer.write('R'); |
// CRC |
writer.write((char)( (((byte)'#' +0 + (byte)'R')%4096)/64 + '=')); |
writer.write((char)( (((byte)'#' +0 + (byte)'R')%4096)%64 + '=')); |
writer.write('\r'); |
writer.flush(); |
//sleep(20); |
} |
writer.write( 27); |
writer.flush(); |
sleep(20); |
writer.write( 0xAA); |
writer.flush(); |
sleep(180); |
} |
// else |
// sleep(20); |
init_sequence=true; |
// sleep(20); |
while ( reader.available() > 0 ) |
{ |
if ((byte)reader.read()==bl_magic[bl_magic_pos]) |
{ |
bl_magic_pos++; |
if (bl_magic_pos==bl_magic.length) |
{ |
log("got bl magic"); |
got_bl_magic=true; |
gbl++; |
bl_magic_pos=0; |
int foo,leech_cnt=0; |
while (( reader.available() != 0)&&(leech_cnt<1000)) |
{ |
leech_cnt++; |
foo=reader.read(); |
} |
} |
} |
else |
bl_magic_pos=0; |
} |
if (got_bl_magic) |
{ |
// sleep(50); |
flash_msgs[msg_pos++]="reading avr_sig"; |
writer.write( 't'); |
writer.flush(); |
sleep(120); |
// if ( reader.available() == 0 ) |
//throw new Exception("cant read avrsig"); |
/* |
int sig1_timeout=0; |
while ( reader.available() == 0) |
{ |
if ((sig1_timeout++)>1000 ) |
throw new Exception("cant read avrsig"); |
sleep(10); |
} |
*/ |
avr_sig=reader.read(); |
if (avr_sig==63) |
init_sequence=false; |
/* while (avr_sig==63) |
avr_sig=reader.read(); |
*/ |
flash_msgs[msg_pos++]="got avr sig " + avr_sig; |
// last_avr_sig=avr_sig; |
// for(int sig2_timeout=0;sig2_timeout<100;sig2_timeout++) |
/* |
int sig2_timeout=0; |
while ( reader.available() == 0) |
{ |
if ((sig2_timeout++)>1000 ) |
throw new Exception("cant read avrsig-val2"); |
sleep(10); |
}*/ |
int avrsig_suff=reader.read(); |
if (avrsig_suff!=0) |
throw new Exception("val after avrsig is" +avrsig_suff +"should b 0"); |
if ((avr_sig!=0x74)&&(avr_sig!=224)&&(avr_sig!=120)) |
{ |
sigfail=true; |
throw new Exception("avr sig" + avr_sig + " unknown"); |
} |
} |
} |
catch (Exception e) { |
log("" + e.getMessage()); |
sleep(1000); |
exit_bootloader(); |
connect(); |
got_bl_magic=false; |
init_sequence=false; // after work |
} |
} |
log("have bl-magic & good avrsig" + avr_sig); |
try{ |
writer.write('T'); |
// writer.flush(); |
writer.write(avr_sig); // set devicetyp = 0x74 oder 0x76 |
writer.flush(); |
if (reader.read()!=0x0d) |
throw new Exception("cant get buffer size"); |
writer.write('V'); |
writer.flush(); |
int bl_version_major=reader.read(); |
int bl_version_minor=reader.read(); |
flash_msgs[msg_pos++]="BL Version " + bl_version_major+"."+bl_version_minor; |
writer.write('b'); |
writer.flush(); |
if (reader.read()!='Y') |
throw new Exception("cant get buffer size"); |
send_buff_size=reader.read()*0x100; |
send_buff_size+=reader.read(); |
flash_msgs[msg_pos++]="BUFF Size:" + send_buff_size; |
} |
catch (Exception e2) { |
exit_bootloader(); |
return; |
} |
// if (send_buff_size>128) |
// send_buff_size=128; |
switch (intension) |
{ |
case MKFirmwareHelper.BOOTLOADER_INTENSION_RESET_PARAMS: |
try{ |
flash_msgs[msg_pos]="reset params .."; |
writer.write( MKFirmwareHelper.cmd_reset_params); |
writer.flush(); |
flash_msgs[msg_pos++]+=" done"; |
success=true; |
} |
catch (Exception e2) { } |
break; |
case MKFirmwareHelper.BOOTLOADER_INTENSION_FLASH_FIRMWARE: |
try{ |
byte[] flash_buff =new byte[send_buff_size]; ///!! |
//String firmware_filename=(avr_sig==224)?"/navi.bin":((avr_sig==120)?"/mk3.bin":"/fc.bin"); |
//flash_msgs[msg_pos++]="Opening firmware " + firmware_filename + ".."; |
//InputStream in; |
//try { |
//in=this.getClass().getResourceAsStream(firmware_filename); |
// } |
// catch (Exception e) { throw new Exception(" .. cant open firmware"); } |
int firmware_size=-1; |
try { |
firmware_size= ((int)in.read()<<24) |((int)in.read()<<16) | ((int)in.read()<<8) | ((int)in.read()&0xff) ; |
} |
catch (Exception e) |
{ |
throw new Exception(" .. cant read size"); |
} |
// in.mark(firmware_size+10); |
int blocks2write=((firmware_size/send_buff_size))+(((firmware_size%send_buff_size)==0)?0:1); |
flash_msgs[msg_pos++]=".. open("+blocks2write+" blocks," + firmware_size + "bytes)"; |
// if (true) throw new Exception("before erasing"); |
// if (true) throw new Exception("before erasing" ); |
flash_msgs[msg_pos++]="Erasing Flash .."; |
writer.write('e'); |
writer.flush(); |
if (reader.read()!=0x0d) |
throw new Exception("cant erase flash"); |
flash_msgs[msg_pos]+="OK"; |
writer.write('A'); |
writer.write(0); |
writer.write(0); |
writer.flush(); |
if (reader.read()!=0x0d) |
throw new Exception("cant set addr"); |
flash_msgs[msg_pos++]="addr set"; |
// int blocks2write=((firmware_size/send_buff_size)); |
for ( int block=0; block<blocks2write; block ++) |
{ |
for (int s=0;s<send_buff_size;s++) |
flash_buff[s]=0; |
int hex_bytes_read=in.read(flash_buff,0,send_buff_size); |
/* |
if (avr_sig==224) |
{ |
for (int s=hex_bytes_read;s<send_buff_size;s++) |
flash_buff[s]=0; |
hex_bytes_read=send_buff_size; // fix |
} |
*/ |
hex_bytes_read=send_buff_size; // fix |
flash_msgs[msg_pos]="bl:" + (block+1) + "/" + blocks2write + " si:"+hex_bytes_read ; |
writer.write('B'); |
writer.write((hex_bytes_read>>8)& 0xFF); |
writer.write((hex_bytes_read)& 0xFF); |
writer.write('F'); |
writer.flush(); |
writer.write(flash_buff,0,hex_bytes_read); |
writer.flush(); |
if (avr_sig==224) |
{ |
int crc=0xFFFF; |
for (int crc_pos=0;crc_pos<hex_bytes_read;crc_pos++) |
crc=MKFirmwareHelper.CRC16(flash_buff[crc_pos],crc); |
writer.write((crc>>8)&0xff); |
writer.write(crc&0xff); |
writer.flush(); |
} |
// flash_msgs[msg_pos]+="ok"; |
// writer.flush(); |
if (reader.read()!=0x0d) |
throw new Exception("abort write at block"+block); |
// sleep(1000); |
} // for block |
sleep(1000); |
success=true; |
} |
catch (Exception e2) { |
msg_pos++;} |
break; |
} |
sleep(50); |
exit_bootloader(); |
job_done=true; |
} |
public void exit_bootloader() |
{ |
try{ |
writer.write('E'); |
writer.flush(); |
} |
catch (Exception e) { |
flash_msgs[msg_pos++]="cant exit bootloader" ; |
} |
flash_msgs[msg_pos++]="Exit BL done" ; |
close_connections(); |
} |
} |
/DUBwise/trunk/shared/src/MKFirmwareHelper.java |
---|
0,0 → 1,59 |
package org.ligi.ufo; |
public final class MKFirmwareHelper |
{ |
public final static byte BOOTLOADER_INTENSION_GET_SIG=0; |
public final static byte BOOTLOADER_INTENSION_RESET_PARAMS=1; |
public final static byte BOOTLOADER_INTENSION_FLASH_FIRMWARE=2; |
// table for crc16 calculation - needed for navi-firmware |
public final static int[] crc16_table = { |
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, |
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, |
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, |
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, |
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, |
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, |
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, |
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, |
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, |
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, |
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, |
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, |
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, |
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, |
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, |
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, |
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, |
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, |
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, |
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, |
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, |
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, |
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, |
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, |
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, |
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, |
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, |
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, |
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, |
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, |
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, |
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 |
}; |
// calculation step |
public final static int CRC16(int ch, int crc) |
{ |
return crc16_table[((crc >> 8) ^ (ch)) & 0xFF] ^ (crc << 8); |
} |
public final static byte[] cmd_reset_params={(byte)'B',0,4,(byte)'E',(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF}; |
} |
/DUBwise/trunk/shared/src/MKGPSPosition.java |
---|
224,9 → 224,11 |
act_gps_format=(byte)((act_gps_format+1)%GPS_FORMAT_COUNT); |
}*/ |
public String act_gps_format_str(int val) |
public String gps_format_str(int val,int format) |
{ |
switch(act_gps_format) |
switch(format) |
{ |
case GPS_FORMAT_DECIMAL: |
return "" + val/10000000 + "." +val%10000000 ; |
236,7 → 238,12 |
return "invalid format" + act_gps_format; |
} |
} |
public String act_gps_format_str(int val) |
{ |
return gps_format_str(val,act_gps_format); |
} |
public String act_speed_format_str(int val) |
352,52 → 359,55 |
public void set_by_mk_data(int[] in_arr,MKVersion version) |
{ |
Longitude=parse_arr_4(0,in_arr); |
Latitude=parse_arr_4(4,in_arr); |
Altitude=parse_arr_4(8,in_arr); |
int off=0; |
if (version.proto_minor>0) // fixme |
off++; |
Longitude=parse_arr_4(off+0,in_arr); |
Latitude=parse_arr_4(off+4,in_arr); |
Altitude=parse_arr_4(off+8,in_arr); |
//status=in_arr[12]; |
TargetLongitude=parse_arr_4(13,in_arr); |
TargetLatitude=parse_arr_4(17,in_arr); |
TargetAltitude=parse_arr_4(21,in_arr); |
TargetLongitude=parse_arr_4(off+13,in_arr); |
TargetLatitude=parse_arr_4(off+17,in_arr); |
TargetAltitude=parse_arr_4(off+21,in_arr); |
//Targetstatus=in_arr[25]; |
Distance2Target=parse_arr_2(26,in_arr); |
Angle2Target=parse_arr_2(28,in_arr); |
Distance2Target=parse_arr_2(off+26,in_arr); |
Angle2Target=parse_arr_2(off+28,in_arr); |
HomeLongitude=parse_arr_4(30,in_arr); |
HomeLatitude=parse_arr_4(34,in_arr); |
HomeAltitude=parse_arr_4(38,in_arr); |
HomeLongitude=parse_arr_4(off+30,in_arr); |
HomeLatitude=parse_arr_4(off+34,in_arr); |
HomeAltitude=parse_arr_4(off+38,in_arr); |
//Targetstatus=in_arr[42]; |
Distance2Home=parse_arr_2(43,in_arr); |
Angle2Home=parse_arr_2(45,in_arr); |
Distance2Home=parse_arr_2(off+43,in_arr); |
Angle2Home=parse_arr_2(off+45,in_arr); |
WayPointIndex=(byte)in_arr[47]; |
WayPointNumber=(byte)in_arr[48]; |
WayPointIndex=(byte)in_arr[off+47]; |
WayPointNumber=(byte)in_arr[off+48]; |
SatsInUse=(byte)in_arr[49]; |
SatsInUse=(byte)in_arr[off+49]; |
Altimeter=parse_arr_2(50,in_arr); // hight according to air pressure |
Variometer=parse_arr_2(52,in_arr);; // climb(+) and sink(-) rate |
FlyingTime=parse_arr_2(54,in_arr);; |
Altimeter=parse_arr_2(off+50,in_arr); // hight according to air pressure |
Variometer=parse_arr_2(off+52,in_arr);; // climb(+) and sink(-) rate |
FlyingTime=parse_arr_2(off+54,in_arr);; |
UBatt= in_arr[56]; |
UBatt= in_arr[off+56]; |
GroundSpeed= parse_arr_2(57,in_arr); |
Heading= parse_arr_2(59,in_arr); |
CompasHeading= parse_arr_2(61,in_arr); |
GroundSpeed= parse_arr_2(off+57,in_arr); |
Heading= parse_arr_2(off+59,in_arr); |
CompasHeading= parse_arr_2(off+61,in_arr); |
AngleNick = in_arr[63]; |
AngleRoll = in_arr[64]; |
SenderOkay = in_arr[65]; |
AngleNick = in_arr[off+63]; |
AngleRoll = in_arr[off+64]; |
SenderOkay = in_arr[off+65]; |
MKFlags=in_arr[66]; |
NCFlags=in_arr[67]; |
MKFlags=in_arr[off+66]; |
NCFlags=in_arr[off+67]; |
ErrorCode=in_arr[68]; |
ErrorCode=in_arr[off+68]; |
} |
/DUBwise/trunk/shared/src/MKParamsParser.java |
---|
18,18 → 18,15 |
{ |
// -- start generated code -- |
public final static int[][] all_tab_stringids={{STRINGID_ALTITUDE,STRINGID_CAMERA,STRINGID_CHANNELS,STRINGID_CONFIGURATION,STRINGID_COUPLING,STRINGID_GYRO,STRINGID_LOOP,STRINGID_NAVI,STRINGID_OTHER,STRINGID_OUTPUT,STRINGID_STICK,STRINGID_USERPARAMS},{STRINGID_ALTITUDE,STRINGID_CAMERA,STRINGID_CHANNELS,STRINGID_CONFIGURATION,STRINGID_COUPLING,STRINGID_GYRO,STRINGID_LOOP,STRINGID_NAVI,STRINGID_OTHER,STRINGID_OUTPUT,STRINGID_STICK,STRINGID_USERPARAMS}}; |
public final static int[][][] all_field_stringids={{{STRINGID_MINACCELERATE,STRINGID_BAROD,STRINGID_SETPOINT,STRINGID_ALTITUDEP,STRINGID_GAIN,STRINGID_ZACC,STRINGID_SWITCH3},{STRINGID_SERVOCONTROL,STRINGID_NICKCOMP,STRINGID_SERVOMIN,STRINGID_SERVOMAX,STRINGID_REFRESHRATE,STRINGID_INVERTDIRECTION},{STRINGID_NICK,STRINGID_ROLL,STRINGID_ACCELERATE,STRINGID_GIER,STRINGID_POTI1,STRINGID_POTI2,STRINGID_POTI3,STRINGID_POTI4},{STRINGID_ALTITUDECONTROL,STRINGID_SWITCHFORSETPOINT,STRINGID_HEADINGHOLD,STRINGID_COMPASACTIVE,STRINGID_COMPASFIX,STRINGID_GPS,STRINGID_COUPLING,STRINGID_YAWRATELIMITER},{STRINGID_YAWPOSFEEDBACK,STRINGID_YAWNEGFEEDBACK},{STRINGID_ACCGYROFACTOR,STRINGID_PRATE,STRINGID_IRATE,STRINGID_ACCGYROCOMP,STRINGID_DRIFTCOMP,STRINGID_DYNAMICSTABILITY},{STRINGID_GASLIMIT,STRINGID_THRESHOLD,STRINGID_HYSTERESE,STRINGID_TURNOVERNICK,STRINGID_TURNOVERROLL,STRINGID_UP,STRINGID_DOWN,STRINGID_LEFT,STRINGID_RIGHT},{STRINGID_MODECONTROL,STRINGID_GPSGAIN,STRINGID_GPSP,STRINGID_GPSI,STRINGID_GPSD,STRINGID_GPSACC,STRINGID_SATMIN,STRINGID_STICKTHRESHOLD,STRINGID_WINDCORRECT,STRINGID_SPEEDCOMP,STRINGID_OPERATIONRADIUS,STRINGID_ANGLELIMIT},{STRINGID_MINGAS,STRINGID_MAXGAS,STRINGID_COMPASEFFECT,STRINGID_VOLTAGEWARNING,STRINGID_DISTRESSGAS,STRINGID_DISTRESSGASTIME},{STRINGID_J16BITMASK,STRINGID_J16TIMING,STRINGID_J17BITMASK,STRINGID_J17TIMING},{STRINGID_NICKROLLP,STRINGID_NICKROLLD,STRINGID_GIERP,STRINGID_EXTERNCONTROL},{STRINGID_PARAM1,STRINGID_PARAM2,STRINGID_PARAM3,STRINGID_PARAM4,STRINGID_PARAM5,STRINGID_PARAM6,STRINGID_PARAM7,STRINGID_PARAM8}},{{STRINGID_MINACCELERATE,STRINGID_BAROD,STRINGID_SETPOINT,STRINGID_ALTITUDEP,STRINGID_GAIN,STRINGID_ZACC,STRINGID_SWITCH3},{STRINGID_SERVOCONTROL,STRINGID_NICKCOMP,STRINGID_SERVOMIN,STRINGID_SERVOMAX,STRINGID_REFRESHRATE,STRINGID_INVERTDIRECTION},{STRINGID_NICK,STRINGID_ROLL,STRINGID_ACCELERATE,STRINGID_GIER,STRINGID_POTI1,STRINGID_POTI2,STRINGID_POTI3,STRINGID_POTI4},{STRINGID_ALTITUDECONTROL,STRINGID_SWITCHFORSETPOINT,STRINGID_HEADINGHOLD,STRINGID_COMPASACTIVE,STRINGID_COMPASFIX,STRINGID_GPS,STRINGID_COUPLING,STRINGID_YAWRATELIMITER},{STRINGID_YAWPOSFEEDBACK,STRINGID_COUPLING2,STRINGID_COUPLINGYAWCORRECT},{STRINGID_ACCGYROFACTOR,STRINGID_PRATE,STRINGID_IRATE,STRINGID_DRATE,STRINGID_ACCGYROCOMP,STRINGID_DRIFTCOMP,STRINGID_DYNAMICSTABILITY},{STRINGID_GASLIMIT,STRINGID_THRESHOLD,STRINGID_HYSTERESE,STRINGID_TURNOVERNICK,STRINGID_TURNOVERROLL,STRINGID_UP,STRINGID_DOWN,STRINGID_LEFT,STRINGID_RIGHT},{STRINGID_MODECONTROL,STRINGID_GPSGAIN,STRINGID_GPSP,STRINGID_GPSI,STRINGID_GPSD,STRINGID_GPSPLIMIT,STRINGID_GPSILIMIT,STRINGID_GPSDLIMIT,STRINGID_GPSACC,STRINGID_SATMIN,STRINGID_STICKTHRESHOLD,STRINGID_WINDCORRECT,STRINGID_SPEEDCOMP,STRINGID_OPERATIONRADIUS,STRINGID_ANGLELIMIT,STRINGID_PHLOGINTIME},{STRINGID_MINGAS,STRINGID_MAXGAS,STRINGID_COMPASEFFECT,STRINGID_VOLTAGEWARNING,STRINGID_DISTRESSGAS,STRINGID_DISTRESSGASTIME},{STRINGID_J16BITMASK,STRINGID_J16TIMING,STRINGID_J17BITMASK,STRINGID_J17TIMING},{STRINGID_NICKROLLP,STRINGID_NICKROLLD,STRINGID_GIERP,STRINGID_EXTERNCONTROL},{STRINGID_PARAM1,STRINGID_PARAM2,STRINGID_PARAM3,STRINGID_PARAM4,STRINGID_PARAM5,STRINGID_PARAM6,STRINGID_PARAM7,STRINGID_PARAM8}}}; |
public final static int[][][] all_field_positions={{{9,10,11,12,13,14,556},{33,34,35,36,37,560},{0,1,2,3,4,5,6,7},{64,65,66,67,68,69,70,71},{41,42},{20,22,23,45,46,47},{38,39,40,43,44,552,553,554,555},{56,57,58,59,60,61,62,63,64,65,66,67},{18,19,21,24,25,26},{52,53,54,55},{15,16,17,68},{29,30,31,32,48,49,50,51}},{{9,10,11,12,13,14,604},{34,35,36,37,38,608},{0,1,2,3,4,5,6,7},{64,65,66,67,68,69,70,71},{42,43,44},{20,22,23,24,47,48,49},{39,40,41,45,46,600,601,602,603},{58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73},{18,19,21,25,26,27},{54,55,56,57},{15,16,17,74},{30,31,32,33,50,51,52,53}}}; |
public final static int[][][] all_field_types={{{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK},{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE,PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE}},{{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK},{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE,PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE}}}; |
public final static int[] all_name_positions={75,81}; |
public final static int[] all_lengths={87,93}; |
public final static int[][] all_tab_stringids={{STRINGID_ALTITUDE,STRINGID_CAMERA,STRINGID_CHANNELS,STRINGID_CONFIGURATION,STRINGID_COUPLING,STRINGID_GYRO,STRINGID_LOOP,STRINGID_NAVI,STRINGID_OTHER,STRINGID_OUTPUT,STRINGID_STICK,STRINGID_USERPARAMS},{STRINGID_ALTITUDE,STRINGID_CAMERA,STRINGID_CHANNELS,STRINGID_CONFIGURATION,STRINGID_COUPLING,STRINGID_GYRO,STRINGID_LOOP,STRINGID_NAVI,STRINGID_OTHER,STRINGID_OUTPUT,STRINGID_STICK,STRINGID_USERPARAMS},{STRINGID_ALTITUDE,STRINGID_CAMERA,STRINGID_CHANNELS,STRINGID_CONFIGURATION,STRINGID_COUPLING,STRINGID_GYRO,STRINGID_LOOP,STRINGID_NAVI,STRINGID_OTHER,STRINGID_OUTPUT,STRINGID_STICK,STRINGID_USERPARAMS}}; |
public final static int[][][] all_field_stringids={{{STRINGID_MINACCELERATE,STRINGID_BAROD,STRINGID_SETPOINT,STRINGID_ALTITUDEP,STRINGID_GAIN,STRINGID_ZACC,STRINGID_SWITCH3},{STRINGID_SERVOCONTROL,STRINGID_NICKCOMP,STRINGID_SERVOMIN,STRINGID_SERVOMAX,STRINGID_REFRESHRATE,STRINGID_INVERTDIRECTION},{STRINGID_NICK,STRINGID_ROLL,STRINGID_ACCELERATE,STRINGID_GIER,STRINGID_POTI1,STRINGID_POTI2,STRINGID_POTI3,STRINGID_POTI4},{STRINGID_ALTITUDECONTROL,STRINGID_SWITCHFORSETPOINT,STRINGID_HEADINGHOLD,STRINGID_COMPASACTIVE,STRINGID_COMPASFIX,STRINGID_GPS,STRINGID_COUPLING,STRINGID_YAWRATELIMITER},{STRINGID_YAWPOSFEEDBACK,STRINGID_YAWNEGFEEDBACK},{STRINGID_ACCGYROFACTOR,STRINGID_PRATE,STRINGID_IRATE,STRINGID_ACCGYROCOMP,STRINGID_DRIFTCOMP,STRINGID_DYNAMICSTABILITY},{STRINGID_GASLIMIT,STRINGID_THRESHOLD,STRINGID_HYSTERESE,STRINGID_TURNOVERNICK,STRINGID_TURNOVERROLL,STRINGID_UP,STRINGID_DOWN,STRINGID_LEFT,STRINGID_RIGHT},{STRINGID_MODECONTROL,STRINGID_GPSGAIN,STRINGID_GPSP,STRINGID_GPSI,STRINGID_GPSD,STRINGID_GPSACC,STRINGID_SATMIN,STRINGID_STICKTHRESHOLD,STRINGID_WINDCORRECT,STRINGID_SPEEDCOMP,STRINGID_OPERATIONRADIUS,STRINGID_ANGLELIMIT},{STRINGID_MINGAS,STRINGID_MAXGAS,STRINGID_COMPASEFFECT,STRINGID_VOLTAGEWARNING,STRINGID_DISTRESSGAS,STRINGID_DISTRESSGASTIME},{STRINGID_J16BITMASK,STRINGID_J16TIMING,STRINGID_J17BITMASK,STRINGID_J17TIMING},{STRINGID_NICKROLLP,STRINGID_NICKROLLD,STRINGID_GIERP,STRINGID_EXTERNCONTROL},{STRINGID_PARAM1,STRINGID_PARAM2,STRINGID_PARAM3,STRINGID_PARAM4,STRINGID_PARAM5,STRINGID_PARAM6,STRINGID_PARAM7,STRINGID_PARAM8}},{{STRINGID_MINACCELERATE,STRINGID_BAROD,STRINGID_SETPOINT,STRINGID_ALTITUDEP,STRINGID_GAIN,STRINGID_ZACC,STRINGID_SWITCH3},{STRINGID_SERVOCONTROL,STRINGID_NICKCOMP,STRINGID_SERVOMIN,STRINGID_SERVOMAX,STRINGID_REFRESHRATE,STRINGID_INVERTDIRECTION},{STRINGID_NICK,STRINGID_ROLL,STRINGID_ACCELERATE,STRINGID_GIER,STRINGID_POTI1,STRINGID_POTI2,STRINGID_POTI3,STRINGID_POTI4},{STRINGID_ALTITUDECONTROL,STRINGID_SWITCHFORSETPOINT,STRINGID_HEADINGHOLD,STRINGID_COMPASACTIVE,STRINGID_COMPASFIX,STRINGID_GPS,STRINGID_COUPLING,STRINGID_YAWRATELIMITER},{STRINGID_YAWPOSFEEDBACK,STRINGID_COUPLING2,STRINGID_COUPLINGYAWCORRECT},{STRINGID_ACCGYROFACTOR,STRINGID_PRATE,STRINGID_IRATE,STRINGID_DRATE,STRINGID_ACCGYROCOMP,STRINGID_DRIFTCOMP,STRINGID_DYNAMICSTABILITY},{STRINGID_GASLIMIT,STRINGID_THRESHOLD,STRINGID_HYSTERESE,STRINGID_TURNOVERNICK,STRINGID_TURNOVERROLL,STRINGID_UP,STRINGID_DOWN,STRINGID_LEFT,STRINGID_RIGHT},{STRINGID_MODECONTROL,STRINGID_GPSGAIN,STRINGID_GPSP,STRINGID_GPSI,STRINGID_GPSD,STRINGID_GPSPLIMIT,STRINGID_GPSILIMIT,STRINGID_GPSDLIMIT,STRINGID_GPSACC,STRINGID_SATMIN,STRINGID_STICKTHRESHOLD,STRINGID_WINDCORRECT,STRINGID_SPEEDCOMP,STRINGID_OPERATIONRADIUS,STRINGID_ANGLELIMIT,STRINGID_PHLOGINTIME},{STRINGID_MINGAS,STRINGID_MAXGAS,STRINGID_COMPASEFFECT,STRINGID_VOLTAGEWARNING,STRINGID_DISTRESSGAS,STRINGID_DISTRESSGASTIME},{STRINGID_J16BITMASK,STRINGID_J16TIMING,STRINGID_J17BITMASK,STRINGID_J17TIMING},{STRINGID_NICKROLLP,STRINGID_NICKROLLD,STRINGID_GIERP,STRINGID_EXTERNCONTROL},{STRINGID_PARAM1,STRINGID_PARAM2,STRINGID_PARAM3,STRINGID_PARAM4,STRINGID_PARAM5,STRINGID_PARAM6,STRINGID_PARAM7,STRINGID_PARAM8}},{{STRINGID_MINACCELERATE,STRINGID_BAROD,STRINGID_SETPOINT,STRINGID_ALTITUDEP,STRINGID_GAIN,STRINGID_ZACC,STRINGID_SWITCH3},{STRINGID_SERVOCONTROL,STRINGID_NICKCOMP,STRINGID_SERVOMIN,STRINGID_SERVOMAX,STRINGID_REFRESHRATE,STRINGID_INVERTDIRECTION},{STRINGID_NICK,STRINGID_ROLL,STRINGID_ACCELERATE,STRINGID_GIER,STRINGID_POTI1,STRINGID_POTI2,STRINGID_POTI3,STRINGID_POTI4},{STRINGID_ALTITUDECONTROL,STRINGID_SWITCHFORSETPOINT,STRINGID_HEADINGHOLD,STRINGID_COMPASACTIVE,STRINGID_COMPASFIX,STRINGID_GPS,STRINGID_COUPLING,STRINGID_YAWRATELIMITER},{STRINGID_YAWPOSFEEDBACK,STRINGID_COUPLING2,STRINGID_COUPLINGYAWCORRECT},{STRINGID_ACCGYROFACTOR,STRINGID_PRATE,STRINGID_IRATE,STRINGID_DRATE,STRINGID_ACCGYROCOMP,STRINGID_DRIFTCOMP,STRINGID_DYNAMICSTABILITY},{STRINGID_GASLIMIT,STRINGID_THRESHOLD,STRINGID_HYSTERESE,STRINGID_TURNOVERNICK,STRINGID_TURNOVERROLL,STRINGID_UP,STRINGID_DOWN,STRINGID_LEFT,STRINGID_RIGHT},{STRINGID_MODECONTROL,STRINGID_GPSGAIN,STRINGID_GPSP,STRINGID_GPSI,STRINGID_GPSD,STRINGID_GPSPLIMIT,STRINGID_GPSILIMIT,STRINGID_GPSDLIMIT,STRINGID_GPSACC,STRINGID_SATMIN,STRINGID_STICKTHRESHOLD,STRINGID_WINDCORRECT,STRINGID_SPEEDCOMP,STRINGID_OPERATIONRADIUS,STRINGID_ANGLELIMIT,STRINGID_PHLOGINTIME},{STRINGID_MINGAS,STRINGID_MAXGAS,STRINGID_COMPASEFFECT,STRINGID_VOLTAGEWARNING,STRINGID_DISTRESSGAS,STRINGID_DISTRESSGASTIME},{STRINGID_J16BITMASK,STRINGID_J16TIMING,STRINGID_J17BITMASK,STRINGID_J17TIMING},{STRINGID_NICKROLLP,STRINGID_NICKROLLD,STRINGID_GIERP,STRINGID_EXTERNCONTROL},{STRINGID_PARAM1,STRINGID_PARAM2,STRINGID_PARAM3,STRINGID_PARAM4,STRINGID_PARAM5,STRINGID_PARAM6,STRINGID_PARAM7,STRINGID_PARAM8}}}; |
public final static int[][][] all_field_positions={{{9,10,11,12,13,14,556},{33,34,35,36,37,560},{0,1,2,3,4,5,6,7},{64,65,66,67,68,69,70,71},{41,42},{20,22,23,45,46,47},{38,39,40,43,44,552,553,554,555},{56,57,58,59,60,61,62,63,64,65,66,67},{18,19,21,24,25,26},{52,53,54,55},{15,16,17,68},{29,30,31,32,48,49,50,51}},{{9,10,11,12,13,14,604},{34,35,36,37,38,608},{0,1,2,3,4,5,6,7},{64,65,66,67,68,69,70,71},{42,43,44},{20,22,23,24,47,48,49},{39,40,41,45,46,600,601,602,603},{58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73},{18,19,21,25,26,27},{54,55,56,57},{15,16,17,74},{30,31,32,33,50,51,52,53}},{{9,10,11,12,13,14,604},{34,35,36,37,38,608},{0,1,2,3,4,5,6,7},{64,65,66,67,68,69,70,71},{42,43,44},{20,22,23,24,47,48,49},{39,40,41,45,46,600,601,602,603},{58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73},{18,19,21,25,26,27},{54,55,56,57},{15,16,17,74},{30,31,32,33,50,51,52,53}}}; |
public final static int[][][] all_field_types={{{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK},{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE,PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE}},{{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK},{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE,PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE}},{{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH},{PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK,PARAMTYPE_STICK},{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE,PARAMTYPE_BITMASK,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE},{PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE,PARAMTYPE_MKBYTE}}}; |
public final static int[] all_name_positions={75,81,81}; |
public final static int[] all_lengths={87,93,93}; |
// -- end generated code -- |
public final static int MAX_PARAMSETS=5; |
// public final static int MAX_PARAMLENGTH=100; |
/DUBwise/trunk/shared/src/MKStatistics.java |
---|
18,6 → 18,7 |
public int resend_count=0; |
public int crc_fail=0; |
public int debug_data_count=0; |
public int debug_names_count=0; |
55,6 → 56,11 |
public int max_alt=0; |
public MKStatistics() |
{ |
reset(); |
} |
public int avg_speed() |
{ |
return (int)(speed_sum/speed_cnt); |
76,7 → 82,6 |
public void process_mkflags(int flags) |
{ |
if (flags==0) |
flying_start=-1; |
else |
105,7 → 110,8 |
public void reset() |
{ |
flying_start=-1; |
crc_fail=0; |
debug_data_count=0; |
debug_names_count=0; |
angle_data_count=0; |
/DUBwise/trunk/shared/src/MKWatchDog.java |
---|
34,6 → 34,8 |
int last_count=0; |
int last_fm_send=-1; |
public boolean resend_check(int ref_count) |
{ |
if (( last_count!=ref_count)||(resend_timeout<0)) |
55,6 → 57,7 |
public final static int BASE_SLEEP=10; |
//#endif |
int intitial_paramset_try=0; |
public void run() |
{ |
mk.log("starting Watchdog"); |
66,25 → 69,25 |
try { |
Thread.sleep(BASE_SLEEP); |
// sleeper=BASE_SLEEP; |
if (mk.connected&&(!mk.force_disconnect)) |
if (mk.connected&&(!mk.force_disconnect))//&&(mk.bootloader_stage==BOOTLOADER_STAGE_NONE)) |
{ |
// mk.log("watchdog pre main loop"); |
if (mk.init_bootloader) |
{ |
mk.jump_bootloader(); |
mk.init_bootloader=false; |
} |
else if ( mk.version.major==-1 ) |
// // mk.log("watchdog pre main loop"); |
// if (mk.init_bootloader) |
// { |
// mk.jump_bootloader(); |
// mk.init_bootloader=false; |
// } |
//else |
if ( mk.version.major==-1 ) |
mk.get_version(); |
else if (mk.ufo_prober.is_navi()&&(mk.error_str==null)) |
else if (mk.is_navi()&&(mk.error_str==null)) |
mk.get_error_str(); |
else if (mk.ufo_prober.is_mk()&&(mk.params.last_parsed_paramset==-1)) |
else if (mk.is_mk()&&(mk.params.last_parsed_paramset==-1)&&(intitial_paramset_try<7)) |
{ |
mk.get_params(0xFF-1); |
Thread.sleep(150); |
intitial_paramset_try++; |
act_paramset=0; // warning - if dropped problem |
} |
else switch (mk.user_intent) |
165,31 → 168,45 |
break; |
case USER_INTENT_GPSOSD: |
mk.set_gpsosd_interval(1); |
mk.set_gpsosd_interval(mk.primary_abo); |
break; |
case USER_INTENT_GRAPH: |
mk.set_debug_interval(1); |
mk.set_debug_interval(mk.primary_abo); |
break; |
case USER_INTENT_FOLLOWME: |
// once a second |
if (last_fm_send!=(System.currentTimeMillis()/1000)) |
{ |
last_fm_send=(int)(System.currentTimeMillis()/1000); |
mk.send_follow_me(60); |
} |
break; |
default: |
// mk.log("uncactched intent " +mk.root.canvas.user_intent ); |
// mk.log("uncactched intent " +mk.root.canvas.user_intent ) |
break; |
} |
if (bytes_in_count_buff==mk.stats.bytes_in) |
if ((conn_check_timeout++)*BASE_SLEEP>3000) |
{ |
conn_check_timeout=0; |
mk.close_connections(false); |
} |
else |
conn_check_timeout=0; |
else |
conn_check_timeout=0; |
bytes_in_count_buff=mk.stats.debug_data_count; |
} |
/DUBwise/trunk/shared/src/ParamsClass.java |
---|
17,8 → 17,13 |
{ |
public int[] tab_stringids; |
public int[][] field_stringids; |
public String[][] field_strings; |
public int[][] choice_stringids; |
public int[][] field_stringids; |
// public String[] tab_names; |
//- public String[][] field_names; |
public int[][] field_positions; |