Revert "Revert "Feature: Custom user set charging cap (#265)""

This reverts commit 31f624d662.
This commit is contained in:
Willy-JL
2023-05-31 17:33:05 +01:00
parent 4c86f7b2fb
commit a3b4defa44
5 changed files with 47 additions and 0 deletions

View File

@@ -472,6 +472,20 @@ static void power_check_battery_level_change(Power* power) {
}
}
static void power_check_charge_cap(Power* power) {
if(power->info.charge >= XTREME_SETTINGS()->charge_cap) {
if(!power->info.is_charge_capped) { // Suppress charging if charge reaches custom cap
power->info.is_charge_capped = true;
furi_hal_power_suppress_charge_enter();
}
} else {
if(power->info.is_charge_capped) { // Start charging again if charge below custom cap
power->info.is_charge_capped = false;
furi_hal_power_suppress_charge_exit();
}
}
}
void power_trigger_ui_update(Power* power) {
view_port_update(power->battery_view_port);
}
@@ -491,6 +505,7 @@ int32_t power_srv(void* p) {
}
power_auto_shutdown_arm(power);
power_update_info(power);
power->info.is_charge_capped = false; // default false
furi_record_create(RECORD_POWER, power);
while(1) {
@@ -506,6 +521,9 @@ int32_t power_srv(void* p) {
// Check and notify about battery level change
power_check_battery_level_change(power);
// Check charge cap, compare with user setting and suppress/unsuppress charging
power_check_charge_cap(power);
// Update battery view port
if(need_refresh) {
view_port_update(power->battery_view_port);

View File

@@ -48,6 +48,7 @@ typedef struct {
typedef struct {
bool gauge_is_ok;
bool is_charging;
bool is_charge_capped;
float current_charger;
float current_gauge;