--- a/main/task_ina219.c Thu Mar 30 17:05:05 2023 +0200 +++ b/main/task_ina219.c Thu Mar 30 21:55:24 2023 +0200 @@ -15,11 +15,6 @@ extern ina219_t ina219_b_dev; extern ina219_t ina219_s_dev; -extern float s_Volts[I_MAX_LOOPS + 1]; -extern float s_Current[I_MAX_LOOPS + 1]; -extern float b_Volts[I_MAX_LOOPS + 1]; -extern float b_Current[I_MAX_LOOPS + 1]; -extern uint8_t loopno; const int TASK_INA219_REQUEST_DONE = BIT0; ///< All requests are done. const int TASK_INA219_REQUEST_POWER = BIT1; ///< Request power readings @@ -150,6 +145,15 @@ ina219_state->Solar.current = 234.1; } ina219_state->Solar.valid = true; + + /* + * Now update the outer state + */ + ina219_state->valid = (ina219_state->Battery.valid && ina219_state->Solar.valid); + ina219_state->fake = (ina219_state->Battery.fake || ina219_state->Solar.fake); + ina219_state->error = ina219_state->Battery.error; + if (ina219_state->error == 0) + ina219_state->error = ina219_state->Solar.error; xSemaphoreGive(xSemaphoreINA219); }