70,6 → 70,7 |
#include "settings.h" |
#include "sdc.h" |
#include "analog.h" |
#include "canbus.h" |
|
u8 DispPtr = 0; |
s8 DisplayBuff[DISPLAYBUFFSIZE]; |
76,7 → 77,7 |
|
|
u8 MenuItem = 0; |
u8 MaxMenuItem = 28; |
u8 MaxMenuItem = 29; |
|
void Menu_Putchar(char c) |
{ |
123,7 → 124,14 |
LCD_printfxy(0,3,"%s",ErrorMSG); |
} |
else |
if(Partner.ErrorCode) |
{ |
if(IamMaster == SLAVE) LCD_printfxy(0,2,"Master Err: %d",Partner.ErrorCode) |
else LCD_printfxy(0,2,"Slave Err: %d",Partner.ErrorCode); |
LCD_printfxy(0,3,"%s",PartnerErrorMSG); |
} |
else |
{ |
LCD_printfxy(0,2,"Set:%d %s", Parameter.ActiveSetting,EE_Parameter.Name); |
LCD_printfxy(0,3,"%s",ErrorMSG); |
// LCD_printfxy(0,3,"(c) HiSystems GmbH"); |
131,6 → 139,28 |
if(FC.StatusFlags3 & FC_STATUS3_BOAT) LCD_printfxy(16,2,"BOAT"); |
break; |
case 1: |
if(IamMaster == SLAVE) LCD_printfxy(0,0,"++ Master - NC ++") |
else LCD_printfxy(0,0,"++ Slave - NC ++"); |
|
if(CanRxMessage[CAN_ID_VERSION].D.Byte[3]) |
{ |
LCD_printfxy(0,1,"HW V%d.%d SW V%d.%02d%c", CanRxMessage[CAN_ID_VERSION].D.Byte[3]/10, CanRxMessage[CAN_ID_VERSION].D.Byte[3]%10, CanRxMessage[CAN_ID_VERSION].D.Byte[7], CanRxMessage[CAN_ID_VERSION].D.Byte[6], 'a'+ CanRxMessage[CAN_ID_VERSION].D.Byte[5]); |
if(Partner.ErrorCode) |
{ |
if(IamMaster == SLAVE) LCD_printfxy(0,2,"Master Err: %d",Partner.ErrorCode) |
else LCD_printfxy(0,2,"Slave Err: %d",Partner.ErrorCode); |
} |
else |
{ |
LCD_printfxy(0,2,"Set:%d", CanRxMessage[CAN_ID_VERSION].D.Byte[1]); |
} |
LCD_printfxy(0,3,"%s",PartnerErrorMSG); |
if(Partner.StatusFlags3 & FC_STATUS3_BOAT) LCD_printfxy(16,2,"BOAT"); |
} |
else |
LCD_printfxy(0,2,"not connected", CanTxMessage[CAN_ID_VERSION].D.Byte[1]); |
break; |
case 2: |
if (GPSData.Status == INVALID) |
{ |
LCD_printfxy(0,0,"No GPS data"); |
182,7 → 212,7 |
LCD_printfxy(0,3,"Alt:%c%04ld.%03ld m", sign, i1, i2); |
} |
break; |
case 2: |
case 3: |
if (GPSData.Status == INVALID) |
{ |
LCD_printfxy(0,0,"No GPS data"); |
222,7 → 252,7 |
LCD_printfxy(0,3,"Speed T: %+4ld cm/s",GPSData.Speed_Top); |
} |
break; |
case 3: |
case 4: |
LCD_printfxy(0,0,"GPS UTC Time"); |
if (!SystemTime.Valid) |
{ |
237,25 → 267,25 |
LCD_printfxy(0,3,"Time: %02i:%02i:%02i.%03i", SystemTime.Hour, SystemTime.Min, SystemTime.Sec, SystemTime.mSec); |
} |
break; |
case 4: // Navi Params 1 from FC |
case 5: // Navi Params 1 from FC |
LCD_printfxy(0,0,"NaviMode: %3i" , Parameter.NaviGpsModeControl); |
LCD_printfxy(0,1,"G :%3i P :%3i ",Parameter.NaviGpsGain, Parameter.NaviGpsP); |
LCD_printfxy(0,2,"I :%3i D :%3i ",Parameter.NaviGpsI, Parameter.NaviGpsD); |
LCD_printfxy(0,3,"ACC:%3i SAT:%3i ",Parameter.NaviGpsACC, Parameter.NaviGpsMinSat); |
break; |
case 5: // Navi Params 2 from FC |
case 6: // Navi Params 2 from FC |
LCD_printfxy(0,0,"Stick TS: %3i", Parameter.NaviStickThreshold); |
LCD_printfxy(0,1,"WP_Radius: %3im",MaxWP_Radius_in_m); |
LCD_printfxy(0,2,"WindCorr: %3i", Parameter.NaviWindCorrection); |
LCD_printfxy(0,3,"AccComp: %3i", Parameter.NaviSpeedCompensation); |
break; |
case 6: // Navi Params 3 from FC |
case 7: // Navi Params 3 from FC |
LCD_printfxy(0,0,"Angle-Limit: %3i", Parameter.NaviAngleLimitation); |
LCD_printfxy(0,1," P-Limit: %3i", Parameter.NaviGpsPLimit); |
LCD_printfxy(0,2," I-Limit: %3i", Parameter.NaviGpsILimit); |
LCD_printfxy(0,3," D-Limit: %3i", Parameter.NaviGpsDLimit); |
break; |
case 7: // Max Ranges |
case 8: // Max Ranges |
LCD_printfxy(0,0,"Maximum flying "); |
LCD_printfxy(0,1,"Range: %4im ", AbsoluteFlyingRange_m); |
LCD_printfxy(0,2,"Descend: %4im ", AutoDescendRange_m); |
264,7 → 294,7 |
if(!AutoDescendRange_m) LCD_printfxy(9,2,"disabled"); |
if(!AbsoluteFlyingAltitude) LCD_printfxy(9,3,"disabled"); |
break; |
case 8: |
case 9: |
LCD_printfxy(0,0,"Home Position"); |
if(NaviData.HomePosition.Status == INVALID) |
{ |
298,7 → 328,7 |
} |
} |
break; |
case 9: |
case 10: |
LCD_printfxy(0,0,"Target Position"); |
if(NaviData.TargetPosition.Status == INVALID) |
{ |
325,23 → 355,23 |
LCD_printfxy(0,3,"Alt:%c%04ld.%03ldm",sign, i1, i2); |
} |
break; |
case 10: // RC stick controls from FC |
case 11: // RC stick controls from FC |
LCD_printfxy(0,0,"RC-Sticks" ); |
LCD_printfxy(0,1,"Ni:%4i Ro:%4i ",FC.StickNick, FC.StickRoll); |
LCD_printfxy(0,2,"Gs:%4i Ya:%4i ",FC.StickGas, FC.StickYaw); |
LCD_printfxy(0,3,"RC-Level: %3i", FC.RC_Quality); // Remote Control Level from FC |
break; |
case 11: // RC poti controls from FC |
case 12: // RC poti controls from FC |
LCD_printfxy(0,0,"RC-Potis 1" ); |
LCD_printfxy(0,1,"Po1:%3i Po2:%3i ",FC.Poti[0], FC.Poti[1]); |
LCD_printfxy(0,2,"Po3:%3i Po4:%3i ",FC.Poti[2], FC.Poti[3]); |
break; |
case 12: // RC poti controls from FC |
case 13: // RC poti controls from FC |
LCD_printfxy(0,0,"RC-Potis 2" ); |
LCD_printfxy(0,1,"Po5:%3i Po6:%3i ",FC.Poti[4], FC.Poti[5]); |
LCD_printfxy(0,2,"Po7:%3i Po8:%3i ",FC.Poti[6], FC.Poti[7]); |
break; |
case 13: // attitude from FC |
case 14: // attitude from FC |
if(FromFlightCtrl.AngleNick < 0) sign = '-'; |
else sign = '+'; |
i1 = abs(FromFlightCtrl.AngleNick)/10; |
363,13 → 393,13 |
i2 = abs(FromFlightCtrl_AccRoll)%10; |
LCD_printfxy(0,3," AccRoll:%c%03ld.%01ld", sign, i1, i2); |
break; |
case 14: |
case 15: |
LCD_printfxy(0,0,"Analog inputs"); |
LCD_printfxy(0,1,"A5:%3i ",AnalogData.Ch5); |
LCD_printfxy(0,2,"A6:%3i ",AnalogData.Ch6); |
LCD_printfxy(0,3,"A7:%3i ",AnalogData.Ch7); |
break; |
case 15: |
case 16: |
LCD_printfxy(0,0,"Compass: %3i", FromFlightCtrl.GyroHeading / 10); |
LCD_printfxy(0,1,"Man.-Offset:%3i", FC.FromFC_CompassOffset / 10); |
if(FC.FromFC_DisableDeclination) |
384,13 → 414,13 |
} |
LCD_printfxy(0,3,"True Compass: %3i", GyroCompassCorrected/10); |
break; |
case 16: // User Parameter |
case 17: // User Parameter |
LCD_printfxy(0,0,"UP1:%3i UP2:%3i",Parameter.User1,Parameter.User2); |
LCD_printfxy(0,1,"UP3:%3i UP4:%3i",Parameter.User3,Parameter.User4); |
LCD_printfxy(0,2,"UP5:%3i UP6:%3i",Parameter.User5,Parameter.User6); |
LCD_printfxy(0,3,"UP7:%3i UP8:%3i",Parameter.User7,Parameter.User8); |
break; |
case 17: // User Parameter |
case 18: // User Parameter |
LCD_printfxy(0,0,"SD-Card Logs"); |
if(SDCardInfo.Valid == 1) |
{ |
400,7 → 430,7 |
else |
LCD_printfxy(0,1,"no card in slot "); |
break; |
case 18: // magnetic field |
case 19: // magnetic field |
if(Compass_CalState) |
{ |
LCD_printfxy(0,0,"Calibration:"); |
453,7 → 483,7 |
} |
if(Keys & KEY3)Compass_SetCalState(0); // cancel |
break; |
case 19: |
case 20: |
if(GeoMagDec < 0) sign = '-'; |
else sign = '+'; |
LCD_printfxy(0,0,"Magnetic Field"); |
461,11 → 491,11 |
LCD_printfxy(0,2,"Declination:%c%i.%1i ", sign, abs(GeoMagDec)/10,abs(GeoMagDec)%10); |
LCD_printfxy(0,3,"Inclination:%2i (%2i)", EarthMagneticInclination, EarthMagneticInclinationTheoretic); |
break; |
case 20: |
case 21: |
LCD_printfxy(0,0,"SD-Setting "); |
LCD_printfxy(0,2,"WP-Dynamic:%4i ",WaypointAcceleration); |
break; |
case 21: |
case 22: |
LCD_printfxy(0,0,"CPU Processing "); |
LCD_printfxy(0,2,"GPS-Data: %2i.%iHz ",FreqNewGpsData/10, FreqNewGpsData%10); |
LCD_printfxy(0,3,"GPS-Update:%2i.%iHz ",FreqGpsNavProcessed/10, FreqGpsNavProcessed%10); |
472,7 → 502,7 |
if(FreqNewGpsData >= 48 && FreqNewGpsData <= 52) LCD_printfxy(18,2,"OK") else LCD_printfxy(18,2,"!!"); |
if(FreqGpsNavProcessed >= 350) LCD_printfxy(18,3,"OK") else LCD_printfxy(18,3,"!!"); |
break; |
case 22: |
case 23: |
LCD_printfxy(0,0,"BL Current" ); |
LCD_printfxy(11,3,"(in 0.1A)" ); |
for(i1 = 0; i1 < 3; i1++) |
482,7 → 512,7 |
} |
break; |
|
case 23: |
case 24: |
LCD_printfxy(0,0,"Ext. Compass" ); |
if(NCMAG_Compass_use_Orientation) |
{ |
499,7 → 529,7 |
LCD_printfxy(0,1,"Not connected"); |
} |
break; |
case 24: |
case 25: |
{ |
static u8 index = 1; |
if(Keys & KEY3) // next step |
515,7 → 545,7 |
LCD_printfxy(0,3," %3d %3d LOAD", PointList_GetCount(), index); |
} |
break; |
case 25: |
case 26: |
{ |
static u8 index = 1; |
if(Keys & KEY3) |
536,7 → 566,7 |
|
} |
break; |
case 26: |
case 27: |
{ |
static u8 index = 1; |
if(Keys & KEY3) |
552,7 → 582,7 |
LCD_printfxy(0,3,"Number: %3d (LOAD)", index); |
} |
break; |
case 27: |
case 28: |
{ |
static u8 index = 1; |
if(Keys & KEY3) |
581,7 → 611,7 |
break; |
*/ |
|
case 28: |
case 29: |
// LCD_printfxy(0,0,"PPM Input"); |
/* |
LCD_printfxy(0,0,"%4i %4i %4i %4i",PPM_In[1],PPM_In[2],PPM_In[3],PPM_In[4]); |