no-OS
Loading...
Searching...
No Matches
state_machine.h File Reference

STOUT state machine header file. More...

#include <stdint.h>
Include dependency graph for state_machine.h:

Classes

struct  stout
 Structure for Stout machine. More...
 
struct  rms_adc_values
 

Macros

#define FIRMWARE_VERSION   ("v30923")
 
#define LED_NO   (4u)
 

Enumerations

enum  charger_state_e {
  STATE_POWER_ON = 0 ,
  STATE_RCD_SELF_TEST ,
  STATE_A ,
  STATE_B ,
  STATE_C ,
  STATE_D ,
  STATE_RELAY_OPEN ,
  STATE_CHECK_RELAY ,
  STATE_FAULT
}
 ADE9113 waveorm data. More...
 
enum  interface_err_status_e {
  INTF_NO_ERR = 0 ,
  INTF_RELAY_ERR ,
  INTF_INPUT_V_ERR ,
  INTF_INPUT_V_ERR_U ,
  INTF_INPUT_V_ERR_O ,
  INTF_RCD_ERROR ,
  INTF_INIT_RCD_ERROR ,
  INTF_PILOT_ERROR ,
  INTF_DIODE_ERR ,
  INTF_OVERCURRENT_ERR ,
  INTF_TEMPERATURE_ERR ,
  INTF_PE_ERROR
}
 State machine fault condition. More...
 
enum  state_machine_events_e {
  S_M_UNDERVOLTAGE = 0 ,
  S_M_RCD ,
  S_M_OVERCURRENT ,
  S_M_DISCONNECTED ,
  S_M_DIODE_ERR ,
  S_M_CP_ERROR ,
  S_M_RCD_TEST_TRIGGERED ,
  S_M_RCD_TEST_COMPLETED ,
  S_M_RCD_TEST_FAIL ,
  S_M_VENTILATION_REQ ,
  S_M_OVERCURRENT_WAIT ,
  S_M_NO_EVENT ,
  S_M_INITIAL_CHECK_DONE ,
  S_M_WAIT ,
  S_M_EV_CONNECTED ,
  S_M_CHARGING ,
  S_M_CHARGING_D ,
  S_M_CHARGING_STOPPED ,
  S_M_EVSE_READY ,
  S_M_CHARGING_REQ ,
  S_M_CHARGING_START ,
  S_M_STOP_CHARGING ,
  S_M_STOP_CHARGING_2 ,
  S_M_CHECK_STUCK_RELAY ,
  S_M_CHECK_RELAY_PASSED ,
  S_M_WAIT_B ,
  S_M_DIODE_ERR_CHECK ,
  S_M_DIODE_CHECK_DONE ,
  S_M_VIN_RECOVER ,
  S_M_UNDERVOLTAGE_WAIT ,
  S_M_OVER_TEMPERATURE_1 ,
  S_M_OVER_TEMPERATURE_2 ,
  S_M_OVERVOLTAGE ,
  S_M_PE_ERROR
}
 State machine event. More...
 

Functions

int state_machine ()
 State machine main execution.
 
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.
 
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.
 
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.
 
uint16_t get_action (void)
 Get take action flag.
 
void set_action_flag (void)
 Set take action flag.
 
void reset_action_flag (void)
 Reset take action flag.
 
void inc_action_flag (void)
 Increment take action flag.
 
void start_charging (void)
 Signal that EV starts charging.
 
void stop_charging (void)
 Signal that EV stops charging.
 
uint8_t car_is_charging (void)
 Get charging state.
 

Detailed Description

STOUT state machine header file.

Author
GMois (georg.nosp@m.e.mo.nosp@m.is@an.nosp@m.alog.nosp@m..com), REtz (radu..nosp@m.etz@.nosp@m.analo.nosp@m.g.co.nosp@m.m)

Copyright (c) 2023 Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Macro Definition Documentation

◆ FIRMWARE_VERSION

#define FIRMWARE_VERSION   ("v30923")

◆ LED_NO

#define LED_NO   (4u)

Enumeration Type Documentation

◆ charger_state_e

ADE9113 waveorm data.

Enumerator
STATE_POWER_ON 
STATE_RCD_SELF_TEST 
STATE_A 
STATE_B 
STATE_C 
STATE_D 
STATE_RELAY_OPEN 
STATE_CHECK_RELAY 
STATE_FAULT 

◆ interface_err_status_e

State machine fault condition.

Enumerator
INTF_NO_ERR 
INTF_RELAY_ERR 
INTF_INPUT_V_ERR 
INTF_INPUT_V_ERR_U 
INTF_INPUT_V_ERR_O 
INTF_RCD_ERROR 
INTF_INIT_RCD_ERROR 
INTF_PILOT_ERROR 
INTF_DIODE_ERR 
INTF_OVERCURRENT_ERR 
INTF_TEMPERATURE_ERR 
INTF_PE_ERROR 

◆ state_machine_events_e

State machine event.

Enumerator
S_M_UNDERVOLTAGE 
S_M_RCD 
S_M_OVERCURRENT 
S_M_DISCONNECTED 
S_M_DIODE_ERR 
S_M_CP_ERROR 
S_M_RCD_TEST_TRIGGERED 
S_M_RCD_TEST_COMPLETED 
S_M_RCD_TEST_FAIL 
S_M_VENTILATION_REQ 
S_M_OVERCURRENT_WAIT 
S_M_NO_EVENT 
S_M_INITIAL_CHECK_DONE 
S_M_WAIT 
S_M_EV_CONNECTED 
S_M_CHARGING 
S_M_CHARGING_D 
S_M_CHARGING_STOPPED 
S_M_EVSE_READY 
S_M_CHARGING_REQ 
S_M_CHARGING_START 
S_M_STOP_CHARGING 
S_M_STOP_CHARGING_2 
S_M_CHECK_STUCK_RELAY 
S_M_CHECK_RELAY_PASSED 
S_M_WAIT_B 
S_M_DIODE_ERR_CHECK 
S_M_DIODE_CHECK_DONE 
S_M_VIN_RECOVER 
S_M_UNDERVOLTAGE_WAIT 
S_M_OVER_TEMPERATURE_1 
S_M_OVER_TEMPERATURE_2 
S_M_OVERVOLTAGE 
S_M_PE_ERROR 

Function Documentation

◆ car_is_charging()

uint8_t car_is_charging ( void )

Get charging state.

Get charging state

Returns
charging state - 1 charging, 0 - not charging

◆ get_action()

uint16_t get_action ( void )

Get take action flag.

Get take action flag

Returns
flag value

◆ inc_action_flag()

void inc_action_flag ( void )

Increment take action flag.

Increment take action flag

◆ reset_action_flag()

void reset_action_flag ( void )

Reset take action flag.

Reset take action flag

◆ set_action_flag()

void set_action_flag ( void )

Set take action flag.

Set take action flag

◆ start_charging()

void start_charging ( void )

Signal that EV starts charging.

Signal that EV starts charging

◆ state_machine()

int state_machine ( )

State machine main execution.

Main routine

Returns
Result of the example execution. If working correctly, will execute continuously the while(1) loop.

◆ state_machine_det_event_cp()

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.

Determine next state, CP measurements

Parameters
stout- state machine descriptor
event_in- previous event
Returns
event that took place

◆ state_machine_det_event_supply()

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.

Determine next state, supply measurements

Parameters
stout- state machine descriptor
event_in- previous event
Returns
event that took place

◆ state_machine_det_event_temperature()

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.

Determine next state, temperature measurements

Parameters
stout- state machine descriptor
event_in- previous event
Returns
event that took place

◆ stop_charging()

void stop_charging ( void )

Signal that EV stops charging.

Signal that EV stops charging