From 50d287a9d42b679396595871b7435fc253906c07 Mon Sep 17 00:00:00 2001 From: "thomas.bridi" Date: Thu, 23 Aug 2018 13:09:51 +0200 Subject: [PATCH 1/3] feat:add average cell voltage in CRSF telemetry --- src/main/telemetry/crsf.c | 6 +++++- src/test/unit/telemetry_crsf_msp_unittest.cc | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/telemetry/crsf.c b/src/main/telemetry/crsf.c index 76e4a1f07d..f789b81fbf 100644 --- a/src/main/telemetry/crsf.c +++ b/src/main/telemetry/crsf.c @@ -200,7 +200,11 @@ void crsfFrameBatterySensor(sbuf_t *dst) // use sbufWrite since CRC does not include frame length sbufWriteU8(dst, CRSF_FRAME_BATTERY_SENSOR_PAYLOAD_SIZE + CRSF_FRAME_LENGTH_TYPE_CRC); sbufWriteU8(dst, CRSF_FRAMETYPE_BATTERY_SENSOR); - sbufWriteU16BigEndian(dst, getBatteryVoltage()); // vbat is in units of 0.1V + if (telemetryConfig()->report_cell_voltage) { + sbufWriteU16BigEndian(dst, getBatteryAverageCellVoltage()); // vbat is in units of 0.1V + } else { + sbufWriteU16BigEndian(dst, getBatteryVoltage()); + } sbufWriteU16BigEndian(dst, getAmperage() / 10); const uint32_t mAhDrawn = getMAhDrawn(); const uint8_t batteryRemainingPercentage = calculateBatteryPercentageRemaining(); diff --git a/src/test/unit/telemetry_crsf_msp_unittest.cc b/src/test/unit/telemetry_crsf_msp_unittest.cc index dc6606b62d..51ee02c40f 100644 --- a/src/test/unit/telemetry_crsf_msp_unittest.cc +++ b/src/test/unit/telemetry_crsf_msp_unittest.cc @@ -69,6 +69,7 @@ extern "C" { int sbufBytesRemaining(sbuf_t *buf); void initSharedMsp(); uint16_t testBatteryVoltage = 0; + uint16_t testAvgCellVoltage = 0; int32_t testAmperage = 0; uint8_t mspTxData[64]; //max frame size sbuf_t mspTxDataBuf; @@ -259,6 +260,9 @@ extern "C" { uint16_t getBatteryVoltage(void) { return testBatteryVoltage; } + uint16_t getBatteryAverageCellVoltage(void) { + return testAvgCellVoltage; + } bool isAmperageConfigured(void) { return true; } int32_t getAmperage(void) { return testAmperage; From 8eccc325ae562506dbbcc65ec0b07c530db420a6 Mon Sep 17 00:00:00 2001 From: thomasbridi Date: Thu, 23 Aug 2018 15:27:47 +0200 Subject: [PATCH 2/3] Fix:remove unused variable --- src/test/unit/telemetry_crsf_msp_unittest.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/unit/telemetry_crsf_msp_unittest.cc b/src/test/unit/telemetry_crsf_msp_unittest.cc index 51ee02c40f..fe6f65d614 100644 --- a/src/test/unit/telemetry_crsf_msp_unittest.cc +++ b/src/test/unit/telemetry_crsf_msp_unittest.cc @@ -69,7 +69,7 @@ extern "C" { int sbufBytesRemaining(sbuf_t *buf); void initSharedMsp(); uint16_t testBatteryVoltage = 0; - uint16_t testAvgCellVoltage = 0; + int32_t testAmperage = 0; uint8_t mspTxData[64]; //max frame size sbuf_t mspTxDataBuf; @@ -261,7 +261,7 @@ extern "C" { return testBatteryVoltage; } uint16_t getBatteryAverageCellVoltage(void) { - return testAvgCellVoltage; + return 0; } bool isAmperageConfigured(void) { return true; } int32_t getAmperage(void) { From 1a67f5da17e75a61b28bf426c5fe6a6a88986c40 Mon Sep 17 00:00:00 2001 From: "thomas.bridi" Date: Mon, 27 Aug 2018 18:28:06 +0200 Subject: [PATCH 3/3] fix: missing test --- src/test/unit/telemetry_crsf_msp_unittest.cc | 3 +-- src/test/unit/telemetry_crsf_unittest.cc | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/unit/telemetry_crsf_msp_unittest.cc b/src/test/unit/telemetry_crsf_msp_unittest.cc index 51ee02c40f..10b63aff74 100644 --- a/src/test/unit/telemetry_crsf_msp_unittest.cc +++ b/src/test/unit/telemetry_crsf_msp_unittest.cc @@ -69,7 +69,6 @@ extern "C" { int sbufBytesRemaining(sbuf_t *buf); void initSharedMsp(); uint16_t testBatteryVoltage = 0; - uint16_t testAvgCellVoltage = 0; int32_t testAmperage = 0; uint8_t mspTxData[64]; //max frame size sbuf_t mspTxDataBuf; @@ -261,7 +260,7 @@ extern "C" { return testBatteryVoltage; } uint16_t getBatteryAverageCellVoltage(void) { - return testAvgCellVoltage; + return 0; } bool isAmperageConfigured(void) { return true; } int32_t getAmperage(void) { diff --git a/src/test/unit/telemetry_crsf_unittest.cc b/src/test/unit/telemetry_crsf_unittest.cc index b3670102c8..4c7a944c91 100644 --- a/src/test/unit/telemetry_crsf_unittest.cc +++ b/src/test/unit/telemetry_crsf_unittest.cc @@ -322,6 +322,10 @@ uint16_t getBatteryVoltage(void) { return testBatteryVoltage; } +uint16_t getBatteryAverageCellVoltage(void) { + return 0; +} + batteryState_e getBatteryState(void) { return BATTERY_OK; }