Midnight Sun Firmware
Loading...
Searching...
No Matches
global_enums.h
1#pragma once
2
3/************************************************************************************************
4 * @file global_enums.h
5 *
6 * @brief Header file for global enums which are exported between projects with CAN
7 *
8 * @date 2025-01-12
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdint.h>
14
15/* Inter-component Headers */
16
17/* Intra-component Headers */
18
25/************************************************************************************************
26 * Shared Global definitions
27 ************************************************************************************************/
28
32typedef enum {
38 /* Extra drive state types used only by motor */
39
43 VEHICLE_DRIVE_NUM_STATES,
45
49static const char *vehicle_drive_state_strings[VEHICLE_DRIVE_NUM_STATES] = {
52};
53
54#define VEHICLE_DRIVE_STATE_TO_STR(s) (((s) < VEHICLE_DRIVE_NUM_STATES) ? vehicle_drive_state_strings[(s)] : "UNKNOWN")
55
59typedef enum {
65
69#define GLOBAL_SIGNAL_LIGHTS_BLINK_PERIOD_MS 400U
70#define GLOBAL_BPS_LIGHTS_BLINK_PERIOD_MS 200U
71
72/************************************************************************************************
73 * Rear Controller Global Definitions
74 ************************************************************************************************/
75
79typedef enum {
91 NUM_BPS_FAULTS
92} BpsFault;
93
95#define BPS_FAULT_OVERVOLTAGE_MASK (1U << BPS_FAULT_OVERVOLTAGE)
97#define BPS_FAULT_UNBALANCE_MASK (1U << BPS_FAULT_UNBALANCE)
99#define BPS_FAULT_OVERTEMP_AMBIENT_MASK (1U << BPS_FAULT_OVERTEMP_AMBIENT)
101#define BPS_FAULT_COMMS_LOSS_AFE_MASK (1U << BPS_FAULT_COMMS_LOSS_AFE)
103#define BPS_FAULT_COMMS_LOSS_CURR_SENSE_MASK (1U << BPS_FAULT_COMMS_LOSS_CURR_SENSE)
105#define BPS_FAULT_OVERTEMP_CELL_MASK (1U << BPS_FAULT_OVERTEMP_CELL)
107#define BPS_FAULT_OVERCURRENT_MASK (1U << BPS_FAULT_OVERCURRENT)
109#define BPS_FAULT_UNDERVOLTAGE_MASK (1U << BPS_FAULT_UNDERVOLTAGE)
111#define BPS_FAULT_KILLSWITCH_MASK (1U << BPS_FAULT_KILLSWITCH)
113#define BPS_FAULT_RELAY_CLOSE_FAILED_MASK (1U << BPS_FAULT_RELAY_CLOSE_FAILED)
115#define BPS_FAULT_DISCONNECTED_MASK (1U << BPS_FAULT_DISCONNECTED)
116
118#define BPS_FAULT_HIGH_PRIORITY_MASK (1U << 15U)
120#define BPS_FAULT_LOW_PRIORITY_MASK (1U << 14U)
121
122/************************************************************************************************
123 * Steering Global Definitions
124 ************************************************************************************************/
125
129typedef enum {
136
140static const char *steering_light_state_strings[STEERING_LIGHTS_NUM_STATES] = { "OFF", "LEFT", "RIGHT", "HAZARD" };
141
142#define STEERING_LIGHT_STATE_TO_STR(s) (((s) < STEERING_LIGHTS_NUM_STATES) ? steering_light_state_strings[(s)] : "UNKNOWN")
143
144typedef enum {
149
153typedef enum {
158
160#define STEERING_CC_INCREASE_MASK (1U << EE_STEERING_CC_INCREASE_BIT)
162#define STEERING_CC_DECREASE_MASK (1U << EE_STEERING_CC_DECREASE_BIT)
164#define STEERING_CC_TOGGLE_MASK (1U << EE_STEERING_CC_TOGGLE_BIT)
165
166/************************************************************************************************
167 * Power Distribution Global Definitions
168 ************************************************************************************************/
169
173typedef enum {
179
PDPowerState
Power distribution power state definitions.
Definition: global_enums.h:173
SteeringLightState
Steering lights definitions.
Definition: global_enums.h:129
VehicleDriveState
Vehicle drive states.
Definition: global_enums.h:32
SteeringCruiseControl
Steering cruise control definitions.
Definition: global_enums.h:153
static const char * vehicle_drive_state_strings[VEHICLE_DRIVE_NUM_STATES]
LUT + Macro to help print vehicle drive states.
Definition: global_enums.h:49
BpsLightState
Definition: global_enums.h:144
static const char * steering_light_state_strings[STEERING_LIGHTS_NUM_STATES]
LUT + Macro to help print steering light states.
Definition: global_enums.h:140
VehiclePowerStates
Vehicle power states.
Definition: global_enums.h:59
BpsFault
Battery fault definitions.
Definition: global_enums.h:79
@ EE_POWER_PRECHARGE_STATE
Definition: global_enums.h:175
@ EE_POWER_OFF_STATE
Definition: global_enums.h:174
@ EE_POWER_DRIVE_STATE
Definition: global_enums.h:176
@ EE_POWER_FAULT_STATE
Definition: global_enums.h:177
@ STEERING_LIGHTS_LEFT_STATE
Definition: global_enums.h:131
@ STEERING_LIGHTS_HAZARD_STATE
Definition: global_enums.h:133
@ STEERING_LIGHTS_NUM_STATES
Definition: global_enums.h:134
@ STEERING_LIGHTS_RIGHT_STATE
Definition: global_enums.h:132
@ STEERING_LIGHTS_OFF_STATE
Definition: global_enums.h:130
@ VEHICLE_DRIVE_STATE_REGEN
Definition: global_enums.h:42
@ VEHICLE_DRIVE_STATE_NEUTRAL
Definition: global_enums.h:34
@ VEHICLE_DRIVE_STATE_DRIVE
Definition: global_enums.h:35
@ VEHICLE_DRIVE_STATE_BRAKE
Definition: global_enums.h:41
@ VEHICLE_DRIVE_STATE_CRUISE
Definition: global_enums.h:40
@ VEHICLE_DRIVE_STATE_INVALID
Definition: global_enums.h:33
@ VEHICLE_DRIVE_STATE_REVERSE
Definition: global_enums.h:36
@ STEERING_CRUISE_CONTROL_INCREASE_BIT
Definition: global_enums.h:155
@ STEERING_CRUISE_CONTROL_TOGGLE_BIT
Definition: global_enums.h:156
@ STEERING_CRUISE_CONTROL_DECREASE_BIT
Definition: global_enums.h:154
@ NUM_BPS_LIGHT_STATES
Definition: global_enums.h:147
@ BPS_LIGHT_ON_STATE
Definition: global_enums.h:145
@ BPS_LIGHT_OFF_STATE
Definition: global_enums.h:146
@ VEHICLE_POWER_STATE_CHARGE
Definition: global_enums.h:62
@ VEHICLE_POWER_STATE_DRIVE
Definition: global_enums.h:61
@ VEHICLE_POWER_STATE_IDLE
Definition: global_enums.h:60
@ VEHICLE_POWER_STATE_FAULT
Definition: global_enums.h:63
@ BPS_FAULT_UNDERVOLTAGE
Definition: global_enums.h:87
@ BPS_FAULT_UNBALANCE
Definition: global_enums.h:81
@ BPS_FAULT_DISCONNECTED
Definition: global_enums.h:90
@ BPS_FAULT_KILLSWITCH
Definition: global_enums.h:88
@ BPS_FAULT_OVERVOLTAGE
Definition: global_enums.h:80
@ BPS_FAULT_OVERTEMP_AMBIENT
Definition: global_enums.h:82
@ BPS_FAULT_OVERCURRENT
Definition: global_enums.h:86
@ BPS_FAULT_COMMS_LOSS_AFE
Definition: global_enums.h:83
@ BPS_FAULT_OVERTEMP_CELL
Definition: global_enums.h:85
@ BPS_FAULT_COMMS_LOSS_CURR_SENSE
Definition: global_enums.h:84
@ BPS_FAULT_RELAY_CLOSE_FAILED
Definition: global_enums.h:89