Merge pull request #631 from NewHavenRobotics/e7/strong-typed-id

Strongly-Typed COMM and CAN IDs
This commit is contained in:
Benjamin Vedder 2023-06-08 04:40:21 +02:00 committed by GitHub
commit f674aaaa2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 215 additions and 215 deletions

View File

@ -978,246 +978,246 @@ typedef struct {
// Communication commands // Communication commands
typedef enum { typedef enum {
COMM_FW_VERSION = 0, COMM_FW_VERSION = 0,
COMM_JUMP_TO_BOOTLOADER, COMM_JUMP_TO_BOOTLOADER = 1,
COMM_ERASE_NEW_APP, COMM_ERASE_NEW_APP = 2,
COMM_WRITE_NEW_APP_DATA, COMM_WRITE_NEW_APP_DATA = 3,
COMM_GET_VALUES, COMM_GET_VALUES = 4,
COMM_SET_DUTY, COMM_SET_DUTY = 5,
COMM_SET_CURRENT, COMM_SET_CURRENT = 6,
COMM_SET_CURRENT_BRAKE, COMM_SET_CURRENT_BRAKE = 7,
COMM_SET_RPM, COMM_SET_RPM = 8,
COMM_SET_POS, COMM_SET_POS = 9,
COMM_SET_HANDBRAKE, COMM_SET_HANDBRAKE = 10,
COMM_SET_DETECT, COMM_SET_DETECT = 11,
COMM_SET_SERVO_POS, COMM_SET_SERVO_POS = 12,
COMM_SET_MCCONF, COMM_SET_MCCONF = 13,
COMM_GET_MCCONF, COMM_GET_MCCONF = 14,
COMM_GET_MCCONF_DEFAULT, COMM_GET_MCCONF_DEFAULT = 15,
COMM_SET_APPCONF, COMM_SET_APPCONF = 16,
COMM_GET_APPCONF, COMM_GET_APPCONF = 17,
COMM_GET_APPCONF_DEFAULT, COMM_GET_APPCONF_DEFAULT = 18,
COMM_SAMPLE_PRINT, COMM_SAMPLE_PRINT = 19,
COMM_TERMINAL_CMD, COMM_TERMINAL_CMD = 20,
COMM_PRINT, COMM_PRINT = 21,
COMM_ROTOR_POSITION, COMM_ROTOR_POSITION = 22,
COMM_EXPERIMENT_SAMPLE, COMM_EXPERIMENT_SAMPLE = 23,
COMM_DETECT_MOTOR_PARAM, COMM_DETECT_MOTOR_PARAM = 24,
COMM_DETECT_MOTOR_R_L, COMM_DETECT_MOTOR_R_L = 25,
COMM_DETECT_MOTOR_FLUX_LINKAGE, COMM_DETECT_MOTOR_FLUX_LINKAGE = 26,
COMM_DETECT_ENCODER, COMM_DETECT_ENCODER = 27,
COMM_DETECT_HALL_FOC, COMM_DETECT_HALL_FOC = 28,
COMM_REBOOT, COMM_REBOOT = 29,
COMM_ALIVE, COMM_ALIVE = 30,
COMM_GET_DECODED_PPM, COMM_GET_DECODED_PPM = 31,
COMM_GET_DECODED_ADC, COMM_GET_DECODED_ADC = 32,
COMM_GET_DECODED_CHUK, COMM_GET_DECODED_CHUK = 33,
COMM_FORWARD_CAN, COMM_FORWARD_CAN = 34,
COMM_SET_CHUCK_DATA, COMM_SET_CHUCK_DATA = 35,
COMM_CUSTOM_APP_DATA, COMM_CUSTOM_APP_DATA = 36,
COMM_NRF_START_PAIRING, COMM_NRF_START_PAIRING = 37,
COMM_GPD_SET_FSW, COMM_GPD_SET_FSW = 38,
COMM_GPD_BUFFER_NOTIFY, COMM_GPD_BUFFER_NOTIFY = 39,
COMM_GPD_BUFFER_SIZE_LEFT, COMM_GPD_BUFFER_SIZE_LEFT = 40,
COMM_GPD_FILL_BUFFER, COMM_GPD_FILL_BUFFER = 41,
COMM_GPD_OUTPUT_SAMPLE, COMM_GPD_OUTPUT_SAMPLE = 42,
COMM_GPD_SET_MODE, COMM_GPD_SET_MODE = 43,
COMM_GPD_FILL_BUFFER_INT8, COMM_GPD_FILL_BUFFER_INT8 = 44,
COMM_GPD_FILL_BUFFER_INT16, COMM_GPD_FILL_BUFFER_INT16 = 45,
COMM_GPD_SET_BUFFER_INT_SCALE, COMM_GPD_SET_BUFFER_INT_SCALE = 46,
COMM_GET_VALUES_SETUP, COMM_GET_VALUES_SETUP = 47,
COMM_SET_MCCONF_TEMP, COMM_SET_MCCONF_TEMP = 48,
COMM_SET_MCCONF_TEMP_SETUP, COMM_SET_MCCONF_TEMP_SETUP = 49,
COMM_GET_VALUES_SELECTIVE, COMM_GET_VALUES_SELECTIVE = 50,
COMM_GET_VALUES_SETUP_SELECTIVE, COMM_GET_VALUES_SETUP_SELECTIVE = 51,
COMM_EXT_NRF_PRESENT, COMM_EXT_NRF_PRESENT = 52,
COMM_EXT_NRF_ESB_SET_CH_ADDR, COMM_EXT_NRF_ESB_SET_CH_ADDR = 53,
COMM_EXT_NRF_ESB_SEND_DATA, COMM_EXT_NRF_ESB_SEND_DATA = 54,
COMM_EXT_NRF_ESB_RX_DATA, COMM_EXT_NRF_ESB_RX_DATA = 55,
COMM_EXT_NRF_SET_ENABLED, COMM_EXT_NRF_SET_ENABLED = 56,
COMM_DETECT_MOTOR_FLUX_LINKAGE_OPENLOOP, COMM_DETECT_MOTOR_FLUX_LINKAGE_OPENLOOP = 57,
COMM_DETECT_APPLY_ALL_FOC, COMM_DETECT_APPLY_ALL_FOC = 58,
COMM_JUMP_TO_BOOTLOADER_ALL_CAN, COMM_JUMP_TO_BOOTLOADER_ALL_CAN = 59,
COMM_ERASE_NEW_APP_ALL_CAN, COMM_ERASE_NEW_APP_ALL_CAN = 60,
COMM_WRITE_NEW_APP_DATA_ALL_CAN, COMM_WRITE_NEW_APP_DATA_ALL_CAN = 61,
COMM_PING_CAN, COMM_PING_CAN = 62,
COMM_APP_DISABLE_OUTPUT, COMM_APP_DISABLE_OUTPUT = 63,
COMM_TERMINAL_CMD_SYNC, COMM_TERMINAL_CMD_SYNC = 64,
COMM_GET_IMU_DATA, COMM_GET_IMU_DATA = 65,
COMM_BM_CONNECT, COMM_BM_CONNECT = 66,
COMM_BM_ERASE_FLASH_ALL, COMM_BM_ERASE_FLASH_ALL = 67,
COMM_BM_WRITE_FLASH, COMM_BM_WRITE_FLASH = 68,
COMM_BM_REBOOT, COMM_BM_REBOOT = 69,
COMM_BM_DISCONNECT, COMM_BM_DISCONNECT = 70,
COMM_BM_MAP_PINS_DEFAULT, COMM_BM_MAP_PINS_DEFAULT = 71,
COMM_BM_MAP_PINS_NRF5X, COMM_BM_MAP_PINS_NRF5X = 72,
COMM_ERASE_BOOTLOADER, COMM_ERASE_BOOTLOADER = 73,
COMM_ERASE_BOOTLOADER_ALL_CAN, COMM_ERASE_BOOTLOADER_ALL_CAN = 74,
COMM_PLOT_INIT, COMM_PLOT_INIT = 75,
COMM_PLOT_DATA, COMM_PLOT_DATA = 76,
COMM_PLOT_ADD_GRAPH, COMM_PLOT_ADD_GRAPH = 77,
COMM_PLOT_SET_GRAPH, COMM_PLOT_SET_GRAPH = 78,
COMM_GET_DECODED_BALANCE, COMM_GET_DECODED_BALANCE = 79,
COMM_BM_MEM_READ, COMM_BM_MEM_READ = 80,
COMM_WRITE_NEW_APP_DATA_LZO, COMM_WRITE_NEW_APP_DATA_LZO = 81,
COMM_WRITE_NEW_APP_DATA_ALL_CAN_LZO, COMM_WRITE_NEW_APP_DATA_ALL_CAN_LZO = 82,
COMM_BM_WRITE_FLASH_LZO, COMM_BM_WRITE_FLASH_LZO = 83,
COMM_SET_CURRENT_REL, COMM_SET_CURRENT_REL = 84,
COMM_CAN_FWD_FRAME, COMM_CAN_FWD_FRAME = 85,
COMM_SET_BATTERY_CUT, COMM_SET_BATTERY_CUT = 86,
COMM_SET_BLE_NAME, COMM_SET_BLE_NAME = 87,
COMM_SET_BLE_PIN, COMM_SET_BLE_PIN = 88,
COMM_SET_CAN_MODE, COMM_SET_CAN_MODE = 89,
COMM_GET_IMU_CALIBRATION, COMM_GET_IMU_CALIBRATION = 90,
COMM_GET_MCCONF_TEMP, COMM_GET_MCCONF_TEMP = 91,
// Custom configuration for hardware // Custom configuration for hardware
COMM_GET_CUSTOM_CONFIG_XML, COMM_GET_CUSTOM_CONFIG_XML = 92,
COMM_GET_CUSTOM_CONFIG, COMM_GET_CUSTOM_CONFIG = 93,
COMM_GET_CUSTOM_CONFIG_DEFAULT, COMM_GET_CUSTOM_CONFIG_DEFAULT = 94,
COMM_SET_CUSTOM_CONFIG, COMM_SET_CUSTOM_CONFIG = 95,
// BMS commands // BMS commands
COMM_BMS_GET_VALUES, COMM_BMS_GET_VALUES = 96,
COMM_BMS_SET_CHARGE_ALLOWED, COMM_BMS_SET_CHARGE_ALLOWED = 97,
COMM_BMS_SET_BALANCE_OVERRIDE, COMM_BMS_SET_BALANCE_OVERRIDE = 98,
COMM_BMS_RESET_COUNTERS, COMM_BMS_RESET_COUNTERS = 99,
COMM_BMS_FORCE_BALANCE, COMM_BMS_FORCE_BALANCE = 100,
COMM_BMS_ZERO_CURRENT_OFFSET, COMM_BMS_ZERO_CURRENT_OFFSET = 101,
// FW updates commands for different HW types // FW updates commands for different HW types
COMM_JUMP_TO_BOOTLOADER_HW, COMM_JUMP_TO_BOOTLOADER_HW = 102,
COMM_ERASE_NEW_APP_HW, COMM_ERASE_NEW_APP_HW = 103,
COMM_WRITE_NEW_APP_DATA_HW, COMM_WRITE_NEW_APP_DATA_HW = 104,
COMM_ERASE_BOOTLOADER_HW, COMM_ERASE_BOOTLOADER_HW = 105,
COMM_JUMP_TO_BOOTLOADER_ALL_CAN_HW, COMM_JUMP_TO_BOOTLOADER_ALL_CAN_HW = 106,
COMM_ERASE_NEW_APP_ALL_CAN_HW, COMM_ERASE_NEW_APP_ALL_CAN_HW = 107,
COMM_WRITE_NEW_APP_DATA_ALL_CAN_HW, COMM_WRITE_NEW_APP_DATA_ALL_CAN_HW = 108,
COMM_ERASE_BOOTLOADER_ALL_CAN_HW, COMM_ERASE_BOOTLOADER_ALL_CAN_HW = 109,
COMM_SET_ODOMETER, COMM_SET_ODOMETER = 110,
// Power switch commands // Power switch commands
COMM_PSW_GET_STATUS, COMM_PSW_GET_STATUS = 111,
COMM_PSW_SWITCH, COMM_PSW_SWITCH = 112,
COMM_BMS_FWD_CAN_RX, COMM_BMS_FWD_CAN_RX = 113,
COMM_BMS_HW_DATA, COMM_BMS_HW_DATA = 114,
COMM_GET_BATTERY_CUT, COMM_GET_BATTERY_CUT = 115,
COMM_BM_HALT_REQ, COMM_BM_HALT_REQ = 116,
COMM_GET_QML_UI_HW, COMM_GET_QML_UI_HW = 117,
COMM_GET_QML_UI_APP, COMM_GET_QML_UI_APP = 118,
COMM_CUSTOM_HW_DATA, COMM_CUSTOM_HW_DATA = 119,
COMM_QMLUI_ERASE, COMM_QMLUI_ERASE = 120,
COMM_QMLUI_WRITE, COMM_QMLUI_WRITE = 121,
// IO Board // IO Board
COMM_IO_BOARD_GET_ALL, COMM_IO_BOARD_GET_ALL = 122,
COMM_IO_BOARD_SET_PWM, COMM_IO_BOARD_SET_PWM = 123,
COMM_IO_BOARD_SET_DIGITAL, COMM_IO_BOARD_SET_DIGITAL = 124,
COMM_BM_MEM_WRITE, COMM_BM_MEM_WRITE = 125,
COMM_BMS_BLNC_SELFTEST, COMM_BMS_BLNC_SELFTEST = 126,
COMM_GET_EXT_HUM_TMP, COMM_GET_EXT_HUM_TMP = 127,
COMM_GET_STATS, COMM_GET_STATS = 128,
COMM_RESET_STATS, COMM_RESET_STATS = 129,
// Lisp // Lisp
COMM_LISP_READ_CODE, COMM_LISP_READ_CODE = 130,
COMM_LISP_WRITE_CODE, COMM_LISP_WRITE_CODE = 131,
COMM_LISP_ERASE_CODE, COMM_LISP_ERASE_CODE = 132,
COMM_LISP_SET_RUNNING, COMM_LISP_SET_RUNNING = 133,
COMM_LISP_GET_STATS, COMM_LISP_GET_STATS = 134,
COMM_LISP_PRINT, COMM_LISP_PRINT = 135,
COMM_BMS_SET_BATT_TYPE, COMM_BMS_SET_BATT_TYPE = 136,
COMM_BMS_GET_BATT_TYPE, COMM_BMS_GET_BATT_TYPE = 137,
COMM_LISP_REPL_CMD, COMM_LISP_REPL_CMD = 138,
COMM_LISP_STREAM_CODE, COMM_LISP_STREAM_CODE = 139,
COMM_FILE_LIST, COMM_FILE_LIST = 140,
COMM_FILE_READ, COMM_FILE_READ = 141,
COMM_FILE_WRITE, COMM_FILE_WRITE = 142,
COMM_FILE_MKDIR, COMM_FILE_MKDIR = 143,
COMM_FILE_REMOVE, COMM_FILE_REMOVE = 144,
COMM_LOG_START, COMM_LOG_START = 145,
COMM_LOG_STOP, COMM_LOG_STOP = 146,
COMM_LOG_CONFIG_FIELD, COMM_LOG_CONFIG_FIELD = 147,
COMM_LOG_DATA_F32, COMM_LOG_DATA_F32 = 148,
COMM_SET_APPCONF_NO_STORE, COMM_SET_APPCONF_NO_STORE = 149,
COMM_GET_GNSS, COMM_GET_GNSS = 150,
COMM_LOG_DATA_F64, COMM_LOG_DATA_F64 = 151,
} COMM_PACKET_ID; } COMM_PACKET_ID;
// CAN commands // CAN commands
typedef enum { typedef enum {
CAN_PACKET_SET_DUTY = 0, CAN_PACKET_SET_DUTY = 0,
CAN_PACKET_SET_CURRENT, CAN_PACKET_SET_CURRENT = 1,
CAN_PACKET_SET_CURRENT_BRAKE, CAN_PACKET_SET_CURRENT_BRAKE = 2,
CAN_PACKET_SET_RPM, CAN_PACKET_SET_RPM = 3,
CAN_PACKET_SET_POS, CAN_PACKET_SET_POS = 4,
CAN_PACKET_FILL_RX_BUFFER, CAN_PACKET_FILL_RX_BUFFER = 5,
CAN_PACKET_FILL_RX_BUFFER_LONG, CAN_PACKET_FILL_RX_BUFFER_LONG = 6,
CAN_PACKET_PROCESS_RX_BUFFER, CAN_PACKET_PROCESS_RX_BUFFER = 7,
CAN_PACKET_PROCESS_SHORT_BUFFER, CAN_PACKET_PROCESS_SHORT_BUFFER = 8,
CAN_PACKET_STATUS, CAN_PACKET_STATUS = 9,
CAN_PACKET_SET_CURRENT_REL, CAN_PACKET_SET_CURRENT_REL = 10,
CAN_PACKET_SET_CURRENT_BRAKE_REL, CAN_PACKET_SET_CURRENT_BRAKE_REL = 11,
CAN_PACKET_SET_CURRENT_HANDBRAKE, CAN_PACKET_SET_CURRENT_HANDBRAKE = 12,
CAN_PACKET_SET_CURRENT_HANDBRAKE_REL, CAN_PACKET_SET_CURRENT_HANDBRAKE_REL = 13,
CAN_PACKET_STATUS_2, CAN_PACKET_STATUS_2 = 14,
CAN_PACKET_STATUS_3, CAN_PACKET_STATUS_3 = 15,
CAN_PACKET_STATUS_4, CAN_PACKET_STATUS_4 = 16,
CAN_PACKET_PING, CAN_PACKET_PING = 17,
CAN_PACKET_PONG, CAN_PACKET_PONG = 18,
CAN_PACKET_DETECT_APPLY_ALL_FOC, CAN_PACKET_DETECT_APPLY_ALL_FOC = 19,
CAN_PACKET_DETECT_APPLY_ALL_FOC_RES, CAN_PACKET_DETECT_APPLY_ALL_FOC_RES = 20,
CAN_PACKET_CONF_CURRENT_LIMITS, CAN_PACKET_CONF_CURRENT_LIMITS = 21,
CAN_PACKET_CONF_STORE_CURRENT_LIMITS, CAN_PACKET_CONF_STORE_CURRENT_LIMITS = 22,
CAN_PACKET_CONF_CURRENT_LIMITS_IN, CAN_PACKET_CONF_CURRENT_LIMITS_IN = 23,
CAN_PACKET_CONF_STORE_CURRENT_LIMITS_IN, CAN_PACKET_CONF_STORE_CURRENT_LIMITS_IN = 24,
CAN_PACKET_CONF_FOC_ERPMS, CAN_PACKET_CONF_FOC_ERPMS = 25,
CAN_PACKET_CONF_STORE_FOC_ERPMS, CAN_PACKET_CONF_STORE_FOC_ERPMS = 26,
CAN_PACKET_STATUS_5, CAN_PACKET_STATUS_5 = 27,
CAN_PACKET_POLL_TS5700N8501_STATUS, CAN_PACKET_POLL_TS5700N8501_STATUS = 28,
CAN_PACKET_CONF_BATTERY_CUT, CAN_PACKET_CONF_BATTERY_CUT = 29,
CAN_PACKET_CONF_STORE_BATTERY_CUT, CAN_PACKET_CONF_STORE_BATTERY_CUT = 30,
CAN_PACKET_SHUTDOWN, CAN_PACKET_SHUTDOWN = 31,
CAN_PACKET_IO_BOARD_ADC_1_TO_4, CAN_PACKET_IO_BOARD_ADC_1_TO_4 = 32,
CAN_PACKET_IO_BOARD_ADC_5_TO_8, CAN_PACKET_IO_BOARD_ADC_5_TO_8 = 33,
CAN_PACKET_IO_BOARD_ADC_9_TO_12, CAN_PACKET_IO_BOARD_ADC_9_TO_12 = 34,
CAN_PACKET_IO_BOARD_DIGITAL_IN, CAN_PACKET_IO_BOARD_DIGITAL_IN = 35,
CAN_PACKET_IO_BOARD_SET_OUTPUT_DIGITAL, CAN_PACKET_IO_BOARD_SET_OUTPUT_DIGITAL = 36,
CAN_PACKET_IO_BOARD_SET_OUTPUT_PWM, CAN_PACKET_IO_BOARD_SET_OUTPUT_PWM = 37,
CAN_PACKET_BMS_V_TOT, CAN_PACKET_BMS_V_TOT = 38,
CAN_PACKET_BMS_I, CAN_PACKET_BMS_I = 39,
CAN_PACKET_BMS_AH_WH, CAN_PACKET_BMS_AH_WH = 40,
CAN_PACKET_BMS_V_CELL, CAN_PACKET_BMS_V_CELL = 41,
CAN_PACKET_BMS_BAL, CAN_PACKET_BMS_BAL = 42,
CAN_PACKET_BMS_TEMPS, CAN_PACKET_BMS_TEMPS = 43,
CAN_PACKET_BMS_HUM, CAN_PACKET_BMS_HUM = 44,
CAN_PACKET_BMS_SOC_SOH_TEMP_STAT, CAN_PACKET_BMS_SOC_SOH_TEMP_STAT = 45,
CAN_PACKET_PSW_STAT, CAN_PACKET_PSW_STAT = 46,
CAN_PACKET_PSW_SWITCH, CAN_PACKET_PSW_SWITCH = 47,
CAN_PACKET_BMS_HW_DATA_1, CAN_PACKET_BMS_HW_DATA_1 = 48,
CAN_PACKET_BMS_HW_DATA_2, CAN_PACKET_BMS_HW_DATA_2 = 49,
CAN_PACKET_BMS_HW_DATA_3, CAN_PACKET_BMS_HW_DATA_3 = 50,
CAN_PACKET_BMS_HW_DATA_4, CAN_PACKET_BMS_HW_DATA_4 = 51,
CAN_PACKET_BMS_HW_DATA_5, CAN_PACKET_BMS_HW_DATA_5 = 52,
CAN_PACKET_BMS_AH_WH_CHG_TOTAL, CAN_PACKET_BMS_AH_WH_CHG_TOTAL = 53,
CAN_PACKET_BMS_AH_WH_DIS_TOTAL, CAN_PACKET_BMS_AH_WH_DIS_TOTAL = 54,
CAN_PACKET_UPDATE_PID_POS_OFFSET, CAN_PACKET_UPDATE_PID_POS_OFFSET = 55,
CAN_PACKET_POLL_ROTOR_POS, CAN_PACKET_POLL_ROTOR_POS = 56,
CAN_PACKET_NOTIFY_BOOT, CAN_PACKET_NOTIFY_BOOT = 57,
CAN_PACKET_STATUS_6, CAN_PACKET_STATUS_6 = 58,
CAN_PACKET_GNSS_TIME, CAN_PACKET_GNSS_TIME = 59,
CAN_PACKET_GNSS_LAT, CAN_PACKET_GNSS_LAT = 60,
CAN_PACKET_GNSS_LON, CAN_PACKET_GNSS_LON = 61,
CAN_PACKET_GNSS_ALT_SPEED_HDOP, CAN_PACKET_GNSS_ALT_SPEED_HDOP = 62,
CAN_PACKET_MAKE_ENUM_32_BITS = 0xFFFFFFFF, CAN_PACKET_MAKE_ENUM_32_BITS = 0xFFFFFFFF,
} CAN_PACKET_ID; } CAN_PACKET_ID;