41 VEHICLE_DRIVE_NUM_STATES,
52#define VEHICLE_DRIVE_STATE_TO_STR(s) (((s) < VEHICLE_DRIVE_NUM_STATES) ? vehicle_drive_state_strings[(s)] : "UNKNOWN")
67#define GLOBAL_SIGNAL_LIGHTS_BLINK_PERIOD_MS 400U
68#define GLOBAL_BPS_LIGHTS_BLINK_PERIOD_MS 200U
75 ERROR_FLAG_HARDWARE_OVERCURRENT = 0,
76 ERROR_FLAG_SOFTWARE_OVERCURRENT = 1,
77 ERROR_FLAG_DC_BUS_OV = 2,
78 ERROR_FLAG_BAD_HALL_SEQUENCE = 3,
79 ERROR_FLAG_WATCHDOG_CAUSED_RESET = 4,
80 ERROR_FLAG_CFG_READ_ERROR = 6,
82 ERROR_FLAG_DESATURATION_FAULT = 7,
83 ERROR_FLAG_MOTOR_OVER_SPEED = 8,
84 LIMIT_FLAG_OUTPUT_VOLTAGE_PWM = 9,
85 LIMIT_FLAG_MOTOR_CURRENT = 10,
86 LIMIT_FLAG_VELOCITY = 11,
87 LIMIT_FLAG_BUS_CURRENT = 12,
88 LIMIT_FLAG_BUS_VOLTAGE_UPPER = 13,
89 LIMIT_FLAG_BUS_VOLTAGE_LOWER = 14,
90 LIMIT_FLAG_TEMPERATURE = 15,
95#define ERROR_FLAG_HARDWARE_OVERCURRENT_MASK (1U << ERROR_FLAG_HARDWARE_OVERCURRENT)
97#define ERROR_FLAG_SOFTWARE_OVERCURRENT_MASK (1U << ERROR_FLAG_SOFTWARE_OVERCURRENT)
99#define ERROR_FLAG_DC_BUS_OV_MASK (1U << ERROR_FLAG_DC_BUS_OV)
101#define ERROR_FLAG_BAD_HALL_SEQUENCE_MASK (1U << ERROR_FLAG_BAD_HALL_SEQUENCE)
103#define ERROR_FLAG_WATCHDOG_CAUSED_RESET_MASK (1U << ERROR_FLAG_WATCHDOG_CAUSED_RESET)
105#define ERROR_FLAG_CFG_READ_ERROR_MASK (1U << ERROR_FLAG_CFG_READ_ERROR)
107#define ERROR_FLAG_UVLO_MASK (1U << ERROR_FLAG_UVLO)
109#define ERROR_FLAG_DESATURATION_FAULT_MASK (1U << ERROR_FLAG_DESATURATION_FAULT)
111#define ERROR_FLAG_MOTOR_OVER_SPEED_MASK (1U << ERROR_FLAG_MOTOR_OVER_SPEED)
113#define LIMIT_FLAG_OUTPUT_VOLTAGE_PWM_MASK (1U << LIMIT_FLAG_OUTPUT_VOLTAGE_PWM)
115#define LIMIT_FLAG_MOTOR_CURRENT_MASK (1U << LIMIT_FLAG_MOTOR_CURRENT)
117#define LIMIT_FLAG_VELOCITY_MASK (1U << LIMIT_FLAG_VELOCITY)
119#define LIMIT_FLAG_BUS_CURRENT_MASK (1U << LIMIT_FLAG_BUS_CURRENT)
121#define LIMIT_FLAG_BUS_VOLTAGE_UPPER_MASK (1U << LIMIT_FLAG_BUS_VOLTAGE_UPPER)
123#define LIMIT_FLAG_BUS_VOLTAGE_LOWER_MASK (1U << LIMIT_FLAG_BUS_VOLTAGE_LOWER)
125#define LIMIT_FLAG_TEMPERATURE_MASK (1U << LIMIT_FLAG_TEMPERATURE)
128#define IS_EXCLUDED_WS22_CAN_ID(x) ((((x) >= 128U) && ((x) <= 142U)) || ((x) == 151U) || ((x) == 1281U))
175#define BPS_FAULT_OVERVOLTAGE_MASK (1U << BPS_FAULT_OVERVOLTAGE)
177#define BPS_FAULT_UNBALANCE_MASK (1U << BPS_FAULT_UNBALANCE)
179#define BPS_FAULT_OVERTEMP_AMBIENT_MASK (1U << BPS_FAULT_OVERTEMP_AMBIENT)
181#define BPS_FAULT_COMMS_LOSS_AFE_MASK (1U << BPS_FAULT_COMMS_LOSS_AFE)
183#define BPS_FAULT_COMMS_LOSS_CURR_SENSE_MASK (1U << BPS_FAULT_COMMS_LOSS_CURR_SENSE)
185#define BPS_FAULT_OVERTEMP_CELL_MASK (1U << BPS_FAULT_OVERTEMP_CELL)
187#define BPS_FAULT_OVERCURRENT_MASK (1U << BPS_FAULT_OVERCURRENT)
189#define BPS_FAULT_UNDERVOLTAGE_MASK (1U << BPS_FAULT_UNDERVOLTAGE)
191#define BPS_FAULT_KILLSWITCH_MASK (1U << BPS_FAULT_KILLSWITCH)
193#define BPS_FAULT_RELAY_CLOSE_FAILED_MASK (1U << BPS_FAULT_RELAY_CLOSE_FAILED)
195#define BPS_FAULT_DISCONNECTED_MASK (1U << BPS_FAULT_DISCONNECTED)
198#define BPS_FAULT_HIGH_PRIORITY_MASK (1U << 15U)
200#define BPS_FAULT_LOW_PRIORITY_MASK (1U << 14U)
222#define STEERING_LIGHT_STATE_TO_STR(s) (((s) < STEERING_LIGHTS_NUM_STATES) ? steering_light_state_strings[(s)] : "UNKNOWN")
240#define STEERING_CC_INCREASE_MASK (1U << EE_STEERING_CC_INCREASE_BIT)
242#define STEERING_CC_DECREASE_MASK (1U << EE_STEERING_CC_DECREASE_BIT)
244#define STEERING_CC_TOGGLE_MASK (1U << EE_STEERING_CC_TOGGLE_BIT)
Ws22MotorFlags
WS22 motor limit and error flags.
Definition: global_enums.h:74
PDPowerState
Power distribution power state definitions.
Definition: global_enums.h:253
SteeringLightState
Steering lights definitions.
Definition: global_enums.h:209
VehicleDriveState
Vehicle drive states.
Definition: global_enums.h:32
SteeringCruiseControl
Steering cruise control definitions.
Definition: global_enums.h:233
static const char * vehicle_drive_state_strings[VEHICLE_DRIVE_NUM_STATES]
LUT + Macro to help print vehicle drive states.
Definition: global_enums.h:47
BpsLightState
Definition: global_enums.h:224
struct __attribute__((aligned(4))) PedalPersistData
Pedal persist struct.
Definition: global_enums.h:146
static const char * steering_light_state_strings[STEERING_LIGHTS_NUM_STATES]
LUT + Macro to help print steering light states.
Definition: global_enums.h:220
VehiclePowerStates
Vehicle power states.
Definition: global_enums.h:57
BpsFault
Battery fault definitions.
Definition: global_enums.h:159
@ EE_POWER_PRECHARGE_STATE
Definition: global_enums.h:255
@ EE_POWER_OFF_STATE
Definition: global_enums.h:254
@ EE_POWER_DRIVE_STATE
Definition: global_enums.h:256
@ EE_POWER_FAULT_STATE
Definition: global_enums.h:257
@ STEERING_LIGHTS_LEFT_STATE
Definition: global_enums.h:211
@ STEERING_LIGHTS_HAZARD_STATE
Definition: global_enums.h:213
@ STEERING_LIGHTS_NUM_STATES
Definition: global_enums.h:214
@ STEERING_LIGHTS_RIGHT_STATE
Definition: global_enums.h:212
@ STEERING_LIGHTS_OFF_STATE
Definition: global_enums.h:210
@ VEHICLE_DRIVE_STATE_REGEN
Definition: global_enums.h:39
@ 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:38
@ VEHICLE_DRIVE_STATE_CRUISE
Definition: global_enums.h:37
@ VEHICLE_DRIVE_STATE_INVALID
Definition: global_enums.h:33
@ VEHICLE_DRIVE_STATE_REVERSE
Definition: global_enums.h:36
@ VEHICLE_DRIVE_STATE_FAULT
Definition: global_enums.h:40
@ STEERING_CRUISE_CONTROL_INCREASE_BIT
Definition: global_enums.h:235
@ STEERING_CRUISE_CONTROL_TOGGLE_BIT
Definition: global_enums.h:236
@ STEERING_CRUISE_CONTROL_DECREASE_BIT
Definition: global_enums.h:234
@ NUM_BPS_LIGHT_STATES
Definition: global_enums.h:227
@ BPS_LIGHT_ON_STATE
Definition: global_enums.h:225
@ BPS_LIGHT_OFF_STATE
Definition: global_enums.h:226
@ VEHICLE_POWER_STATE_CHARGE
Definition: global_enums.h:60
@ VEHICLE_POWER_STATE_DRIVE
Definition: global_enums.h:59
@ VEHICLE_POWER_STATE_IDLE
Definition: global_enums.h:58
@ VEHICLE_POWER_STATE_FAULT
Definition: global_enums.h:61
@ BPS_FAULT_UNDERVOLTAGE
Definition: global_enums.h:167
@ BPS_FAULT_UNBALANCE
Definition: global_enums.h:161
@ BPS_FAULT_DISCONNECTED
Definition: global_enums.h:170
@ BPS_FAULT_KILLSWITCH
Definition: global_enums.h:168
@ BPS_FAULT_OVERVOLTAGE
Definition: global_enums.h:160
@ BPS_FAULT_OVERTEMP_AMBIENT
Definition: global_enums.h:162
@ BPS_FAULT_OVERCURRENT
Definition: global_enums.h:166
@ BPS_FAULT_COMMS_LOSS_AFE
Definition: global_enums.h:163
@ BPS_FAULT_OVERTEMP_CELL
Definition: global_enums.h:165
@ BPS_FAULT_COMMS_LOSS_CURR_SENSE
Definition: global_enums.h:164
@ BPS_FAULT_RELAY_CLOSE_FAILED
Definition: global_enums.h:169
Stores data that defines when the pedal is full pressed or unpressed.
Definition: main.c:39
uint16_t upper_value
Definition: global_enums.h:140
uint16_t lower_value
Definition: global_enums.h:139