mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-12 20:08:36 -07:00
Feature: Custom user set charging cap
This commit is contained in:
@@ -472,6 +472,21 @@ 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_cap_suppressing_charging) { // Suppress charging if charge reaches custom cap
|
||||
power->info.is_charge_cap_suppressing_charging = true;
|
||||
furi_hal_power_suppress_charge_enter();
|
||||
}
|
||||
} else {
|
||||
if(power->info.is_charge_cap_suppressing_charging) { // Start charging again if charge below custom cap
|
||||
power->info.is_charge_cap_suppressing_charging = false;
|
||||
furi_hal_power_suppress_charge_exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void power_trigger_ui_update(Power* power) {
|
||||
view_port_update(power->battery_view_port);
|
||||
}
|
||||
@@ -491,6 +506,7 @@ int32_t power_srv(void* p) {
|
||||
}
|
||||
power_auto_shutdown_arm(power);
|
||||
power_update_info(power);
|
||||
power->info.is_charge_cap_suppressing_charging = false; // default false
|
||||
furi_record_create(RECORD_POWER, power);
|
||||
|
||||
while(1) {
|
||||
@@ -506,6 +522,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);
|
||||
|
||||
@@ -48,6 +48,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
bool gauge_is_ok;
|
||||
bool is_charging;
|
||||
bool is_charge_cap_suppressing_charging;
|
||||
|
||||
float current_charger;
|
||||
float current_gauge;
|
||||
|
||||
Reference in New Issue
Block a user