diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index c863e2ee2..2dc8578f7 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -65,6 +65,9 @@ void processFrskyPXX2Data(uint8_t data) else { createFrSkyPXX2Sensor(BATT_ID, telemetryRxBuffer[2] & 0x7f); } + if((telemetryRxBuffer[3] & 0x04) == 0) { + createFrSkyPXX2Sensor(R9_PWR_ID, (telemetryRxBuffer[3] & 0x03); + } sportProcessTelemetryPacketWithoutCrc(telemetryRxBuffer + 6 /* LEN, TYPE, RSSI/BAT, TP/SS/FW_T, FW_VER, Data ID */); } telemetryRxBufferCount = 0; diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index c2a99d802..7b789edeb 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -192,6 +192,8 @@ enum FrSkyDataState { #define XJT_VERSION_ID 0xf106 #define FUEL_QTY_FIRST_ID 0x0a10 #define FUEL_QTY_LAST_ID 0x0a1f +#define R9_PWR_ID 0xf107 // TODO: *CRITICAL* agree on ID with FrSky, this value is just a placeholder + // 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 0b5224de5..7cc80ff36 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -36,6 +36,7 @@ const FrSkySportSensor sportSensors[] = { { A3_FIRST_ID, A3_LAST_ID, 0, ZSTR_A3, UNIT_VOLTS, 2 }, { A4_FIRST_ID, A4_LAST_ID, 0, ZSTR_A4, UNIT_VOLTS, 2 }, { BATT_ID, BATT_ID, 0, ZSTR_BATT, UNIT_VOLTS, 1 }, + { R9_PWR_ID, R9_PWR_ID, 0, ZSTR_R9PW, UNIT_MILLIWATTS, 0 }, { T1_FIRST_ID, T1_LAST_ID, 0, ZSTR_TEMP1, UNIT_CELSIUS, 0 }, { T2_FIRST_ID, T2_LAST_ID, 0, ZSTR_TEMP2, UNIT_CELSIUS, 0 }, { RPM_FIRST_ID, RPM_LAST_ID, 0, ZSTR_RPM, UNIT_RPMS, 0 }, @@ -154,8 +155,6 @@ void sportProcessTelemetryPacketWithoutCrc(const uint8_t * packet) uint16_t id = *((uint16_t *)(packet+2)); uint32_t data = SPORT_DATA_S32(packet); - TRACE("%x %x %x %x\n", physicalId, primId, id,SPORT_DATA_U8(packet) ); - if (primId == DATA_FRAME) { uint8_t instance = physicalId + 1; if (id == RSSI_ID && isValidIdAndInstance(RSSI_ID, instance)) { @@ -166,6 +165,10 @@ void sportProcessTelemetryPacketWithoutCrc(const uint8_t * packet) else telemetryData.rssi.set(data); } + else if (id == R9_PWR_ID) { + uint32_t r9pwr[] = {100, 200, 500, 1000}; + data = r9pwr[SPORT_DATA_U8(packet) & 0x03]; + } else if (id == XJT_VERSION_ID) { telemetryData.xjtVersion = HUB_DATA_U16(packet); if (!IS_RAS_VALUE_VALID()) { diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 6afecd4cf..232c8042f 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -1182,6 +1182,7 @@ #define TR_JITTER_FILTER "ADC Filtr" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 375b90271..99f732b24 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -1180,6 +1180,7 @@ #define TR_JITTER_FILTER "ADC Filter" // ---------------------------------------------------------------- #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 1a146c9c2..d83e74e5e 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -1190,6 +1190,7 @@ #define TR_JITTER_FILTER "ADC filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 9ad62dbfe..95ea1e70d 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1186,6 +1186,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index edef72c5c..713f76875 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -1172,6 +1172,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index a3e02c61c..e3856eb73 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1198,6 +1198,7 @@ #define TR_JITTER_FILTER "Filtre ADC" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index ab43b7d9f..8440f38c3 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1181,6 +1181,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index c5f7d83fb..47cfbf8ea 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -1188,6 +1188,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index a2ae231d9..a560a2b90 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1182,6 +1182,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index bfebabbd3..6cedfde68 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -1185,6 +1185,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index df237ea5a..e8ae0b8ec 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1195,6 +1195,7 @@ #define TR_JITTER_FILTER "ADC Filter" #define ZSTR_RSSI "RSSI" +#define ZSTR_R9PW "R9PW" #define ZSTR_RAS "SWR" #define ZSTR_A1 "A1" #define ZSTR_A2 "A2"