From e3dce9f705301ed0eecc4042ae2890803123c588 Mon Sep 17 00:00:00 2001 From: borisbstyle Date: Mon, 22 Feb 2016 11:55:33 +0100 Subject: [PATCH] Configurable VFAS cell/full voltage --- src/main/config/config.c | 1 + src/main/io/serial_cli.c | 1 + src/main/telemetry/smartport.c | 8 +++++++- src/main/telemetry/telemetry.h | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/config/config.c b/src/main/config/config.c index 614923e87a..df6927dfc7 100755 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -249,6 +249,7 @@ void resetTelemetryConfig(telemetryConfig_t *telemetryConfig) telemetryConfig->frsky_coordinate_format = FRSKY_FORMAT_DMS; telemetryConfig->frsky_unit = FRSKY_UNIT_METRICS; telemetryConfig->frsky_vfas_precision = 0; + telemetryConfig->frsky_vfas_cell_voltage = 0; telemetryConfig->hottAlarmSoundInterval = 5; } diff --git a/src/main/io/serial_cli.c b/src/main/io/serial_cli.c index b5fe24da90..c309c7fa85 100644 --- a/src/main/io/serial_cli.c +++ b/src/main/io/serial_cli.c @@ -575,6 +575,7 @@ const clivalue_t valueTable[] = { { "frsky_coordinates_format", VAR_UINT8 | MASTER_VALUE, &masterConfig.telemetryConfig.frsky_coordinate_format, .config.minmax = { 0, FRSKY_FORMAT_NMEA } }, { "frsky_unit", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.telemetryConfig.frsky_unit, .config.lookup = { TABLE_UNIT } }, { "frsky_vfas_precision", VAR_UINT8 | MASTER_VALUE, &masterConfig.telemetryConfig.frsky_vfas_precision, .config.minmax = { FRSKY_VFAS_PRECISION_LOW, FRSKY_VFAS_PRECISION_HIGH } }, + { "frsky_vfas_cell_voltage", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.telemetryConfig.frsky_vfas_cell_voltage, .config.lookup = { TABLE_OFF_ON } }, { "hott_alarm_sound_interval", VAR_UINT8 | MASTER_VALUE, &masterConfig.telemetryConfig.hottAlarmSoundInterval, .config.minmax = { 0, 120 } }, { "battery_capacity", VAR_UINT16 | MASTER_VALUE, &masterConfig.batteryConfig.batteryCapacity, .config.minmax = { 0, 20000 } }, diff --git a/src/main/telemetry/smartport.c b/src/main/telemetry/smartport.c index 72e0f908d1..281b44dc93 100644 --- a/src/main/telemetry/smartport.c +++ b/src/main/telemetry/smartport.c @@ -326,7 +326,13 @@ void handleSmartPortTelemetry(void) #endif case FSSP_DATAID_VFAS : if (feature(FEATURE_VBAT)) { - smartPortSendPackage(id, (vbat / batteryCellCount) * 10); // given in 0.1V, convert to volts + uint16_t vfasVoltage; + if (telemetryConfig->frsky_vfas_cell_voltage) { + vfasVoltage = vbat / batteryCellCount; + } else { + vfasVoltage = vbat; + } + smartPortSendPackage(id, vfasVoltage * 10); // given in 0.1V, convert to volts smartPortHasRequest = 0; } break; diff --git a/src/main/telemetry/telemetry.h b/src/main/telemetry/telemetry.h index 7c8993bda6..c53a15776c 100644 --- a/src/main/telemetry/telemetry.h +++ b/src/main/telemetry/telemetry.h @@ -44,6 +44,7 @@ typedef struct telemetryConfig_s { frskyGpsCoordFormat_e frsky_coordinate_format; frskyUnit_e frsky_unit; uint8_t frsky_vfas_precision; + uint8_t frsky_vfas_cell_voltage; uint8_t hottAlarmSoundInterval; } telemetryConfig_t;