/trunk/Hex-Files/Navi-Ctrl_STR9_V2_06f.hex |
---|
File deleted |
/trunk/gpx.c |
---|
143,6 → 143,8 |
sprintf(string, "<CompassOffset>%i</CompassOffset>\r\n",FC.FromFC_CompassOffset/10);fputs_(string, doc->file); |
sprintf(string, "<FCOrientation>%i</FCOrientation>\r\n",Parameter.OrientationAngle*15);fputs_(string, doc->file); |
sprintf(string, "<GeoMag>%i</GeoMag>\r\n",GeoMagDec/10);fputs_(string, doc->file); |
sprintf(string, "<Neutral>%d,%d,%d</Neutral>\r\n", FC.AdNeutralNick,FC.AdNeutralRoll,FC.AdNeutralYaw);fputs_(string, doc->file); |
if(Parameter.Driftkomp) {sprintf(string, "<DriftComp>%i</DriftComp>\r\n",Parameter.Driftkomp);fputs_(string, doc->file);}; |
if(Compass_I2CPort == NCMAG_PORT_EXTERN) sprintf(string, "<MagSensor>external (%i)</MagSensor>\r\n",NCMAG_Orientation); |
else sprintf(string, "<MagSensor>internal</MagSensor>\r\n");fputs_(string, doc->file); |
if(AbsoluteFlyingAltitude) {sprintf(string, "<MaxAltitude>%i</MaxAltitude>\r\n",AbsoluteFlyingAltitude);fputs_(string, doc->file);} |
381,7 → 383,7 |
if(GPSData.Position.Status == INVALID) i32_2 = 0; |
i32_1 = i32_2/1000L; |
i32_2 = i32_2%1000L; |
if(altitude - NaviData.HomePosition.Altitude < 0) sprintf(string,"<ele>-%ld.%03ld</ele>\r\n",abs(i32_1),abs(i32_2)); |
if(altitude - NaviData.HomePosition.Altitude < 0) sprintf(string,"<ele>-%ld.%03ld</ele>\r\n",labs(i32_1),labs(i32_2)); |
else sprintf(string,"<ele>%ld.%03ld</ele>\r\n",i32_1,i32_2); |
fputs_(string, doc->file); |
// write <time> tag only at a resolution of 1/100 second |
552,6 → 554,11 |
sprintf(string, "<RCQuality>%d</RCQuality>\r\n", FC.RC_Quality); |
fputs_(string, doc->file); |
// Navigation Update speed (in 0.1Hz) |
if(Parameter.Driftkomp) |
{ |
sprintf(string, "<Neutral>%d,%d,%d</Neutral>\r\n", FC.AdNeutralNick,FC.AdNeutralRoll,FC.AdNeutralYaw); |
fputs_(string, doc->file); |
} |
// sprintf(string, "<NaviUpdate>%d,%d</NaviUpdate>\r\n",FreqGpsProcessedIn5Sec,FreqNewGpsDataIn5Sec); |
// fputs_(string, doc->file); |
// eof extensions |
559,7 → 566,7 |
if(GPSData.Position.Status == INVALID) i32_2 = 0; |
i32_1 = i32_2/1000L; |
i32_2 = i32_2%1000L; |
if(altitude < 0) sprintf(string,"<ele_raw>-%ld.%03ld</ele_raw>\r\n",abs(i32_1),abs(i32_2)); |
if(altitude < 0) sprintf(string,"<ele_raw>-%ld.%03ld</ele_raw>\r\n",labs(i32_1),labs(i32_2)); |
else sprintf(string,"<ele_raw>%ld.%03ld</ele_raw>\r\n",i32_1,i32_2); |
fputs_(string, doc->file); |
/trunk/logging.c |
---|
115,7 → 115,7 |
} |
else |
{ |
if(filenum < 100&& SystemTime.Year > 2000) sprintf(filename, "/SIMULATE/%04i%02i%02i/KML/S%1i%02i%02i%02i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Year % 100, SystemTime.Month, SystemTime.Day, filenum); |
if(filenum < 100&& SystemTime.Year > 2000) sprintf(filename, "/SIMULATE/%04i%02i%02i/KML/S%1i%02i%02i%02i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Year % 10, SystemTime.Month, SystemTime.Day, filenum); |
else sprintf(filename, "/SIMULATE/%04i%02i%02i/KML/SIM%05i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
} |
151,7 → 151,7 |
} |
else |
{ |
if(filenum < 100 && SystemTime.Year > 2000) sprintf(filename, "/SIMULATE/%04i%02i%02i/GPX/S%1i%02i%02i%02i.GPX", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Year % 100, SystemTime.Month, SystemTime.Day, filenum); |
if(filenum < 100 && SystemTime.Year > 2000) sprintf(filename, "/SIMULATE/%04i%02i%02i/GPX/S%i%02i%02i%02i.GPX", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Year % 10, SystemTime.Month, SystemTime.Day, filenum); |
else sprintf(filename, "/SIMULATE/%04i%02i%02i/GPX/SIM%05i.GPX", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
} |
filenum++; |
/trunk/main.h |
---|
13,8 → 13,8 |
//----------------------- |
#define VERSION_MAJOR 2 |
#define VERSION_MINOR 6 |
#define VERSION_PATCH 8 |
#define VERSION_MINOR 7 |
#define VERSION_PATCH 0 |
// 0 = A |
// 1 = B |
// 2 = C |
36,7 → 36,7 |
// 18 = S |
#ifndef FOLLOW_ME |
#define FC_SPI_COMPATIBLE 69 // <------------------ |
#define FC_SPI_COMPATIBLE 71 // <------------------ |
#else |
#define FC_SPI_COMPATIBLE 0xFF |
#endif |
61,6 → 61,10 |
#define FC_STATUS2_OUT2_ACTIVE 0x10 |
#define FC_STATUS2_WAIT_FOR_TAKEOFF 0x20 // Motor Running, but still on the ground |
// FC.StatusFlags3 |
#define FC_STATUS3_REDUNDANCE 0x01 |
#define FC_STATUS3_BOAT 0x02 |
// FC ERRORS FLAGS |
#define FC_ERROR0_GYRO_NICK 0x01 |
#define FC_ERROR0_GYRO_ROLL 0x02 |
182,6 → 186,7 |
u8 SingleWpSpeed; |
u8 DescendRange; // in 10m |
u8 MaximumAltitude; // in m |
u8 Driftkomp; |
} __attribute__((packed)) Param_t; |
typedef struct |
202,10 → 207,14 |
u8 FromFC_SpeakHoTT; |
s16 FromFC_CompassOffset; |
u8 FromFC_DisableDeclination; |
u8 RedundanceBlOperation; |
u8 StatusFlags3; |
s16 Altimeter; |
u8 RealStatusFlags; // this is a copy of the status flags -> but not effected by the simulation |
u16 AdNeutralNick; |
u16 AdNeutralRoll; |
u16 AdNeutralYaw; |
} __attribute__((packed)) FC_t; // from FC |
extern Param_t Parameter; |
extern volatile FC_t FC; |
extern s8 ErrorMSG[25]; |
/trunk/spi_slave.c |
---|
799,6 → 799,15 |
if(FC.Error[0] || FC.Error[1] /* || FC.Error[2] || FC.Error[3] || FC.Error[4]*/) DebugOut.StatusRed |= AMPEL_FC; |
else DebugOut.StatusRed &= ~AMPEL_FC; |
break; |
case SPI_FCCMD_NEUTRAL: |
FC.AdNeutralNick = FromFlightCtrl.Param.Int[0]; |
FC.AdNeutralRoll = FromFlightCtrl.Param.Int[1]; |
FC.AdNeutralYaw = FromFlightCtrl.Param.Int[2]; |
Parameter.Driftkomp = FromFlightCtrl.Param.Byte[6]; |
DebugOut.Analog[16] = FC.AdNeutralNick; |
DebugOut.Analog[17] = FC.AdNeutralRoll; |
DebugOut.Analog[18] = FC.AdNeutralYaw; |
break; |
default: |
break; |
} |
/trunk/spi_slave.h |
---|
53,6 → 53,8 |
#define SPI_FCCMD_SERVOS 15 |
#define SPI_FCCMD_BL_ACCU 16 |
#define SPI_FCCMD_PARAMETER2 17 |
#define SPI_FCCMD_NEUTRAL 18 |
#define SPI_FCCMD_SLOW 19 // kommt nicht vor |
#define CHK_POTI(b,a) { if(a < 248) b = a; else b = FC.Poti[255 - a]; } |
#define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max); } |