Skip to content

Commit c3d3e81

Browse files
committed
app: src: modules: power: update nrf_fuel_gauge_process usage
Update calls to `nrf_fuel_gauge_process` to match its new API. Also increase the fuel gauge state buffer size to 512 bytes and update the constant `nrf_fuel_gauge_state_size` in tests accordingly. Signed-off-by: Simen S. Røstad <simen.rostad@nordicsemi.no>
1 parent 68ddd68 commit c3d3e81

3 files changed

Lines changed: 24 additions & 8 deletions

File tree

app/src/modules/power/fuel_gauge_state.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414
LOG_MODULE_DECLARE(power, CONFIG_APP_POWER_LOG_LEVEL);
1515

1616
#define FUEL_GAUGE_MAGIC 0x4647534F /* "FGSO" - Fuel Gauge State OK */
17+
#define FUEL_GAUGE_STATE_BUF_SIZE 512
1718

1819
struct fuel_gauge_state {
1920
uint32_t magic; /* Magic number to identify valid state */
2021
uint32_t size; /* Size of state data */
21-
uint8_t state[256]; /* Fuel gauge state buffer */
22+
uint8_t state[FUEL_GAUGE_STATE_BUF_SIZE];
2223
};
2324

2425
/* Place the fuel gauge state in the noinit RAM section.

app/src/modules/power/power.c

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -424,9 +424,14 @@ static int sample_and_process(struct power_state_object *state_object)
424424

425425
delta = (float)k_uptime_delta(&state_object->fuel_gauge_ref_time) / 1000.0f;
426426

427-
state_object->percentage =
428-
nrf_fuel_gauge_process(state_object->voltage, state_object->current,
429-
state_object->temperature, delta, NULL);
427+
err = nrf_fuel_gauge_process(state_object->voltage,
428+
state_object->current,
429+
state_object->temperature, delta,
430+
&state_object->percentage, NULL);
431+
if (err) {
432+
LOG_ERR("nrf_fuel_gauge_process, error: %d", err);
433+
return err;
434+
}
430435

431436
#endif /* CONFIG_MEMFAULT_NRF_PLATFORM_BATTERY_NPM13XX */
432437

@@ -667,8 +672,18 @@ static void power_module_thread(void)
667672
power_state.voltage = parameters.v0;
668673
power_state.current = parameters.i0;
669674
power_state.temperature = parameters.t0;
670-
power_state.percentage =
671-
nrf_fuel_gauge_process(parameters.v0, parameters.i0, parameters.t0, 0.0f, NULL);
675+
676+
err = nrf_fuel_gauge_process(parameters.v0,
677+
parameters.i0,
678+
parameters.t0,
679+
0.0f,
680+
&power_state.percentage,
681+
NULL);
682+
if (err) {
683+
LOG_ERR("nrf_fuel_gauge_process, error: %d", err);
684+
SEND_FATAL_ERROR();
685+
return;
686+
}
672687

673688
/* Set charge current limit and termination current for accurate TTF prediction */
674689
struct sensor_value desired_charge_current;

tests/module/power/src/power_module_test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ DEFINE_FFF_GLOBALS;
2121

2222
FAKE_VALUE_FUNC(int, task_wdt_feed, int);
2323
FAKE_VALUE_FUNC(int, task_wdt_add, uint32_t, task_wdt_callback_t, void *);
24-
FAKE_VALUE_FUNC(float, nrf_fuel_gauge_process, float, float, float, float,
24+
FAKE_VALUE_FUNC(int, nrf_fuel_gauge_process, float, float, float, float, float *,
2525
struct nrf_fuel_gauge_state_info *);
2626
FAKE_VALUE_FUNC(int, nrf_fuel_gauge_init, const struct nrf_fuel_gauge_init_parameters *, float *);
2727
FAKE_VALUE_FUNC(int, date_time_now, int64_t *);
@@ -33,7 +33,7 @@ FAKE_VOID_FUNC(nrf_fuel_gauge_idle_set, float, float, float);
3333
FAKE_VOID_FUNC(lte_lc_register_handler, lte_lc_evt_handler_t);
3434

3535
/* Define nrf_fuel_gauge_state_size for tests (normally provided by the library) */
36-
const size_t nrf_fuel_gauge_state_size = 128;
36+
const size_t nrf_fuel_gauge_state_size = 512;
3737

3838
ZBUS_MSG_SUBSCRIBER_DEFINE(power_subscriber);
3939
ZBUS_CHAN_ADD_OBS(power_chan, power_subscriber, 0);

0 commit comments

Comments
 (0)