From 763d95dd4f995ca9746d435bb0304f6644f293f0 Mon Sep 17 00:00:00 2001 From: kopecdav Date: Wed, 23 Apr 2025 12:48:11 +0200 Subject: [PATCH] feat(core): Add SoC settter to fuel gauge library [no changelog] --- core/embed/sys/powerctl/fuel_gauge/fuel_gauge.c | 6 ++++++ core/embed/sys/powerctl/fuel_gauge/fuel_gauge.h | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.c b/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.c index a1b89e22fb..6bb0e2b370 100644 --- a/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.c +++ b/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.c @@ -40,6 +40,12 @@ void fuel_gauge_reset(fuel_gauge_state_t* state) { state->soc_latched = 0.0f; } +void fuel_gauge_set_soc(fuel_gauge_state_t* state, float soc) { + // Set SOC directly + state->soc = soc; + state->soc_latched = soc; +} + void fuel_gauge_initial_guess(fuel_gauge_state_t* state, float voltage_V, float current_mA, float temperature) { // Determine if we're in discharge mode diff --git a/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.h b/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.h index 6c8d45691e..ae8f665068 100644 --- a/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.h +++ b/core/embed/sys/powerctl/fuel_gauge/fuel_gauge.h @@ -54,6 +54,13 @@ void fuel_gauge_init(fuel_gauge_state_t* state, float R, float Q, */ void fuel_gauge_reset(fuel_gauge_state_t* state); +/** + * Set SOC directly + * @param state Pointer to EKF state structure + * @param soc State of charge (0.0 to 1.0) + */ +void fuel_gauge_set_soc(fuel_gauge_state_t* state, float soc); + /** * Make initial SOC guess based on OCV * @param state Pointer to EKF state structure