From 0e19f7701d73f0212d6b1936bafb881520cf548d Mon Sep 17 00:00:00 2001 From: jirif Date: Thu, 14 Sep 2017 12:16:52 +0200 Subject: [PATCH] BEEPER_USB flag will silence the beeper only when battery is really not present (#4121) Partial fox for #4107 --- src/main/io/beeper.c | 2 +- src/main/sensors/battery.c | 9 +++++---- src/main/sensors/battery.h | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/io/beeper.c b/src/main/io/beeper.c index 4f803b430a..5ce73ff074 100755 --- a/src/main/io/beeper.c +++ b/src/main/io/beeper.c @@ -224,7 +224,7 @@ void beeper(beeperMode_e mode) if ( mode == BEEPER_SILENCE || ( (getBeeperOffMask() & (1 << (BEEPER_USB - 1))) - && (batteryConfig()->voltageMeterSource != VOLTAGE_METER_NONE && (getBatteryCellCount() == 0)) + && getBatteryState() == BATTERY_NOT_PRESENT ) ) { beeperSilence(); diff --git a/src/main/sensors/battery.c b/src/main/sensors/battery.c index a0320b3cd4..ed479b0baf 100644 --- a/src/main/sensors/battery.c +++ b/src/main/sensors/battery.c @@ -154,6 +154,7 @@ static void updateBatteryBeeperAlert(void) break; case BATTERY_OK: case BATTERY_NOT_PRESENT: + case BATTERY_INIT: break; } } @@ -168,7 +169,7 @@ void batteryUpdatePresence(void) if ( - voltageState == BATTERY_NOT_PRESENT + (voltageState == BATTERY_NOT_PRESENT || voltageState == BATTERY_INIT) && isVoltageFromBat && isVoltageStable ) { @@ -275,7 +276,7 @@ batteryState_e getBatteryState(void) return batteryState; } -const char * const batteryStateStrings[] = {"OK", "WARNING", "CRITICAL", "NOT PRESENT"}; +const char * const batteryStateStrings[] = {"OK", "WARNING", "CRITICAL", "NOT PRESENT", "INIT"}; const char * getBatteryStateString(void) { @@ -287,13 +288,13 @@ void batteryInit(void) // // presence // - batteryState = BATTERY_NOT_PRESENT; + batteryState = BATTERY_INIT; batteryCellCount = 0; // // voltage // - voltageState = BATTERY_NOT_PRESENT; + voltageState = BATTERY_INIT; batteryWarningVoltage = 0; batteryCriticalVoltage = 0; lowVoltageCutoff.enabled = false; diff --git a/src/main/sensors/battery.h b/src/main/sensors/battery.h index 467b229329..27744df495 100644 --- a/src/main/sensors/battery.h +++ b/src/main/sensors/battery.h @@ -59,7 +59,8 @@ typedef enum { BATTERY_OK = 0, BATTERY_WARNING, BATTERY_CRITICAL, - BATTERY_NOT_PRESENT + BATTERY_NOT_PRESENT, + BATTERY_INIT } batteryState_e; void batteryInit(void);