diff --git a/src/LoRa_APRS_Tracker.cpp b/src/LoRa_APRS_Tracker.cpp index 36c9d98..9cf8cce 100644 --- a/src/LoRa_APRS_Tracker.cpp +++ b/src/LoRa_APRS_Tracker.cpp @@ -175,6 +175,12 @@ void loop() { } #endif + if (powerManagement.isChargeing()) { + powerManagement.enableChgLed(); + } else { + powerManagement.disableChgLed(); + } + if (!send_update && gps_loc_update && BeaconMan.getCurrentBeaconConfig()->smart_beacon.active) { uint32_t lastTx = millis() - lastTxTime; currentHeading = gps.course.deg(); diff --git a/src/power_management.cpp b/src/power_management.cpp index 5d2185f..d9527a4 100644 --- a/src/power_management.cpp +++ b/src/power_management.cpp @@ -44,6 +44,16 @@ void PowerManagement::decativateOLED() { axp.setPowerOutPut(AXP192_DCDC1, AXP202_OFF); } +// cppcheck-suppress unusedFunction +void PowerManagement::disableChgLed() { + axp.setChgLEDMode(AXP20X_LED_OFF); +} + +// cppcheck-suppress unusedFunction +void PowerManagement::enableChgLed() { + axp.setChgLEDMode(AXP20X_LED_LOW_LEVEL); +} + // cppcheck-suppress unusedFunction void PowerManagement::activateMeasurement() { axp.adc1Enable(AXP202_BATT_CUR_ADC1 | AXP202_BATT_VOL_ADC1, true); @@ -70,3 +80,7 @@ double PowerManagement::getBatteryChargeDischargeCurrent() { bool PowerManagement::isBatteryConnect() { return axp.isBatteryConnect(); } + +bool PowerManagement::isChargeing() { + return axp.isChargeing(); +} diff --git a/src/power_management.h b/src/power_management.h index c8738fa..73edfbf 100644 --- a/src/power_management.h +++ b/src/power_management.h @@ -18,6 +18,9 @@ public: void activateOLED(); void decativateOLED(); + void enableChgLed(); + void disableChgLed(); + void activateMeasurement(); void deactivateMeasurement(); @@ -25,6 +28,7 @@ public: double getBatteryChargeDischargeCurrent(); bool isBatteryConnect(); + bool isChargeing(); private: AXP20X_Class axp;