diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 862316b93..e1028213f 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1150,6 +1150,8 @@ enum TelemetryUnit { UNIT_RPMS, UNIT_G, UNIT_DEGREE, + UNIT_MILLILITERS, + UNIT_FLOZ, UNIT_HOURS, UNIT_MINUTES, UNIT_SECONDS, @@ -1167,7 +1169,7 @@ enum TelemetryUnit { UNIT_DATETIME_HOUR_MIN, UNIT_DATETIME_SEC }; -#define UNIT_MAX UNIT_DEGREE +#define UNIT_MAX UNIT_FLOZ #define UNIT_DIST UNIT_METERS #define UNIT_TEMPERATURE UNIT_CELSIUS #define UNIT_SPEED UNIT_KMH diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index 757eb92b9..067fc2408 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -579,6 +579,7 @@ void telemetryReset() setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CELLS_FIRST_ID, 2, 0x80280220, UNIT_CELLS, 0); setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, CURR_FIRST_ID, 3, 100, UNIT_AMPS, 2); setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, RPM_FIRST_ID, 5, 3600, UNIT_RPMS, 0); + setTelemetryValue(TELEM_PROTO_FRSKY_SPORT, FUEL_QTY_FIRST_ID, 11, 1000, UNIT_MILLILITERS, 2); #endif } diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index 19f4da929..dcfb7442d 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -140,6 +140,8 @@ #define BATT_ID 0xf104 #define SWR_ID 0xf105 #define XJT_VERSION_ID 0xf106 +#define FUEL_QTY_FIRST_ID 0x0a10 +#define FUEL_QTY_LAST_ID 0x0a1f // Default sensor data IDs (Physical IDs + CRC) #define DATA_ID_VARIO 0x00 // 0 diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index 7dd5e7033..848701106 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -80,6 +80,7 @@ const FrSkySportSensor sportSensors[] = { { GPS_ALT_FIRST_ID, GPS_ALT_LAST_ID, ZSTR_GPSALT, UNIT_METERS, 2 }, { GPS_TIME_DATE_FIRST_ID, GPS_TIME_DATE_LAST_ID, ZSTR_GPSDATETIME, UNIT_DATETIME, 0 }, { GPS_LONG_LATI_FIRST_ID, GPS_LONG_LATI_LAST_ID, ZSTR_GPS, UNIT_GPS, 0 }, + { FUEL_QTY_FIRST_ID, FUEL_QTY_LAST_ID, ZSTR_FUEL, UNIT_MILLILITERS, 2 }, { 0, 0, NULL, UNIT_RAW, 0 } // sentinel }; diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 33561aed9..9b4933333 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -565,7 +565,12 @@ int32_t convertTelemetryValue(int32_t value, uint8_t unit, uint8_t prec, uint8_t value = 32 + (value*18)/10; } } - + else if (unit == UNIT_MILLILITERS) { + if (destUnit == UNIT_FLOZ) { + value = (value * 100) / 2957; + } + } + for (int i=destPrec; i