33#ifndef __STATE_MACHINE_H__
34#define __STATE_MACHINE_H__
38#define FIRMWARE_VERSION ("v30923")
uint16_t get_action(void)
Get take action flag.
Definition state_machine.c:1308
charger_state_e
ADE9113 waveorm data.
Definition state_machine.h:45
@ STATE_POWER_ON
Definition state_machine.h:46
@ STATE_RCD_SELF_TEST
Definition state_machine.h:47
@ STATE_B
Definition state_machine.h:49
@ STATE_D
Definition state_machine.h:51
@ STATE_RELAY_OPEN
Definition state_machine.h:52
@ STATE_A
Definition state_machine.h:48
@ STATE_FAULT
Definition state_machine.h:54
@ STATE_CHECK_RELAY
Definition state_machine.h:53
@ STATE_C
Definition state_machine.h:50
void inc_action_flag(void)
Increment take action flag.
Definition state_machine.c:1335
interface_err_status_e
State machine fault condition.
Definition state_machine.h:61
@ INTF_PILOT_ERROR
Definition state_machine.h:77
@ INTF_INPUT_V_ERR_U
Definition state_machine.h:69
@ INTF_NO_ERR
Definition state_machine.h:63
@ INTF_DIODE_ERR
Definition state_machine.h:79
@ INTF_INIT_RCD_ERROR
Definition state_machine.h:75
@ INTF_RCD_ERROR
Definition state_machine.h:73
@ INTF_INPUT_V_ERR
Definition state_machine.h:67
@ INTF_RELAY_ERR
Definition state_machine.h:65
@ INTF_INPUT_V_ERR_O
Definition state_machine.h:71
@ INTF_TEMPERATURE_ERR
Definition state_machine.h:83
@ INTF_OVERCURRENT_ERR
Definition state_machine.h:81
@ INTF_PE_ERROR
Definition state_machine.h:89
void stop_charging(void)
Signal that EV stops charging.
Definition state_machine.c:1353
enum state_machine_events_e state_machine_det_event_cp(struct stout *stout, enum state_machine_events_e event_in)
Determine next state based on CP measurements and previous events.
Definition state_machine.c:910
void set_action_flag(void)
Set take action flag.
Definition state_machine.c:1317
#define LED_NO
Definition state_machine.h:39
void start_charging(void)
Signal that EV starts charging.
Definition state_machine.c:1344
uint8_t car_is_charging(void)
Get charging state.
Definition state_machine.c:1363
int state_machine()
State machine main execution.
Definition state_machine.c:63
enum state_machine_events_e state_machine_det_event_supply(struct stout *stout, enum state_machine_events_e event_in)
Determine next state based on supply measurements and previous events.
Definition state_machine.c:1232
enum state_machine_events_e state_machine_det_event_temperature(struct stout *stout, enum state_machine_events_e event_in)
Determine next state based on temperature measurements and previous events.
Definition state_machine.c:1194
state_machine_events_e
State machine event.
Definition state_machine.h:96
@ S_M_EVSE_READY
Definition state_machine.h:134
@ S_M_CP_ERROR
Definition state_machine.h:108
@ S_M_OVER_TEMPERATURE_1
Definition state_machine.h:158
@ S_M_RCD_TEST_COMPLETED
Definition state_machine.h:112
@ S_M_CHARGING_STOPPED
Definition state_machine.h:132
@ S_M_CHECK_STUCK_RELAY
Definition state_machine.h:144
@ S_M_WAIT_B
Definition state_machine.h:148
@ S_M_DIODE_ERR_CHECK
Definition state_machine.h:150
@ S_M_CHARGING_REQ
Definition state_machine.h:136
@ S_M_DIODE_CHECK_DONE
Definition state_machine.h:152
@ S_M_STOP_CHARGING_2
Definition state_machine.h:142
@ S_M_VENTILATION_REQ
Definition state_machine.h:116
@ S_M_OVERCURRENT_WAIT
Definition state_machine.h:118
@ S_M_UNDERVOLTAGE_WAIT
Definition state_machine.h:156
@ S_M_CHECK_RELAY_PASSED
Definition state_machine.h:146
@ S_M_STOP_CHARGING
Definition state_machine.h:140
@ S_M_DISCONNECTED
Definition state_machine.h:104
@ S_M_RCD_TEST_FAIL
Definition state_machine.h:114
@ S_M_PE_ERROR
Definition state_machine.h:164
@ S_M_OVERCURRENT
Definition state_machine.h:102
@ S_M_RCD_TEST_TRIGGERED
Definition state_machine.h:110
@ S_M_CHARGING_D
Definition state_machine.h:130
@ S_M_INITIAL_CHECK_DONE
Definition state_machine.h:122
@ S_M_DIODE_ERR
Definition state_machine.h:106
@ S_M_CHARGING_START
Definition state_machine.h:138
@ S_M_OVERVOLTAGE
Definition state_machine.h:162
@ S_M_VIN_RECOVER
Definition state_machine.h:154
@ S_M_UNDERVOLTAGE
Definition state_machine.h:98
@ S_M_RCD
Definition state_machine.h:100
@ S_M_OVER_TEMPERATURE_2
Definition state_machine.h:160
@ S_M_EV_CONNECTED
Definition state_machine.h:126
@ S_M_NO_EVENT
Definition state_machine.h:120
@ S_M_WAIT
Definition state_machine.h:124
@ S_M_CHARGING
Definition state_machine.h:128
void reset_action_flag(void)
Reset take action flag.
Definition state_machine.c:1326
ADE9113 Device structure.
Definition ade9113.h:337
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Definition state_machine.h:211
int32_t v2_rms_adc
Definition state_machine.h:224
int32_t v1_rms
Definition state_machine.h:216
int32_t v1_rms_adc
Definition state_machine.h:222
int32_t i_rms_adc
Definition state_machine.h:220
int32_t v2_rms
Definition state_machine.h:218
int32_t i_rms
Definition state_machine.h:214
Structure for Stout machine.
Definition state_machine.h:172
int32_t v1_val
Definition state_machine.h:190
struct no_os_gpio_desc * gpio_rcdac
Definition state_machine.h:206
int32_t i_val
Definition state_machine.h:192
enum interface_err_status_e err_status
Definition state_machine.h:208
struct ade9113_dev * ade9113
Definition state_machine.h:174
uint16_t i_limit
Definition state_machine.h:200
uint16_t i_limit_not_ch
Definition state_machine.h:202
enum charger_state_e current_state
Definition state_machine.h:180
uint32_t pwm_high_val
Definition state_machine.h:186
int32_t v2_val
Definition state_machine.h:188
uint8_t ac_dc
Definition state_machine.h:196
struct no_os_gpio_desc * relay
Definition state_machine.h:176
struct no_os_gpio_desc * gpio_rcddc
Definition state_machine.h:205
uint32_t pwm_low_val
Definition state_machine.h:184
struct no_os_gpio_desc * gpio_led[LED_NO]
Definition state_machine.h:178
enum charger_state_e previous_state
Definition state_machine.h:182
struct no_os_gpio_desc * gpio_rcm_test
Definition state_machine.h:204
int32_t temperature
Definition state_machine.h:194
uint8_t grid
Definition state_machine.h:198