diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index e9aa0793f0..ffc3d1726a 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -186,6 +186,20 @@ RawSourceRange RawSource::getRange(const ModelData & model, const GeneralSetting break; case TELEMETRY_SOURCE_ASPEED: case TELEMETRY_SOURCE_ASPEED_MAX: + result.decimals = 1; + result.step = singleprec ? 2.0 : 0.1; + result.max = singleprec ? (2*255) : 2000; + if (firmware->getCapability(Imperial) || settings.imperial) { + result.step *= 1.150779; + result.max *= 1.150779; + result.unit = QObject::tr("mph"); + } + else { + result.step *= 1.852; + result.max *= 1.852; + result.unit = QObject::tr("km/h"); + } + break; case TELEMETRY_SOURCE_SPEED: case TELEMETRY_SOURCE_SPEED_MAX: result.step = singleprec ? 2 : 1; diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 9ad77582c2..693112236d 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1367,7 +1367,7 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val, case TELEM_ASPEED-1: case TELEM_MAX_ASPEED-1: - putsTelemetryValue(x, y, val, UNIT_KTS, att); + putsTelemetryValue(x, y, val, UNIT_KTS, att|PREC1); break; #if defined(CPUARM) diff --git a/radio/src/logs.cpp b/radio/src/logs.cpp index cf347ecaea..0810a7fa00 100644 --- a/radio/src/logs.cpp +++ b/radio/src/logs.cpp @@ -123,13 +123,9 @@ const pm_char * openLogs() #if defined(FRSKY_HUB) if (IS_USR_PROTO_FRSKY_HUB()) { - f_puts("GPS Date,GPS Time,Long,Lat,Course,GPS Speed(", &g_oLogFile); - f_puts(TELEMETRY_SPEED_UNIT, &g_oLogFile); - f_puts("),GPS Alt,Baro Alt(", &g_oLogFile); + f_puts("GPS Date,GPS Time,Long,Lat,Course,GPS Speed(kts),GPS Alt,Baro Alt(", &g_oLogFile); f_puts(TELEMETRY_BARO_ALT_UNIT, &g_oLogFile); - f_puts("),Vertical Speed,Air Speed(", &g_oLogFile); - f_puts(TELEMETRY_SPEED_UNIT, &g_oLogFile); - f_puts("),Temp1,Temp2,RPM,Fuel," TELEMETRY_CELLS_LABEL "Current,Consumption,Vfas,AccelX,AccelY,AccelZ,", &g_oLogFile); + f_puts("),Vertical Speed,Air Speed(kts),Temp1,Temp2,RPM,Fuel," TELEMETRY_CELLS_LABEL "Current,Consumption,Vfas,AccelX,AccelY,AccelZ,", &g_oLogFile); } #endif @@ -219,7 +215,7 @@ void writeLogs() TELEMETRY_BARO_ALT_PREPARE(); if (IS_USR_PROTO_FRSKY_HUB()) { - f_printf(&g_oLogFile, "%4d-%02d-%02d,%02d:%02d:%02d,%03d.%04d%c,%03d.%04d%c,%03d.%02d," TELEMETRY_SPEED_FORMAT TELEMETRY_GPS_ALT_FORMAT TELEMETRY_BARO_ALT_FORMAT TELEMETRY_VSPEED_FORMAT TELEMETRY_SPEED_FORMAT "%d,%d,%d,%d," TELEMETRY_CELLS_FORMAT TELEMETRY_CURRENT_FORMAT "%d," TELEMETRY_VFAS_FORMAT "%d,%d,%d,", + f_printf(&g_oLogFile, "%4d-%02d-%02d,%02d:%02d:%02d,%03d.%04d%c,%03d.%04d%c,%03d.%02d," TELEMETRY_GPS_SPEED_FORMAT TELEMETRY_GPS_ALT_FORMAT TELEMETRY_BARO_ALT_FORMAT TELEMETRY_VSPEED_FORMAT TELEMETRY_ASPEED_FORMAT "%d,%d,%d,%d," TELEMETRY_CELLS_FORMAT TELEMETRY_CURRENT_FORMAT "%d," TELEMETRY_VFAS_FORMAT "%d,%d,%d,", frskyData.hub.year+2000, frskyData.hub.month, frskyData.hub.day, diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 409648ff2d..14a3a8cc26 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -762,7 +762,7 @@ ls_telemetry_value_t maxTelemValue(uint8_t channel) case TELEM_MAX_SPEED: case TELEM_ASPEED: case TELEM_MAX_ASPEED: - return 2000; + return 20000; case TELEM_CELL: case TELEM_MIN_CELL: return 510; @@ -845,12 +845,14 @@ getvalue_t convert8bitsTelemValue(uint8_t channel, ls_telemetry_value_t value) break; case TELEM_CELL: case TELEM_HDG: - case TELEM_ASPEED: - case TELEM_MAX_ASPEED: case TELEM_SPEED: case TELEM_MAX_SPEED: result = value * 2; break; + case TELEM_ASPEED: + case TELEM_MAX_ASPEED: + result = value * 20; + break; case TELEM_DIST: case TELEM_MAX_DIST: result = value * 8; @@ -1752,7 +1754,7 @@ PLAY_FUNCTION(playValue, uint8_t idx) case MIXSRC_FIRST_TELEM+TELEM_ASPEED-1: case MIXSRC_FIRST_TELEM+TELEM_MAX_ASPEED-1: - PLAY_NUMBER(val, 1+UNIT_KTS, 0); + PLAY_NUMBER(val/10, 1+UNIT_KTS, 0); break; case MIXSRC_FIRST_TELEM+TELEM_CONSUMPTION-1: diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index c92c632751..f24b31c357 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -557,7 +557,7 @@ void telemetryReset() getGpsDistance(); #endif - frskyData.hub.airSpeed = 100; + frskyData.hub.airSpeed = 1000; // 185.1 km/h frskyData.hub.cellsCount = 6; diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index f6e12f56df..b63c3cc555 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -346,8 +346,8 @@ enum AlarmLevel { #define TELEMETRY_GPS_ALT_FORMAT "%c%d.%02d," #define TELEMETRY_GPS_ALT_ARGS frskyData.hub.gpsAltitude < 0 ? '-' : ' ', abs(frskyData.hub.gpsAltitude / 100), abs(frskyData.hub.gpsAltitude % 100), #define TELEMETRY_SPEED_UNIT (IS_IMPERIAL_ENABLE() ? SPEED_UNIT_IMP : SPEED_UNIT_METR) - #define TELEMETRY_SPEED_FORMAT "%d," - #define TELEMETRY_GPS_SPEED_ARGS getConvertedTelemetryValue(frskyData.hub.gpsSpeed_bp, UNIT_KTS), + #define TELEMETRY_GPS_SPEED_FORMAT "%d," + #define TELEMETRY_GPS_SPEED_ARGS frskyData.hub.gpsSpeed_bp, #if defined(CPUARM) #define TELEMETRY_CELLS_ARGS frskyData.hub.cellsSum / 10, frskyData.hub.cellsSum % 10, TELEMETRY_CELL_VOLTAGE(0)/100, TELEMETRY_CELL_VOLTAGE(0)%100, TELEMETRY_CELL_VOLTAGE(1)/100, TELEMETRY_CELL_VOLTAGE(1)%100, TELEMETRY_CELL_VOLTAGE(2)/100, TELEMETRY_CELL_VOLTAGE(2)%100, TELEMETRY_CELL_VOLTAGE(3)/100, TELEMETRY_CELL_VOLTAGE(3)%100, TELEMETRY_CELL_VOLTAGE(4)/100, TELEMETRY_CELL_VOLTAGE(4)%100, TELEMETRY_CELL_VOLTAGE(5)/100, TELEMETRY_CELL_VOLTAGE(5)%100, TELEMETRY_CELL_VOLTAGE(6)/100, TELEMETRY_CELL_VOLTAGE(6)%100, TELEMETRY_CELL_VOLTAGE(7)/100, TELEMETRY_CELL_VOLTAGE(7)%100, TELEMETRY_CELL_VOLTAGE(8)/100, TELEMETRY_CELL_VOLTAGE(8)%100, TELEMETRY_CELL_VOLTAGE(9)/100, TELEMETRY_CELL_VOLTAGE(9)%100, TELEMETRY_CELL_VOLTAGE(10)/100, TELEMETRY_CELL_VOLTAGE(10)%100, TELEMETRY_CELL_VOLTAGE(11)/100, TELEMETRY_CELL_VOLTAGE(11)%100, #define TELEMETRY_CELLS_FORMAT "%d.%d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d,%d.%02d," @@ -363,6 +363,7 @@ enum AlarmLevel { #define TELEMETRY_VFAS_ARGS frskyData.hub.vfas / 10, frskyData.hub.vfas % 10, #define TELEMETRY_VSPEED_FORMAT "%c%d.%02d," #define TELEMETRY_VSPEED_ARGS frskyData.hub.varioSpeed < 0 ? '-' : ' ', abs(frskyData.hub.varioSpeed / 100), abs(frskyData.hub.varioSpeed % 100), + #define TELEMETRY_ASPEED_FORMAT "%d.%d," #define TELEMETRY_ASPEED_ARGS getConvertedTelemetryValue(frskyData.hub.airSpeed, UNIT_KTS), #define TELEMETRY_OPENXSENSOR() (0) #else @@ -402,7 +403,7 @@ enum AlarmLevel { #define TELEMETRY_VFAS_ARGS frskyData.hub.vfas / 10, frskyData.hub.vfas % 10, #define TELEMETRY_VSPEED_FORMAT "%c%d.%02d," #define TELEMETRY_VSPEED_ARGS frskyData.hub.varioSpeed < 0 ? '-' : ' ', frskyData.hub.varioSpeed / 100, frskyData.hub.varioSpeed % 100, - #define TELEMETRY_ASPEED_ARGS getConvertedTelemetryValue(frskyData.hub.airSpeed, UNIT_KTS), + #define TELEMETRY_ASPEED_ARGS frskyData.hub.airSpeed / 10, frskyData.hub.airSpeed % 10 #if defined(FRSKY_HUB) #define TELEMETRY_OPENXSENSOR() (frskyData.hub.openXsensor) diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index aca6b9ff60..8f00ba9543 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -379,7 +379,6 @@ void frskySportProcessPacket(uint8_t *packet) } else if (appId >= AIR_SPEED_FIRST_ID && appId <= AIR_SPEED_LAST_ID) { frskyData.hub.airSpeed = SPORT_DATA_U32(packet); - frskyData.hub.airSpeed /= 10; if (frskyData.hub.airSpeed > frskyData.hub.maxAirSpeed) frskyData.hub.maxAirSpeed = frskyData.hub.airSpeed; }