Midnight Sun Firmware
Loading...
Searching...
No Matches
rear_controller_state_manager.h
1#pragma once
2
3/***********************************************************************************************
4 * @file rear_controller_state_manager.h
5 *
6 * @brief Rear Controller state machine manager header file
7 *
8 * @date 2025-09-14
9 * @author Midnight Sun Team #24 - MSXVI
10 ***********************************************************************************************/
11
12/* Standard library Headers */
13#include <stdbool.h>
14#include <stdint.h>
15
16/* Inter-component Headers */
17#include "status.h"
18
19/* Intra-component Headers */
20
27typedef enum {
35
36typedef enum {
37 REAR_CONTROLLER_EVENT_NONE = 0,
38 REAR_CONTROLLER_EVENT_INIT_COMPLETE,
39 REAR_CONTROLLER_EVENT_PRECHARGE_SUCCESS,
40 REAR_CONTROLLER_EVENT_PRECHARGE_FAIL,
41 REAR_CONTROLLER_EVENT_DRIVE_REQUEST,
42 REAR_CONTROLLER_EVENT_CHARGE_REQUEST,
43 REAR_CONTROLLER_EVENT_NEUTRAL_REQUEST,
44 REAR_CONTROLLER_EVENT_CHARGER_REMOVED,
45 REAR_CONTROLLER_EVENT_FAULT,
46 REAR_CONTROLLER_EVENT_RESET
47} RearControllerEvent;
48
55
62StatusCode rear_controller_state_manager_step(RearControllerEvent event);
63
69
RearControllerState rear_controller_state_manager_get_state(void)
Get current state.
Definition: rear_controller_state_manager.c:119
StatusCode rear_controller_state_manager_init(void)
Initialize the state machine.
Definition: rear_controller_state_manager.c:54
StatusCode rear_controller_state_manager_step(RearControllerEvent event)
Advance the state machine based on inputs/events.
Definition: rear_controller_state_manager.c:65
RearControllerState
Definition: rear_controller_state_manager.h:27
@ REAR_CONTROLLER_STATE_PRECHARGE
Definition: rear_controller_state_manager.h:29
@ REAR_CONTROLLER_STATE_INIT
Definition: rear_controller_state_manager.h:28
@ REAR_CONTROLLER_STATE_FAULT
Definition: rear_controller_state_manager.h:33
@ REAR_CONTROLLER_STATE_IDLE
Definition: rear_controller_state_manager.h:30
@ REAR_CONTROLLER_STATE_CHARGE
Definition: rear_controller_state_manager.h:32
@ REAR_CONTROLLER_STATE_DRIVE
Definition: rear_controller_state_manager.h:31
StatusCode
StatusCodes for various errors.
Definition: status.h:27