128,6 → 128,7 |
s16 GyroCompassCorrected = 0; // corrected with the magnetic declination |
s16 CompassSetpointCorrected = 0; // The compass setpoint that the FC tries to keep - corrected with the magnetic declination |
s16 CompassSetpoint = 0; // in 0,1° |
s16 SimulatedDirection = 0; // only for flight simulation |
u8 AmountOfMotors = 0; |
u16 FlugMinutenGesamt; |
|
597,15 → 598,20 |
Parameter.User7 = FromFlightCtrl.Param.Byte[6]; |
Parameter.User8 = FromFlightCtrl.Param.Byte[7]; |
|
if(ClearFCStatusFlags) |
FC.RealStatusFlags = FromFlightCtrl.Param.Byte[8]; |
if(FC.RealStatusFlags & FC_STATUS_MOTOR_RUN) SimulationFlags = 0; // stop the simulation if the motors would really start |
|
if(!(SimulationFlags & SIMULATION_ACTIVE)) |
{ |
FC.StatusFlags = 0; |
ClearFCStatusFlags = 0; |
if(ClearFCStatusFlags) |
{ |
FC.StatusFlags = 0; |
ClearFCStatusFlags = 0; |
} |
} |
FC.StatusFlags |= FromFlightCtrl.Param.Byte[8]; |
FC.StatusFlags |= FC.RealStatusFlags; |
if(FC.StatusFlags & FC_STATUS_CALIBRATE && !FCCalibActive) |
{ |
// HeadFreeStartAngle = (3600 + Compass_Heading * 10 - GeoMagDec) % 3600; |
HeadFreeStartAngle = (3600 + Compass_Heading * 10 + GeoMagDec) % 3600; |
Compass_Init(); |
FCCalibActive = 10; |
624,7 → 630,6 |
} |
if(FC.StatusFlags & FC_STATUS_START) |
{ |
// if(Compass_Heading != -1) HeadFreeStartAngle = (3600 + Compass_Heading * 10 - GeoMagDec) % 3600; else |
if(Compass_Heading != -1) HeadFreeStartAngle = (3600 + Compass_Heading * 10 + GeoMagDec) % 3600; |
else HeadFreeStartAngle = GyroCompassCorrected; |
} |
682,7 → 687,7 |
NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE); |
} |
NaviData.UBat = FC.BAT_Voltage; |
NaviData.Current = FC.BAT_Current; |
if(!(SimulationFlags & SIMULATION_ACTIVE)) NaviData.Current = FC.BAT_Current; |
NaviData.UsedCapacity = FC.BAT_UsedCapacity; |
break; |
case SPI_FCCMD_PARAMETER1: |
742,8 → 747,8 |
} |
Parameter.NaviPH_LoginTime = FromFlightCtrl.Param.Byte[1]; |
NaviData.Variometer = (NaviData.Variometer + 2 * (FromFlightCtrl.Param.sInt[1] - NaviData.Altimeter)) / 2; // provisorisch |
NaviData.Altimeter = FromFlightCtrl.Param.sInt[1]; // in 5cm |
NaviData.SetpointAltitude = FromFlightCtrl.Param.sInt[2]; // in 5cm |
FC.Altimeter = FromFlightCtrl.Param.sInt[1]; // in 5cm |
if(!(SimulationFlags & SIMULATION_ACTIVE)) NaviData.SetpointAltitude = FromFlightCtrl.Param.sInt[2]; // in 5cm |
CHK_POTI_MM(Parameter.NaviGpsPLimit,FromFlightCtrl.Param.Byte[6],0,255); |
CHK_POTI_MM(Parameter.NaviGpsILimit,FromFlightCtrl.Param.Byte[7],0,255); |
CHK_POTI_MM(Parameter.NaviGpsDLimit,FromFlightCtrl.Param.Byte[8],0,255); |
750,9 → 755,6 |
FC.RC_Quality = FromFlightCtrl.Param.Byte[9]; |
NaviData.RC_Quality = FC.RC_Quality; |
NC_Wait_for_LED = FromFlightCtrl.Param.Byte[10]; |
// FC.RC_RSSI = FromFlightCtrl.Param.Byte[10]; |
// if(!FC.RC_RSSI) NaviData.RC_Quality = FC.RC_Quality; else NaviData.RC_Quality = FC.RC_RSSI; |
// NaviData.RC_RSSI = FC.RC_RSSI; |
NaviData.Gas = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning; |
break; |
|