Midnight Sun Firmware
Loading...
Searching...
No Matches
GlobalEnums

Global Enum definition for sharing between projects. More...

Classes

struct  PedalCalibrationData
 Stores data that defines when the pedal is full pressed or unpressed. More...
 

Macros

#define VEHICLE_DRIVE_STATE_TO_STR(s)   (((s) < VEHICLE_DRIVE_NUM_STATES) ? vehicle_drive_state_strings[(s)] : "UNKNOWN")
 
#define GLOBAL_SIGNAL_LIGHTS_BLINK_PERIOD_MS   400U
 Signal and BPS light blink period in milliseconds.
 
#define GLOBAL_BPS_LIGHTS_BLINK_PERIOD_MS   200U
 
#define ERROR_FLAG_HARDWARE_OVERCURRENT_MASK   (1U << ERROR_FLAG_HARDWARE_OVERCURRENT)
 Hardware overcurrent error flag mask.
 
#define ERROR_FLAG_SOFTWARE_OVERCURRENT_MASK   (1U << ERROR_FLAG_SOFTWARE_OVERCURRENT)
 Software overcurrent error flag mask.
 
#define ERROR_FLAG_DC_BUS_OV_MASK   (1U << ERROR_FLAG_DC_BUS_OV)
 DC bus overvoltage error flag mask.
 
#define ERROR_FLAG_BAD_HALL_SEQUENCE_MASK   (1U << ERROR_FLAG_BAD_HALL_SEQUENCE)
 Bad hall sequence error flag mask.
 
#define ERROR_FLAG_WATCHDOG_CAUSED_RESET_MASK   (1U << ERROR_FLAG_WATCHDOG_CAUSED_RESET)
 Watchdog caused reset error flag mask.
 
#define ERROR_FLAG_CFG_READ_ERROR_MASK   (1U << ERROR_FLAG_CFG_READ_ERROR)
 CFG read error flag mask.
 
#define ERROR_FLAG_UVLO_MASK   (1U << ERROR_FLAG_UVLO)
 UVLO error flag mask.
 
#define ERROR_FLAG_DESATURATION_FAULT_MASK   (1U << ERROR_FLAG_DESATURATION_FAULT)
 Desaturation fault error flag mask.
 
#define ERROR_FLAG_MOTOR_OVER_SPEED_MASK   (1U << ERROR_FLAG_MOTOR_OVER_SPEED)
 Motor overspeed error flag mask.
 
#define LIMIT_FLAG_OUTPUT_VOLTAGE_PWM_MASK   (1U << LIMIT_FLAG_OUTPUT_VOLTAGE_PWM)
 Output voltage PWM limit flag mask.
 
#define LIMIT_FLAG_MOTOR_CURRENT_MASK   (1U << LIMIT_FLAG_MOTOR_CURRENT)
 Motor current limit flag mask.
 
#define LIMIT_FLAG_VELOCITY_MASK   (1U << LIMIT_FLAG_VELOCITY)
 Velocity limit flag mask.
 
#define LIMIT_FLAG_BUS_CURRENT_MASK   (1U << LIMIT_FLAG_BUS_CURRENT)
 Bus current limit flag mask.
 
#define LIMIT_FLAG_BUS_VOLTAGE_UPPER_MASK   (1U << LIMIT_FLAG_BUS_VOLTAGE_UPPER)
 Bus voltage upper limit flag mask.
 
#define LIMIT_FLAG_BUS_VOLTAGE_LOWER_MASK   (1U << LIMIT_FLAG_BUS_VOLTAGE_LOWER)
 Bus voltage lower limit flag mask.
 
#define LIMIT_FLAG_TEMPERATURE_MASK   (1U << LIMIT_FLAG_TEMPERATURE)
 Temperature limit flag mask.
 
#define IS_EXCLUDED_WS22_CAN_ID(x)   ((((x) >= 128U) && ((x) <= 142U)) || ((x) == 151U) || ((x) == 1281U))
 IDs of WS22 CAN messages to exclude from telemetry datagram forwarding.
 
#define BPS_FAULT_OVERVOLTAGE_MASK   (1U << BPS_FAULT_OVERVOLTAGE)
 BPS Overvoltage fault mask.
 
#define BPS_FAULT_UNBALANCE_MASK   (1U << BPS_FAULT_UNBALANCE)
 BPS Unbalanced fault mask.
 
#define BPS_FAULT_OVERTEMP_AMBIENT_MASK   (1U << BPS_FAULT_OVERTEMP_AMBIENT)
 BPS Ambient temperature fault mask.
 
#define BPS_FAULT_COMMS_LOSS_AFE_MASK   (1U << BPS_FAULT_COMMS_LOSS_AFE)
 BPS Communication lost with AFEs fault mask.
 
#define BPS_FAULT_COMMS_LOSS_CURR_SENSE_MASK   (1U << BPS_FAULT_COMMS_LOSS_CURR_SENSE)
 BPS Communication lost with current sense fault mask.
 
#define BPS_FAULT_OVERTEMP_CELL_MASK   (1U << BPS_FAULT_OVERTEMP_CELL)
 BPS Cell temperature fault mask.
 
#define BPS_FAULT_OVERCURRENT_MASK   (1U << BPS_FAULT_OVERCURRENT)
 BPS Overcurrent fault mask.
 
#define BPS_FAULT_UNDERVOLTAGE_MASK   (1U << BPS_FAULT_UNDERVOLTAGE)
 BPS Undervoltage fault mask.
 
#define BPS_FAULT_KILLSWITCH_MASK   (1U << BPS_FAULT_KILLSWITCH)
 BPS Killswitch fault mask.
 
#define BPS_FAULT_RELAY_CLOSE_FAILED_MASK   (1U << BPS_FAULT_RELAY_CLOSE_FAILED)
 BPS Relay failed to close fault mask.
 
#define BPS_FAULT_DISCONNECTED_MASK   (1U << BPS_FAULT_DISCONNECTED)
 BPS Disconnected fault mask.
 
#define BPS_FAULT_HIGH_PRIORITY_MASK   (1U << 15U)
 BPS High priority fault mask.
 
#define BPS_FAULT_LOW_PRIORITY_MASK   (1U << 14U)
 BPS Low priority fault mask.
 
#define STEERING_LIGHT_STATE_TO_STR(s)   (((s) < STEERING_LIGHTS_NUM_STATES) ? steering_light_state_strings[(s)] : "UNKNOWN")
 
#define STEERING_CC_INCREASE_MASK   (1U << EE_STEERING_CC_INCREASE_BIT)
 Increase cruise control speed mask.
 
#define STEERING_CC_DECREASE_MASK   (1U << EE_STEERING_CC_DECREASE_BIT)
 Decrease cruise control speed mask.
 
#define STEERING_CC_TOGGLE_MASK   (1U << EE_STEERING_CC_TOGGLE_BIT)
 Toggle cruise control mask.
 

Typedefs

typedef struct PedalCalibrationData PedalCalibrationData
 Stores data that defines when the pedal is full pressed or unpressed. More...
 

Enumerations

enum  VehicleDriveState {
  VEHICLE_DRIVE_STATE_INVALID = 0 , VEHICLE_DRIVE_STATE_NEUTRAL = 1 , VEHICLE_DRIVE_STATE_DRIVE = 2 , VEHICLE_DRIVE_STATE_REVERSE = 3 ,
  VEHICLE_DRIVE_STATE_CRUISE = 4 , VEHICLE_DRIVE_STATE_BRAKE = 5 , VEHICLE_DRIVE_STATE_REGEN = 6 , VEHICLE_DRIVE_STATE_FAULT = 7 ,
  VEHICLE_DRIVE_NUM_STATES
}
 Vehicle drive states. More...
 
enum  VehiclePowerStates { VEHICLE_POWER_STATE_IDLE , VEHICLE_POWER_STATE_DRIVE , VEHICLE_POWER_STATE_CHARGE , VEHICLE_POWER_STATE_FAULT }
 Vehicle power states. More...
 
enum  Ws22MotorFlags {
  ERROR_FLAG_HARDWARE_OVERCURRENT = 0 , ERROR_FLAG_SOFTWARE_OVERCURRENT = 1 , ERROR_FLAG_DC_BUS_OV = 2 , ERROR_FLAG_BAD_HALL_SEQUENCE = 3 ,
  ERROR_FLAG_WATCHDOG_CAUSED_RESET = 4 , ERROR_FLAG_CFG_READ_ERROR = 6 , ERROR_FLAG_UVLO = 6 , ERROR_FLAG_DESATURATION_FAULT = 7 ,
  ERROR_FLAG_MOTOR_OVER_SPEED = 8 , LIMIT_FLAG_OUTPUT_VOLTAGE_PWM = 9 , LIMIT_FLAG_MOTOR_CURRENT = 10 , LIMIT_FLAG_VELOCITY = 11 ,
  LIMIT_FLAG_BUS_CURRENT = 12 , LIMIT_FLAG_BUS_VOLTAGE_UPPER = 13 , LIMIT_FLAG_BUS_VOLTAGE_LOWER = 14 , LIMIT_FLAG_TEMPERATURE = 15 ,
  NUM_WS22_MOTOR_FLAGS
}
 WS22 motor limit and error flags.
 
enum  BpsFault {
  BPS_FAULT_OVERVOLTAGE , BPS_FAULT_UNBALANCE , BPS_FAULT_OVERTEMP_AMBIENT , BPS_FAULT_COMMS_LOSS_AFE ,
  BPS_FAULT_COMMS_LOSS_CURR_SENSE , BPS_FAULT_OVERTEMP_CELL , BPS_FAULT_OVERCURRENT , BPS_FAULT_UNDERVOLTAGE ,
  BPS_FAULT_KILLSWITCH , BPS_FAULT_RELAY_CLOSE_FAILED , BPS_FAULT_DISCONNECTED , NUM_BPS_FAULTS
}
 Battery fault definitions. More...
 
enum  SteeringLightState {
  STEERING_LIGHTS_OFF_STATE = 0 , STEERING_LIGHTS_LEFT_STATE = 1 , STEERING_LIGHTS_RIGHT_STATE = 2 , STEERING_LIGHTS_HAZARD_STATE = 3 ,
  STEERING_LIGHTS_NUM_STATES
}
 Steering lights definitions. More...
 
enum  BpsLightState { BPS_LIGHT_ON_STATE , BPS_LIGHT_OFF_STATE , NUM_BPS_LIGHT_STATES }
 
enum  SteeringCruiseControl { STEERING_CRUISE_CONTROL_DECREASE_BIT = 0 , STEERING_CRUISE_CONTROL_INCREASE_BIT , STEERING_CRUISE_CONTROL_TOGGLE_BIT }
 Steering cruise control definitions. More...
 
enum  PDPowerState { EE_POWER_OFF_STATE , EE_POWER_PRECHARGE_STATE , EE_POWER_DRIVE_STATE , EE_POWER_FAULT_STATE }
 Power distribution power state definitions. More...
 

Functions

struct __attribute__ ((aligned(4))) PedalPersistData
 Pedal persist struct.
 

Variables

static const char * vehicle_drive_state_strings [VEHICLE_DRIVE_NUM_STATES]
 LUT + Macro to help print vehicle drive states. More...
 
 PedalPersistData
 
static const char * steering_light_state_strings [STEERING_LIGHTS_NUM_STATES] = { "OFF", "LEFT", "RIGHT", "HAZARD" }
 LUT + Macro to help print steering light states.
 

Detailed Description

Global Enum definition for sharing between projects.

Typedef Documentation

◆ PedalCalibrationData

Stores data that defines when the pedal is full pressed or unpressed.

The lower_value is the value at which the pedal is considered fully unpressed whereas the upper_value is the value at which the pedal is fully pressed

Enumeration Type Documentation

◆ BpsFault

enum BpsFault

Battery fault definitions.

Enumerator
BPS_FAULT_OVERVOLTAGE 

BPS Overvoltage fault

BPS_FAULT_UNBALANCE 

BPS Unbalanced fault

BPS_FAULT_OVERTEMP_AMBIENT 

BPS Ambient temperature fault

BPS_FAULT_COMMS_LOSS_AFE 

BPS Communication lost with AFEs fault

BPS_FAULT_COMMS_LOSS_CURR_SENSE 

BPS Communication lost with current sense fault

BPS_FAULT_OVERTEMP_CELL 

BPS Cell temperature fault

BPS_FAULT_OVERCURRENT 

BPS Overcurrent fault

BPS_FAULT_UNDERVOLTAGE 

BPS Undervoltage fault

BPS_FAULT_KILLSWITCH 

BPS Killswitch fault

BPS_FAULT_RELAY_CLOSE_FAILED 

BPS Relay failed to close fault

BPS_FAULT_DISCONNECTED 

BPS Disconnected fault

◆ BpsLightState

Enumerator
BPS_LIGHT_ON_STATE 

BPS light on state

BPS_LIGHT_OFF_STATE 

BPS light off state

NUM_BPS_LIGHT_STATES 

Number of BPS light states

◆ PDPowerState

Power distribution power state definitions.

Enumerator
EE_POWER_OFF_STATE 

Power distribution off state

EE_POWER_PRECHARGE_STATE 

Power distribution precharge state

EE_POWER_DRIVE_STATE 

Power distribution drive state

EE_POWER_FAULT_STATE 

Power distribution fault state

◆ SteeringCruiseControl

Steering cruise control definitions.

Enumerator
STEERING_CRUISE_CONTROL_DECREASE_BIT 

Decrease cruise control speed

STEERING_CRUISE_CONTROL_INCREASE_BIT 

Increase cruise control speed

STEERING_CRUISE_CONTROL_TOGGLE_BIT 

Toggle cruise control

◆ SteeringLightState

Steering lights definitions.

Enumerator
STEERING_LIGHTS_OFF_STATE 

Steering lights off

STEERING_LIGHTS_LEFT_STATE 

Steering light left turn

STEERING_LIGHTS_RIGHT_STATE 

Steering light right turn

STEERING_LIGHTS_HAZARD_STATE 

Steering light hazard state

STEERING_LIGHTS_NUM_STATES 

Number of steering light states

◆ VehicleDriveState

Vehicle drive states.

Enumerator
VEHICLE_DRIVE_STATE_INVALID 

Wrong State

VEHICLE_DRIVE_STATE_NEUTRAL 

Car Not Actively Moving in Neutral

VEHICLE_DRIVE_STATE_DRIVE 

Car Drive Forward

VEHICLE_DRIVE_STATE_REVERSE 

Car Drive Reverse

VEHICLE_DRIVE_STATE_CRUISE 

Car Cruise Constant Velocity

VEHICLE_DRIVE_STATE_BRAKE 

Car Brake

VEHICLE_DRIVE_STATE_REGEN 

Car Brake With Regen

VEHICLE_DRIVE_STATE_FAULT 

BPS fault

◆ VehiclePowerStates

Vehicle power states.

Enumerator
VEHICLE_POWER_STATE_IDLE 

Ready but not driving or charging, cars in neutral

VEHICLE_POWER_STATE_DRIVE 

Driving: motor relays closed, LV enabled

VEHICLE_POWER_STATE_CHARGE 

Charging: charger detected, motor relay may be required

VEHICLE_POWER_STATE_FAULT 

Faulted: relays open, latched until reset

Variable Documentation

◆ vehicle_drive_state_strings

const char* vehicle_drive_state_strings[VEHICLE_DRIVE_NUM_STATES]
static
Initial value:
= {
}
@ 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

LUT + Macro to help print vehicle drive states.