WSHH bug (conversion from meters to feet when source was feet!)
This commit is contained in:
+21
-2
@@ -336,10 +336,20 @@ void parseTelemHubByte(uint8_t byte)
|
||||
#ifdef WS_HOW_HIGH
|
||||
void parseTelemWSHowHighByte(uint8_t byte)
|
||||
{
|
||||
if (frskyUsrStreaming < (FRSKY_TIMEOUT10ms*3 - 10)) // At least 100mS passed since last data received
|
||||
if (frskyUsrStreaming < (FRSKY_TIMEOUT10ms*3 - 10)) {
|
||||
((uint8_t*)&frskyHubData)[offsetof(FrskyHubData, baroAltitude_bp)] = byte;
|
||||
else
|
||||
#if 0
|
||||
if (g_model.varioSource == VARIO_SOURCE_BARO) {
|
||||
// the vario will be in feet / second
|
||||
evalVario(frskyHubData.baroAltitude_bp, 0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
// At least 100mS passed since last data received
|
||||
((uint8_t*)&frskyHubData)[offsetof(FrskyHubData, baroAltitude_bp)+1] = byte;
|
||||
}
|
||||
// baroAltitude_bp unit here is feet!
|
||||
frskyUsrStreaming = FRSKY_TIMEOUT10ms*3; // reset counter
|
||||
}
|
||||
#endif
|
||||
@@ -918,6 +928,15 @@ void putsTelemetryChannel(uint8_t x, uint8_t y, uint8_t channel, int16_t val, ui
|
||||
putsTelemetryValue(x, y, val, UNIT_RAW, att);
|
||||
break;
|
||||
|
||||
#if defined(IMPERIAL_UNITS)
|
||||
case TELEM_ALT:
|
||||
if (g_model.frsky.usrProto == WSHH) {
|
||||
putsTelemetryValue(x, y, val, UNIT_FEET, att);
|
||||
break;
|
||||
}
|
||||
// no break
|
||||
#endif
|
||||
|
||||
default:
|
||||
putsTelemetryValue(x, y, val, pgm_read_byte(bchunit_ar+channel-6), att);
|
||||
break;
|
||||
|
||||
+2
-2
@@ -316,11 +316,11 @@ enum TelemetryUnit {
|
||||
UNIT_KMH,
|
||||
UNIT_KTS = UNIT_KMH,
|
||||
UNIT_METERS,
|
||||
UNIT_FEET = UNIT_METERS,
|
||||
UNIT_DEGREES,
|
||||
UNIT_PERCENT,
|
||||
UNIT_MILLIAMPS,
|
||||
UNIT_MAX
|
||||
UNIT_MAX,
|
||||
UNIT_FEET
|
||||
};
|
||||
|
||||
PACK(typedef struct t_FrSkyChannelData {
|
||||
|
||||
@@ -687,6 +687,9 @@ void putsTelemetryValue(uint8_t x, uint8_t y, int16_t val, uint8_t unit, uint8_t
|
||||
// m to ft *105/32
|
||||
val = val * 3 + ( val >> 2 ) + (val >> 5) ;
|
||||
}
|
||||
if (unit == UNIT_FEET) {
|
||||
unit = UNIT_METERS;
|
||||
}
|
||||
#else
|
||||
if (unit == UNIT_KTS) {
|
||||
// kts to km/h
|
||||
|
||||
Reference in New Issue
Block a user