previous version rolled back as it works with negative altitude values

which is possible at sea level and high atmospheric pressure or in Holland for example
This commit is contained in:
maxim.karban@gmail.com
2012-04-28 15:21:51 +00:00
parent 3a981ef490
commit 8868ee2686
+10 -10
View File
@@ -169,15 +169,15 @@ int16_t applyChannelRatio(uint8_t channel, int16_t val)
inline void evalVario(int16_t altitude_bp, uint16_t altitude_ap)
{
int32_t varioAltitude_cm = (int32_t)altitude_bp * 100 + altitude_ap;
uint8_t varioAltitudeQueuePointer = frskyHubData.varioAltitudeQueuePointer + 1;
if (varioAltitudeQueuePointer == VARIO_QUEUE_LENGTH)
varioAltitudeQueuePointer = 0;
frskyHubData.varioAltitudeQueuePointer = varioAltitudeQueuePointer;
frskyHubData.varioSpeed -= frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] ;
frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] = varioAltitude_cm - frskyHubData.varioAltitude_cm;
frskyHubData.varioAltitude_cm = varioAltitude_cm;
frskyHubData.varioSpeed += frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] ;
int32_t varioAltitude_cm = (int32_t)altitude_bp * 100 + (altitude_bp > 0 ? altitude_ap : -altitude_ap);
uint8_t varioAltitudeQueuePointer = frskyHubData.varioAltitudeQueuePointer + 1;
if (varioAltitudeQueuePointer == VARIO_QUEUE_LENGTH)
varioAltitudeQueuePointer = 0;
frskyHubData.varioAltitudeQueuePointer = varioAltitudeQueuePointer;
frskyHubData.varioSpeed -= frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] ;
frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] = varioAltitude_cm - frskyHubData.varioAltitude_cm;
frskyHubData.varioAltitude_cm = varioAltitude_cm;
frskyHubData.varioSpeed += frskyHubData.varioAltitudeQueue[varioAltitudeQueuePointer] ;
}
void parseTelemHubByte(uint8_t byte)
@@ -275,7 +275,7 @@ void parseTelemHubByte(uint8_t byte)
case offsetof(FrskyHubData, baroAltitude_ap):
if (g_model.varioSource == VARIO_SOURCE_BARO) {
evalVario(frskyHubData.baroAltitude_bp, frskyHubData.baroAltitude_ap);
evalVario(frskyHubData.baroAltitude_bp-frskyHubData.baroAltitudeOffset, frskyHubData.baroAltitude_ap);
}
break;