From c6eec29dec2e09c41ac0df39ea1c5c8a1979d93a Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 6 Sep 2017 16:35:04 -1000 Subject: [PATCH] sensors:Rework battery connected logic A battery is considered connected when a) V > BOARD_ADC_OPEN_CIRCUIT_V and if BOARD_ADC_OPEN_CIRCUIT_V > BOARD_VALID_UV connected is further qualifed by the Valid signal. --- src/modules/sensors/sensors.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/sensors/sensors.cpp b/src/modules/sensors/sensors.cpp index ca452c46bf..066957e466 100644 --- a/src/modules/sensors/sensors.cpp +++ b/src/modules/sensors/sensors.cpp @@ -545,8 +545,15 @@ Sensors::adc_poll(struct sensor_combined_s &raw) for (int b = 0; b < BOARD_NUMBER_BRICKS; b++) { /* Consider the brick connected if there is a voltage */ + bool connected = bat_voltage_v[b] > BOARD_ADC_OPEN_CIRCUIT_V; - bool connected = bat_voltage_v[b] > 1.5f; + /* In the case where the BOARD_ADC_OPEN_CIRCUIT_V is + * greater than the BOARD_VALID_UV let the HW qualify that it + * is connected. + */ + if (BOARD_ADC_OPEN_CIRCUIT_V > BOARD_VALID_UV) { + connected &= valid_chan[b]; + } actuator_controls_s ctrl; orb_copy(ORB_ID(actuator_controls_0), _actuator_ctrl_0_sub, &ctrl);