Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 572 → Rev 573

/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); }