From 1ad35dae2bba61e79d441ec737c036772e62eec3 Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Fri, 11 Jun 2021 22:35:07 +0200 Subject: [PATCH] Print (dis)charge FSM state changes --- src/charge_control.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/charge_control.c b/src/charge_control.c index 566d624..4c8619c 100644 --- a/src/charge_control.c +++ b/src/charge_control.c @@ -5,10 +5,27 @@ #include "power_switch.h" #include "measurement.h" #include "charge_pump.h" +#include "rs485.h" #include "config.h" #include "charge_control.h" +static const char *CHARGE_STATE_TEXT[] = { + "WAIT_CHARGEPUMP", + "INITIAL", + "TRANSITION", + "FLOAT", + "SLEEP", + "HIGH_TEMPERATURE" +}; + +static const char *DISCHARGE_STATE_TEXT[] = { + "WAIT_CHARGEPUMP", + "OK", + "VOLTAGE_LOW", + "OVERCURRENT" +}; + static enum ChargeState charge_state; static enum DischargeState discharge_state; @@ -91,10 +108,16 @@ void charge_control_update(uint64_t uptime_ms, struct MeasurementResult *meas) enum DischargeState last_discharge_state = discharge_state; if(charge_state_entered) { + rs485_enqueue("STATE:CHARGE:"); + rs485_enqueue(CHARGE_STATE_TEXT[charge_state]); + rs485_enqueue("\n"); charge_state_entered_timestamp = uptime_ms; } if(discharge_state_entered) { + rs485_enqueue("STATE:DISCHG:"); + rs485_enqueue(DISCHARGE_STATE_TEXT[discharge_state]); + rs485_enqueue("\n"); discharge_state_entered_timestamp = uptime_ms; }