From 0cbb8107af20b275d08308246cf7e00fc370f02d Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 12 Feb 2020 16:51:15 +0100 Subject: [PATCH] Add support for CRSF bat% (#7377) --- radio/src/telemetry/crossfire.cpp | 53 ++++++++++++++++--------------- radio/src/telemetry/crossfire.h | 1 + radio/src/translations/cz.h.txt | 1 + radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 1 + radio/src/translations/nl.h.txt | 1 + radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 1 + radio/src/translations/se.h.txt | 1 + 13 files changed, 40 insertions(+), 25 deletions(-) diff --git a/radio/src/telemetry/crossfire.cpp b/radio/src/telemetry/crossfire.cpp index b233583a4..724fbe1a0 100644 --- a/radio/src/telemetry/crossfire.cpp +++ b/radio/src/telemetry/crossfire.cpp @@ -21,31 +21,32 @@ #include "opentx.h" const CrossfireSensor crossfireSensors[] = { - {LINK_ID, 0, ZSTR_RX_RSSI1, UNIT_DB, 0}, - {LINK_ID, 1, ZSTR_RX_RSSI2, UNIT_DB, 0}, - {LINK_ID, 2, ZSTR_RX_QUALITY, UNIT_PERCENT, 0}, - {LINK_ID, 3, ZSTR_RX_SNR, UNIT_DB, 0}, - {LINK_ID, 4, ZSTR_ANTENNA, UNIT_RAW, 0}, - {LINK_ID, 5, ZSTR_RF_MODE, UNIT_RAW, 0}, - {LINK_ID, 6, ZSTR_TX_POWER, UNIT_MILLIWATTS, 0}, - {LINK_ID, 7, ZSTR_TX_RSSI, UNIT_DB, 0}, - {LINK_ID, 8, ZSTR_TX_QUALITY, UNIT_PERCENT, 0}, - {LINK_ID, 9, ZSTR_TX_SNR, UNIT_DB, 0}, - {BATTERY_ID, 0, ZSTR_BATT, UNIT_VOLTS, 1}, - {BATTERY_ID, 1, ZSTR_CURR, UNIT_AMPS, 1}, - {BATTERY_ID, 2, ZSTR_CAPACITY, UNIT_MAH, 0}, - {GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LATITUDE, 0}, - {GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LONGITUDE, 0}, - {GPS_ID, 2, ZSTR_GSPD, UNIT_KMH, 1}, - {GPS_ID, 3, ZSTR_HDG, UNIT_DEGREE, 3}, - {GPS_ID, 4, ZSTR_ALT, UNIT_METERS, 0}, - {GPS_ID, 5, ZSTR_SATELLITES, UNIT_RAW, 0}, - {ATTITUDE_ID, 0, ZSTR_PITCH, UNIT_RADIANS, 3}, - {ATTITUDE_ID, 1, ZSTR_ROLL, UNIT_RADIANS, 3}, - {ATTITUDE_ID, 2, ZSTR_YAW, UNIT_RADIANS, 3}, - {FLIGHT_MODE_ID, 0, ZSTR_FLIGHT_MODE, UNIT_TEXT, 0}, - {CF_VARIO_ID, 0, ZSTR_VSPD, UNIT_METERS_PER_SECOND, 2}, - {0, 0, "UNKNOWN", UNIT_RAW, 0}, + {LINK_ID, 0, ZSTR_RX_RSSI1, UNIT_DB, 0}, + {LINK_ID, 1, ZSTR_RX_RSSI2, UNIT_DB, 0}, + {LINK_ID, 2, ZSTR_RX_QUALITY, UNIT_PERCENT, 0}, + {LINK_ID, 3, ZSTR_RX_SNR, UNIT_DB, 0}, + {LINK_ID, 4, ZSTR_ANTENNA, UNIT_RAW, 0}, + {LINK_ID, 5, ZSTR_RF_MODE, UNIT_RAW, 0}, + {LINK_ID, 6, ZSTR_TX_POWER, UNIT_MILLIWATTS, 0}, + {LINK_ID, 7, ZSTR_TX_RSSI, UNIT_DB, 0}, + {LINK_ID, 8, ZSTR_TX_QUALITY, UNIT_PERCENT, 0}, + {LINK_ID, 9, ZSTR_TX_SNR, UNIT_DB, 0}, + {BATTERY_ID, 0, ZSTR_BATT, UNIT_VOLTS, 1}, + {BATTERY_ID, 1, ZSTR_CURR, UNIT_AMPS, 1}, + {BATTERY_ID, 2, ZSTR_CAPACITY, UNIT_MAH, 0}, + {BATTERY_ID, 3, ZSTR_BATT_PERCENT, UNIT_PERCENT, 0}, + {GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LATITUDE, 0}, + {GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LONGITUDE, 0}, + {GPS_ID, 2, ZSTR_GSPD, UNIT_KMH, 1}, + {GPS_ID, 3, ZSTR_HDG, UNIT_DEGREE, 3}, + {GPS_ID, 4, ZSTR_ALT, UNIT_METERS, 0}, + {GPS_ID, 5, ZSTR_SATELLITES, UNIT_RAW, 0}, + {ATTITUDE_ID, 0, ZSTR_PITCH, UNIT_RADIANS, 3}, + {ATTITUDE_ID, 1, ZSTR_ROLL, UNIT_RADIANS, 3}, + {ATTITUDE_ID, 2, ZSTR_YAW, UNIT_RADIANS, 3}, + {FLIGHT_MODE_ID, 0, ZSTR_FLIGHT_MODE, UNIT_TEXT, 0}, + {CF_VARIO_ID, 0, ZSTR_VSPD, UNIT_METERS_PER_SECOND, 2}, + {0, 0, "UNKNOWN", UNIT_RAW, 0}, }; const CrossfireSensor & getCrossfireSensor(uint8_t id, uint8_t subId) @@ -157,6 +158,8 @@ void processCrossfireTelemetryFrame() processCrossfireTelemetryValue(BATT_CURRENT_INDEX, value); if (getCrossfireTelemetryValue<3>(7, value)) processCrossfireTelemetryValue(BATT_CAPACITY_INDEX, value); + if (getCrossfireTelemetryValue<1>(10, value)) + processCrossfireTelemetryValue(BATT_REMAINING_INDEX, value); break; case ATTITUDE_ID: diff --git a/radio/src/telemetry/crossfire.h b/radio/src/telemetry/crossfire.h index 3daed0d57..79cc5f025 100644 --- a/radio/src/telemetry/crossfire.h +++ b/radio/src/telemetry/crossfire.h @@ -64,6 +64,7 @@ enum CrossfireSensorIndexes { BATT_VOLTAGE_INDEX, BATT_CURRENT_INDEX, BATT_CAPACITY_INDEX, + BATT_REMAINING_INDEX, GPS_LATITUDE_INDEX, GPS_LONGITUDE_INDEX, GPS_GROUND_SPEED_INDEX, diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index fe2f4a921..2244f2fe9 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -1199,6 +1199,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 1cfef0aef..98fd1df8e 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -1205,6 +1205,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 9ab4f8725..7620e6bf3 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -1203,6 +1203,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 3d7a70d43..1b5b7c096 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1224,6 +1224,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 241e4fdcb..6bafcb221 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -1212,6 +1212,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 88fa0689f..55548862c 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1227,6 +1227,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 0f5e5b047..b5feb04b8 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1221,6 +1221,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index e67be0298..d28dcbca8 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -1213,6 +1213,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index a52b0da24..dc6a86aac 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1220,6 +1220,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 2d4d6fc71..7b77891c6 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -1209,6 +1209,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 85b31e4d9..8639b0378 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1220,6 +1220,7 @@ #define ZSTR_CURR "Curr" #define ZSTR_CAPACITY "Capa" #define ZSTR_VFAS "VFAS" +#define ZSTR_BATT_PERCENT "Bat%" #define ZSTR_ASPD "ASpd" #define ZSTR_GSPD "GSpd" #define ZSTR_HDG "Hdg"