no-OS
Functions | Variables
state_machine.c File Reference

STOUT state machine implementation file. More...

#include "no_os_print_log.h"
#include "state_machine.h"
#include "no_os_delay.h"
#include "no_os_alloc.h"
#include "common_data.h"
#include "no_os_error.h"
#include "self_test.h"
#include "interface.h"
#include "ade9113.h"
#include "supply.h"
#include "pilot.h"
#include "relay.h"
#include "gpio.h"
#include "rcd.h"
Include dependency graph for state_machine.c:

Functions

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

Variables

uint16_t zcross_cnt
 
uint8_t is_charging
 

Detailed Description

STOUT state machine implementation 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.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

◆ car_is_charging()

uint8_t car_is_charging ( void  )

Get charging state.

Returns
charging state - 1 charging, 0 - not charging

◆ get_action()

uint16_t get_action ( void  )

Get take action flag.

Returns
flag value
Here is the caller graph for this function:

◆ inc_action_flag()

void inc_action_flag ( void  )

Increment take action flag.

Returns
none

◆ reset_action_flag()

void reset_action_flag ( void  )

Reset take action flag.

Returns
none
Here is the caller graph for this function:

◆ set_action_flag()

void set_action_flag ( void  )

Set take action flag.

Returns
none
Here is the caller graph for this function:

◆ start_charging()

void start_charging ( void  )

Signal that EV starts charging.

Returns
none

◆ state_machine()

int state_machine ( )

State machine main execution.

Returns
Result of the example execution. If working correctly, will execute continuously the while(1) loop.
Here is the caller graph for this function:

◆ 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.

Parameters
stout- state machine descriptor
event_in- previous event
Returns
event that took place
Here is the caller graph for this function:

◆ 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.

Parameters
stout- state machine descriptor
event_in- previous event
Returns
event that took place
Here is the caller graph for this function:

◆ 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.

Parameters
stout- state machine descriptor
event_in- previous event
Returns
event that took place
Here is the caller graph for this function:

◆ stop_charging()

void stop_charging ( void  )

Signal that EV stops charging.

Returns
none
Here is the caller graph for this function:

Variable Documentation

◆ is_charging

uint8_t is_charging

◆ zcross_cnt

uint16_t zcross_cnt