diff --git a/Autogen/CAN/.gitignore b/Autogen/CAN/.gitignore index 446fc01fc..693167941 100644 --- a/Autogen/CAN/.gitignore +++ b/Autogen/CAN/.gitignore @@ -2,5 +2,4 @@ inc/ !inc/output.dbc # CANfigurator -Inc/*.h Doc/*.dbc diff --git a/Autogen/CAN/Doc/GRCAN.CANdo b/Autogen/CAN/Doc/GRCAN.CANdo index 839d1a87e..3612039b6 100644 --- a/Autogen/CAN/Doc/GRCAN.CANdo +++ b/Autogen/CAN/Doc/GRCAN.CANdo @@ -32,6 +32,10 @@ routing: Charger: - msg: Charger Control can_id_override: 0x1806E5F4 + CCU: + - msg: BCU Status 1 + - msg: BCU Status 2 + - msg: BCU Status 3 Charger: CAN3: BCU: @@ -160,7 +164,8 @@ routing: - msg: Debug FD - msg: Ping TCM: - - msg: ECU Pedals Data + - msg: ECU Analog Data + - msg: ECU Performance Energy Meter: CAN3: BCU: @@ -3903,7 +3908,7 @@ Message ID: comment: Literal copy of ECU Status's status bit map data type: b[24] units: Bool map - ECU Pedals Data: + ECU Analog Data: MSG ID: 0x02E MSG LENGTH: 16 BSPD Signal: @@ -4051,6 +4056,16 @@ Message ID: comment: W data type: i16 map equation: "x/100" + ECU Performance: + MSG ID: 0x123 + MSG LENGTH: 4 + Elapsed Cycles: + bit_start: 0 + comment: + Represents the total number of clock cycles elapsed for 10 iterations of the main loop + data type: u32 + units: Clock Cycles + data type: u8 Custom CAN ID: DTI Control 1: diff --git a/Autogen/CAN/Inc/GRCAN_MSG_DATA.h b/Autogen/CAN/Inc/GRCAN_MSG_DATA.h index c5e8d50a5..bf6fe2b6a 100644 --- a/Autogen/CAN/Inc/GRCAN_MSG_DATA.h +++ b/Autogen/CAN/Inc/GRCAN_MSG_DATA.h @@ -37,7 +37,7 @@ See diagram in StateMachine.h 5: TS Discharge ECU State 6-7: Reserved See diagram in StateMachine.h (Byte 0) */ - uint8_t state_messages; + uint8_t ecu_state; /** [Byte 1 / Bits 8-15] 8: BCU Node Status (1: OK, 0: Timeout) 9: GR Inverter Status (1: OK, 0: Timeout) @@ -405,7 +405,7 @@ typedef struct { uint16_t steering_angle_signal; /** 4-20 mA signal (Byte 14) */ uint16_t aux_signal; -} GRCAN_ECU_PEDALS_DATA_MSG; +} GRCAN_ECU_ANALOG_DATA_MSG; /** GPS LAT */ typedef struct { @@ -465,4 +465,13 @@ typedef struct { uint16_t dgps_w; } GRCAN_UVW_DGPS_MSG; +/** ECU Performance */ +typedef struct { + /** + * Represents the total number of clock cycles elapsed for 10 iterations of the main loop + * data type: u32 + * units: Clock Cycles (Byte 0) */ + uint32_t elapsed_cycles; +} GRCAN_ECU_PERFORMANCE_MSG; + #endif diff --git a/Autogen/CAN/Inc/GRCAN_MSG_ID.h b/Autogen/CAN/Inc/GRCAN_MSG_ID.h index d589fa470..f5739421f 100644 --- a/Autogen/CAN/Inc/GRCAN_MSG_ID.h +++ b/Autogen/CAN/Inc/GRCAN_MSG_ID.h @@ -3,44 +3,45 @@ #define CAN_MSG_IDS_H typedef enum { - MSG_DEBUG_2_0 = 0x000, - MSG_DEBUG_FD = 0x001, - MSG_PING = 0x002, - MSG_ECU_STATUS_1 = 0x003, - MSG_ECU_STATUS_2 = 0x004, - MSG_ECU_STATUS_3 = 0x005, - MSG_ECU_CONFIG = 0x006, - MSG_BCU_STATUS_1 = 0x007, - MSG_BCU_STATUS_2 = 0x008, - MSG_BCU_STATUS_3 = 0x009, - MSG_BCU_PRECHARGE = 0x00A, - MSG_BCU_CONFIG_CHARGE_PARAMETERS = 0x00B, - MSG_BCU_CONFIG_OPERATIONAL_PARAMETERS = 0x00C, - MSG_BCU_CELL_DATA_1 = 0x00D, - MSG_BCU_CELL_DATA_2 = 0x00E, - MSG_BCU_CELL_DATA_3 = 0x00F, - MSG_BCU_CELL_DATA_4 = 0x010, - MSG_BCU_CELL_DATA_5 = 0x011, - MSG_INVERTER_STATUS_1 = 0x013, - MSG_INVERTER_STATUS_2 = 0x014, - MSG_INVERTER_STATUS_3 = 0x015, - MSG_INVERTER_CONFIG = 0x016, - MSG_INVERTER_COMMAND = 0x017, - MSG_FAN_STATUS = 0x018, - MSG_FAN_COMMAND = 0x019, - MSG_DASH_STATUS = 0x01A, - MSG_DASH_CONFIG = 0x01B, - MSG_TCM_STATUS = 0x029, - MSG_TCM_RESOURCE_UTILIZATION = 0x02A, - MSG_DASH_WARNING_FLAGS = 0x02B, - MSG_ECU_PEDALS_DATA = 0x02E, - MSG_GPS_LAT = 0x031, - MSG_GPS_LON = 0x032, - MSG_GPS_ALT = 0x033, - MSG_GPS_PX = 0x034, - MSG_GPS_QY = 0x035, - MSG_GPS_RZ = 0x036, - MSG_UVW_DGPS = 0x030, + GRCAN_DEBUG_2_0 = 0x000, + GRCAN_DEBUG_FD = 0x001, + GRCAN_PING = 0x002, + GRCAN_ECU_STATUS_1 = 0x003, + GRCAN_ECU_STATUS_2 = 0x004, + GRCAN_ECU_STATUS_3 = 0x005, + GRCAN_ECU_CONFIG = 0x006, + GRCAN_BCU_STATUS_1 = 0x007, + GRCAN_BCU_STATUS_2 = 0x008, + GRCAN_BCU_STATUS_3 = 0x009, + GRCAN_BCU_PRECHARGE = 0x00A, + GRCAN_BCU_CONFIG_CHARGE_PARAMETERS = 0x00B, + GRCAN_BCU_CONFIG_OPERATIONAL_PARAMETERS = 0x00C, + GRCAN_BCU_CELL_DATA_1 = 0x00D, + GRCAN_BCU_CELL_DATA_2 = 0x00E, + GRCAN_BCU_CELL_DATA_3 = 0x00F, + GRCAN_BCU_CELL_DATA_4 = 0x010, + GRCAN_BCU_CELL_DATA_5 = 0x011, + GRCAN_INVERTER_STATUS_1 = 0x013, + GRCAN_INVERTER_STATUS_2 = 0x014, + GRCAN_INVERTER_STATUS_3 = 0x015, + GRCAN_INVERTER_CONFIG = 0x016, + GRCAN_INVERTER_COMMAND = 0x017, + GRCAN_FAN_STATUS = 0x018, + GRCAN_FAN_COMMAND = 0x019, + GRCAN_DASH_STATUS = 0x01A, + GRCAN_DASH_CONFIG = 0x01B, + GRCAN_TCM_STATUS = 0x029, + GRCAN_TCM_RESOURCE_UTILIZATION = 0x02A, + GRCAN_DASH_WARNING_FLAGS = 0x02B, + GRCAN_ECU_ANALOG_DATA = 0x02E, + GRCAN_GPS_LAT = 0x031, + GRCAN_GPS_LON = 0x032, + GRCAN_GPS_ALT = 0x033, + GRCAN_GPS_PX = 0x034, + GRCAN_GPS_QY = 0x035, + GRCAN_GPS_RZ = 0x036, + GRCAN_UVW_DGPS = 0x030, + GRCAN_ECU_PERFORMANCE = 0x123, } GRCAN_MSG_ID; #endif // CAN_MSG_IDS_H diff --git a/Autogen/CAN/Inc/GRCAN_NODE_ID.h b/Autogen/CAN/Inc/GRCAN_NODE_ID.h index 7dd47cd1a..f68b80888 100644 --- a/Autogen/CAN/Inc/GRCAN_NODE_ID.h +++ b/Autogen/CAN/Inc/GRCAN_NODE_ID.h @@ -3,20 +3,20 @@ #define GR_IDS_H typedef enum { - ALL = 0xFF, - BCU = 0x03, - ECU = 0x02, - CCU = 0x02, - Charger = 0x00, - Charging_SDC = 0x0C, - DGPS = 0x30, - Dash_Panel = 0x05, - Debugger = 0x01, - Fan_Controller_1 = 0x0D, - Fan_Controller_2 = 0x0E, - Fan_Controller_3 = 0x0F, - GR_Inverter = 0x08, - TCM = 0x04, + GRCAN_ALL = 0xFF, + GRCAN_BCU = 0x03, + GRCAN_ECU = 0x02, + GRCAN_CCU = 0x02, + GRCAN_Charger = 0x00, + GRCAN_Charging_SDC = 0x0C, + GRCAN_DGPS = 0x30, + GRCAN_Dash_Panel = 0x05, + GRCAN_Debugger = 0x01, + GRCAN_Fan_Controller_1 = 0x0D, + GRCAN_Fan_Controller_2 = 0x0E, + GRCAN_Fan_Controller_3 = 0x0F, + GRCAN_GR_Inverter = 0x08, + GRCAN_TCM = 0x04, } GRCAN_NODE_ID; #endif // GR_IDS_H diff --git a/CCU/Application/Inc/CCUStateData.h b/CCU/Application/Inc/CCUStateData.h index 0a0b1f15e..405c0e142 100644 --- a/CCU/Application/Inc/CCUStateData.h +++ b/CCU/Application/Inc/CCUStateData.h @@ -30,7 +30,7 @@ typedef struct { // bool BCU_S2_PRECHARGE_ERROR; // State - // uint8_t BCU_S2_PRECHARGE_BITS; + uint8_t BCU_S2_PRECHARGE_BITS; // bool BCU_S2_PRECHARGE_STATE; // bool BCU_S2_IR_STATE; bool BCU_S2_SOFTWARE_LATCH; diff --git a/CCU/Application/Src/CANDler.c b/CCU/Application/Src/CANDler.c index 3dbffb443..680e7876a 100644 --- a/CCU/Application/Src/CANDler.c +++ b/CCU/Application/Src/CANDler.c @@ -4,10 +4,10 @@ #include "CANDler.h" #include "CCUStateData.h" -#include "GR_OLD_BUS_ID.h" -#include "GR_OLD_MSG_DAT.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_DATA.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "Logomatic.h" #include "Unused.h" #include "bitManipulations.h" @@ -19,16 +19,13 @@ CANHandle *primary_can = {0}; void Read_CAN(uint32_t ID, void *data, uint32_t size) { - GR_OLD_MSG_ID messageId = (0x000FFF00 & ID) >> 8; - GR_OLD_NODE_ID nodeId = (0xFF00000 & ID) >> 20; - - UNUSED(nodeId); // TODO Determine if calculating this value is actually needed + GRCAN_MSG_ID messageId = (0x000FFF00 & ID) >> 8; switch (messageId) { - case MSG_BCU_STATUS_2: + case GRCAN_BCU_STATUS_2: // FIXME: if bad message do a thing - if (size != sizeof(GR_OLD_BCU_STATUS_2_MSG)) { + if (size != sizeof(GRCAN_BCU_STATUS_2_MSG)) { LOGOMATIC("Bad CCU CAN Rx length! ID: %lu, Size %lu\n", ID, size); break; } @@ -41,19 +38,22 @@ void Read_CAN(uint32_t ID, void *data, uint32_t size) // What the rewrite would look like: STATUS 2 - GR_OLD_BCU_STATUS_2_MSG *bcu_status_2 = (GR_OLD_BCU_STATUS_2_MSG *)data; - state_data.BCU_S2_MIN_CELL_Volt = bcu_status_2->voltage_min_cell; + GRCAN_BCU_STATUS_2_MSG *bcu_status_2 = (GRCAN_BCU_STATUS_2_MSG *)data; + state_data.BCU_S2_20Volt = bcu_status_2->_20v_voltage; + state_data.BCU_S2_12Volt = bcu_status_2->_12v_voltage; + state_data.BCU_S2_SDC_Volt = bcu_status_2->sdc_voltage; + state_data.BCU_S2_MIN_CELL_Volt = bcu_status_2->min_cell_voltage; state_data.BCU_S2_MAX_CELL_TEMP = bcu_status_2->max_cell_temp; - state_data.BCU_S2_OVERTEMP_ERROR = GETBIT(bcu_status_2->error_bits, 0); - state_data.BCU_S2_OVERVOLT_ERROR = GETBIT(bcu_status_2->error_bits, 1); - state_data.BCU_S2_UNDERVOLT_ERROR = GETBIT(bcu_status_2->error_bits, 2); - state_data.BCU_S2_OVERCURR_ERROR = GETBIT(bcu_status_2->error_bits, 3); - state_data.BCU_S2_OVERCURR_ERROR = GETBIT(bcu_status_2->error_bits, 4); + state_data.BCU_S2_OVERTEMP_ERROR = GETBIT(bcu_status_2->status_flags, 0); + state_data.BCU_S2_OVERVOLT_ERROR = GETBIT(bcu_status_2->status_flags, 1); + state_data.BCU_S2_UNDERVOLT_ERROR = GETBIT(bcu_status_2->status_flags, 2); + state_data.BCU_S2_OVERCURR_ERROR = GETBIT(bcu_status_2->status_flags, 3); + state_data.BCU_S2_UNDERCURR_ERROR = GETBIT(bcu_status_2->status_flags, 4); - state_data.BCU_S2_UNDER20v_WARNING = GETBIT(bcu_status_2->error_bits, 5); - state_data.BCU_S2_UNDER12v_WARNING = GETBIT(bcu_status_2->error_bits, 6); - state_data.BCU_S2_UNDERVOLTSDC_WARNING = GETBIT(bcu_status_2->error_bits, 7); + state_data.BCU_S2_UNDER20v_WARNING = GETBIT(bcu_status_2->status_flags, 5); + state_data.BCU_S2_UNDER12v_WARNING = GETBIT(bcu_status_2->status_flags, 6); + state_data.BCU_S2_UNDERVOLTSDC_WARNING = GETBIT(bcu_status_2->status_flags, 7); break; @@ -159,17 +159,22 @@ void CAN_Configure(void) void SendPrechargeStatus(CCU_StateData *state_data) { + FDCANTxMessage msg; - msg.tx_header.Identifier = ((0xFF & LOCAL_GR_ID) << 20) | ((0xFFF & MSG_BCU_PRECHARGE) << 8) | (0xFF & GR_BCU); + msg.tx_header.Identifier = ((0xFF & LOCAL_GR_ID) << 20) | ((0xFFF & GRCAN_BCU_PRECHARGE) << 8) | (0xFF & GRCAN_BCU); msg.tx_header.IdType = FDCAN_EXTENDED_ID; msg.tx_header.TxFrameType = FDCAN_DATA_FRAME; msg.tx_header.ErrorStateIndicator = FDCAN_ESI_ACTIVE; - msg.tx_header.DataLength = 1; + msg.tx_header.DataLength = FDCAN_DLC_BYTES_1; msg.tx_header.BitRateSwitch = FDCAN_BRS_OFF; msg.tx_header.TxEventFifoControl = FDCAN_NO_TX_EVENTS; msg.tx_header.MessageMarker = 0; msg.data[0] = (state_data->BCU_PRECHARGE_SET_TS_ACTIVE); + + if (sizeof(msg) != sizeof(GRCAN_BCU_PRECHARGE_MSG)) { + LOGOMATIC("Bad CCU CAN Tx length!, Size %u\n", sizeof(msg)); + } LOGOMATIC("PRECHARGE SET: %d\n", state_data->BCU_PRECHARGE_SET_TS_ACTIVE); can_send(primary_can, &msg); diff --git a/CCU/CMakeLists.txt b/CCU/CMakeLists.txt index 7b27d3b4d..839453ca1 100644 --- a/CCU/CMakeLists.txt +++ b/CCU/CMakeLists.txt @@ -35,10 +35,7 @@ if(CMAKE_PRESET_NAME STREQUAL "HOOTLTest") CCUStateTicksTests PRIVATE GLOBALSHARE_LIB - #GR_OLD_CAN_MESSAGES LOGOMATIC_LIB - #GR_ADC - #PERIPHERAL_CAN_LIB BitManipulations_Lib ) add_test(CCUStateTicksTests CCUStateTicksTests) @@ -78,7 +75,7 @@ target_sources( target_link_libraries( ${GR_PROJECT_NAME}_USER_CODE INTERFACE - GR_OLD_CAN_MESSAGES + CANfigurator BitManipulations_Lib PERIPHERAL_CAN_LIB VCP_LIB diff --git a/CCU/Core/Inc/main.h b/CCU/Core/Inc/main.h index e14a6f683..f9e44106f 100644 --- a/CCU/Core/Inc/main.h +++ b/CCU/Core/Inc/main.h @@ -44,7 +44,7 @@ extern "C" { /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_NODE_ID.h" /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ @@ -108,7 +108,7 @@ void Error_Handler(void); #define SOFTWARE_OK_CONTROL_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ -#define LOCAL_GR_ID GR_CCU +#define LOCAL_GR_ID GRCAN_CCU /* USER CODE END Private defines */ #ifdef __cplusplus diff --git a/CMakeLists.txt b/CMakeLists.txt index c78af7f6e..7c62d802b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,9 +24,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) set(lib_path "Lib") set(platform_path "${lib_path}/Platform") -# FIXME Temporary holdover for CAN messages until URCA is ready for merge -include("${lib_path}/FancyLayers-RENAME/GRCAN/TemporaryHoldover/temp.cmake") - # Vendor include("${lib_path}/Vendor/CMSIS_5/cmsis_5.cmake") include("${lib_path}/Vendor/STM32_HAL_LL/cube.cmake") diff --git a/DashPanel/Application/Inc/CANdler.h b/DashPanel/Application/Inc/CANdler.h index 471ffb3ac..240f2822c 100644 --- a/DashPanel/Application/Inc/CANdler.h +++ b/DashPanel/Application/Inc/CANdler.h @@ -1,14 +1,13 @@ #ifndef CANDLER_H #define CANDLER_H -#include "GR_OLD_MSG_DAT.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_MSG_DATA.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "can.h" typedef struct { uint8_t ECUState; - uint8_t TSActiveButton; - uint8_t RTDButton; + uint8_t button_flags; uint8_t led_bits; } DashStatus; @@ -17,8 +16,8 @@ extern CANHandle *can_handler; extern bool canReadyToSend; void CANInitialize(); -void CAN_sendPing(GR_OLD_NODE_ID to, uint32_t data); +void CAN_sendPing(GRCAN_NODE_ID to, uint32_t data); void CAN_callback(uint32_t ID, void *data, uint32_t size); -void CAN_sendECU(CANHandle *c, GR_OLD_DASH_STATUS_MSG *msg, GR_OLD_NODE_ID to); +void CAN_sendECU(CANHandle *c, GRCAN_DASH_STATUS_MSG *msg, GRCAN_NODE_ID to); #endif diff --git a/DashPanel/Application/Src/CANdler.c b/DashPanel/Application/Src/CANdler.c index 6d0df463d..c973ffa0c 100644 --- a/DashPanel/Application/Src/CANdler.c +++ b/DashPanel/Application/Src/CANdler.c @@ -2,17 +2,18 @@ #include -#include "GR_OLD_MSG_DAT.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_MSG_DATA.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "Logomatic.h" #include "Unused.h" +#include "bitManipulations.h" #include "can.h" #include "dashutils.h" #include "main.h" #include "stm32g4xx_hal_fdcan.h" -#define ECU_ID GR_ECU +#define ECU_ID GRCAN_ECU #define PING_ID MSG_PING CANHandle *can_handler; @@ -64,33 +65,33 @@ void CANInitialize() can_start(can_handler); } -void CAN_sendPing(GR_OLD_NODE_ID to, uint32_t data) +void CAN_sendPing(GRCAN_NODE_ID to, uint32_t data) { FDCANTxMessage pingMsg; - pingMsg.tx_header.Identifier = (GR_DASH_PANEL << 20) | (MSG_PING << 8) | to; + pingMsg.tx_header.Identifier = (GRCAN_Dash_Panel << 20) | (GRCAN_PING << 8) | to; pingMsg.tx_header.IdType = FDCAN_EXTENDED_ID; pingMsg.tx_header.TxFrameType = FDCAN_DATA_FRAME; pingMsg.tx_header.ErrorStateIndicator = FDCAN_ESI_ACTIVE; - pingMsg.tx_header.DataLength = sizeof(GR_OLD_PING_MSG); + pingMsg.tx_header.DataLength = sizeof(GRCAN_PING_MSG); pingMsg.tx_header.BitRateSwitch = FDCAN_BRS_OFF; pingMsg.tx_header.TxEventFifoControl = FDCAN_NO_TX_EVENTS; pingMsg.tx_header.MessageMarker = 0; - GR_OLD_PING_MSG msg = {.timestamp = data}; + GRCAN_PING_MSG msg = {.timestamp = data}; memcpy(pingMsg.data, &msg, sizeof(msg)); can_send(can_handler, &pingMsg); } -void CAN_sendECU(CANHandle *c, GR_OLD_DASH_STATUS_MSG *msg, GR_OLD_NODE_ID to) +void CAN_sendECU(CANHandle *c, GRCAN_DASH_STATUS_MSG *msg, GRCAN_NODE_ID to) { FDCANTxMessage sendECUMsg; - sendECUMsg.tx_header.Identifier = (GR_DASH_PANEL << 20) | (MSG_DASH_STATUS << 8) | to; + sendECUMsg.tx_header.Identifier = (GRCAN_Dash_Panel << 20) | (GRCAN_DASH_STATUS << 8) | to; sendECUMsg.tx_header.IdType = FDCAN_EXTENDED_ID; sendECUMsg.tx_header.TxFrameType = FDCAN_DATA_FRAME; sendECUMsg.tx_header.ErrorStateIndicator = FDCAN_ESI_ACTIVE; - sendECUMsg.tx_header.DataLength = sizeof(GR_OLD_DASH_STATUS_MSG); + sendECUMsg.tx_header.DataLength = sizeof(GRCAN_DASH_STATUS_MSG); sendECUMsg.tx_header.BitRateSwitch = FDCAN_BRS_OFF; sendECUMsg.tx_header.TxEventFifoControl = FDCAN_NO_TX_EVENTS; sendECUMsg.tx_header.MessageMarker = 0; @@ -103,18 +104,24 @@ void CAN_sendECU(CANHandle *c, GR_OLD_DASH_STATUS_MSG *msg, GR_OLD_NODE_ID to) void CAN_callback(uint32_t ID, void *data, uint32_t size) { - GR_OLD_MSG_ID msg_id = (0x000FFF00 & ID) >> 8; - GR_OLD_NODE_ID node_id = (0x0FF00000 & ID) >> 20; + GRCAN_MSG_ID msg_id = GETBITS(ID, 12, 12); + GRCAN_NODE_ID node_id = GETBITS(ID, 4, 8); // Process data - if (msg_id == MSG_ECU_STATUS_1 && size == sizeof(GR_OLD_ECU_STATUS_1_MSG)) { - GR_OLD_ECU_STATUS_1_MSG *ecu_data = (GR_OLD_ECU_STATUS_1_MSG *)data; - dashStatus.ECUState = ecu_data->ecu_status; // Get ECU Status - } else if (msg_id == MSG_DASH_CONFIG && size == sizeof(GR_OLD_DASH_CONFIG_MSG)) { - GR_OLD_DASH_CONFIG_MSG *dash_data = (GR_OLD_DASH_CONFIG_MSG *)data; + // ECU Status + if (msg_id == GRCAN_ECU_STATUS_1 && size == sizeof(GRCAN_ECU_STATUS_1_MSG)) { + GRCAN_ECU_STATUS_1_MSG *ecu_data = (GRCAN_ECU_STATUS_1_MSG *)data; + dashStatus.ECUState = ecu_data->ecu_state; // Get ECU Status + + // Dash Config + } else if (msg_id == GRCAN_DASH_CONFIG && size == sizeof(GRCAN_DASH_CONFIG_MSG)) { + GRCAN_DASH_CONFIG_MSG *dash_data = (GRCAN_DASH_CONFIG_MSG *)data; dashStatus.led_bits = dash_data->led_bits; // Get LED bits - } else if (msg_id == PING_ID && size == sizeof(GR_OLD_PING_MSG)) { + + // Ping + } else if (msg_id == GRCAN_PING && size == sizeof(GRCAN_PING_MSG)) { CAN_sendPing(node_id, *(uint32_t *)data); + } else { // Check that you are sending the correct sizes if you get this message LOGOMATIC("Unrecognized CAN message.\n"); diff --git a/DashPanel/CMakeLists.txt b/DashPanel/CMakeLists.txt index c9391ff17..b63f67124 100644 --- a/DashPanel/CMakeLists.txt +++ b/DashPanel/CMakeLists.txt @@ -38,7 +38,7 @@ target_sources( target_link_libraries( ${GR_PROJECT_NAME}_USER_CODE INTERFACE - GR_OLD_CAN_MESSAGES + CANfigurator PERIPHERAL_CAN_LIB CircularBuffer_Lib GR_NEOPIXEL diff --git a/DashPanel/Core/Inc/main.h b/DashPanel/Core/Inc/main.h index 4e65478db..42faacf3b 100644 --- a/DashPanel/Core/Inc/main.h +++ b/DashPanel/Core/Inc/main.h @@ -66,6 +66,7 @@ extern "C" { /* Exported functions prototypes ---------------------------------------------*/ void Error_Handler(void); +void timer_inc(void); /* USER CODE BEGIN EFP */ @@ -95,6 +96,7 @@ void Error_Handler(void); #endif /* USER CODE BEGIN Private defines */ +extern uint32_t timer; /* USER CODE END Private defines */ diff --git a/DashPanel/Core/Src/main.c b/DashPanel/Core/Src/main.c index 30c2a002a..e6770a370 100644 --- a/DashPanel/Core/Src/main.c +++ b/DashPanel/Core/Src/main.c @@ -20,6 +20,7 @@ #include "main.h" #include "CANdler.h" +#include "bitManipulations.h" #include "dashutils.h" /* Private includes ----------------------------------------------------------*/ @@ -58,6 +59,8 @@ LogomaticConfig logomaticConfig = {.clock_source = LOGOMATIC_PCLK1, .prescaler = LOGOMATIC_PRESCALER_DIV1, .tx_fifo_threshold = LOGOMATIC_FIFOTHRESHOLD_1_8, .rx_fifo_threshold = LOGOMATIC_FIFOTHRESHOLD_1_8}; + +uint32_t timer = 0; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ @@ -101,6 +104,7 @@ int main(void) LL_PWR_DisableUCPDDeadBattery(); /* USER CODE BEGIN Init */ + HAL_Init(); CANInitialize(); GPIO_Interrupt_Init(); Setup_Logomatic(&logomaticConfig); @@ -119,6 +123,10 @@ int main(void) NeoPixel_Init(); /* USER CODE BEGIN 2 */ + // uint32_t previous_time = HAL_GetTick(); + // uint32_t current_time; + uint8_t tick_freq = HAL_GetTickFreq(); + /* USER CODE END 2 */ /* Infinite loop */ @@ -127,25 +135,38 @@ int main(void) while (1) { /* USER CODE END WHILE */ - if (canReadyToSend) { + if (canReadyToSend || timer * tick_freq >= 100) { - GR_OLD_DASH_STATUS_MSG msg_struct; + GRCAN_DASH_STATUS_MSG msg_struct; msg_struct.led_bits = dashStatus.led_bits; - msg_struct.ts_button = dashStatus.TSActiveButton; - msg_struct.rtd_button = dashStatus.RTDButton; + msg_struct.button_flags = dashStatus.button_flags; - if (dashStatus.TSActiveButton) { - dashStatus.TSActiveButton = 0; + if (GETBIT(dashStatus.button_flags, 0)) { // TSActive + SetBitInByte(dashStatus.button_flags, 0, false); + } + if (GETBIT(dashStatus.button_flags, 1)) { // RTD + SetBitInByte(dashStatus.button_flags, 1, false); + } + if (GETBIT(dashStatus.button_flags, 2)) { // Mystery Meat Buttons(this through the end) + SetBitInByte(dashStatus.button_flags, 2, false); } - if (dashStatus.RTDButton) { - dashStatus.RTDButton = 0; + if (GETBIT(dashStatus.button_flags, 3)) { + SetBitInByte(dashStatus.button_flags, 3, false); } + if (GETBIT(dashStatus.button_flags, 4)) { + SetBitInByte(dashStatus.button_flags, 4, false); + } + if (GETBIT(dashStatus.button_flags, 5)) { + SetBitInByte(dashStatus.button_flags, 5, false); + } + // CAN_sendPing(Dash_Panel); + CAN_sendECU(can_handler, &msg_struct, GRCAN_ECU); - // CAN_sendPing(GR_DASH_PANEL); - CAN_sendECU(can_handler, &msg_struct, GR_ECU); + LOGOMATIC("CAN\n"); canReadyToSend = false; + timer = 0; } // Neopixel @@ -228,37 +249,37 @@ static void MX_GPIO_Init(void) /**/ LL_GPIO_ResetOutputPin(GPIOC, LL_GPIO_PIN_4); - /**/ + /*TSActive*/ GPIO_InitStruct.Pin = TS_ACTIVE_BTN_Pin; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_Init(TS_ACTIVE_BTN_GPIO_Port, &GPIO_InitStruct); - /**/ + /*RTD*/ GPIO_InitStruct.Pin = RTD_BTN_Pin; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_Init(RTD_BTN_GPIO_Port, &GPIO_InitStruct); - /**/ + /*Button 1*/ GPIO_InitStruct.Pin = LL_GPIO_PIN_5; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /**/ + /*Button 2*/ GPIO_InitStruct.Pin = LL_GPIO_PIN_6; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /**/ + /*Button 3*/ GPIO_InitStruct.Pin = LL_GPIO_PIN_7; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; LL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /**/ + /*Button 4*/ GPIO_InitStruct.Pin = LL_GPIO_PIN_4; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; @@ -311,6 +332,11 @@ static void GPIO_Interrupt_Init(void) NVIC_EnableIRQ(EXTI4_IRQn); } +void timer_inc(void) +{ + timer++; +} + /* USER CODE END 4 */ /** diff --git a/DashPanel/Core/Src/stm32g4xx_it.c b/DashPanel/Core/Src/stm32g4xx_it.c index 1371c09e2..2f9dad7a0 100644 --- a/DashPanel/Core/Src/stm32g4xx_it.c +++ b/DashPanel/Core/Src/stm32g4xx_it.c @@ -22,6 +22,7 @@ #include "CANdler.h" // For CAN stuff #include "Logomatic.h" // For Logomatic +#include "bitManipulations.h" #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ @@ -180,7 +181,7 @@ void PendSV_Handler(void) void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ - + timer_inc(); /* USER CODE END SysTick_IRQn 0 */ /* USER CODE BEGIN SysTick_IRQn 1 */ @@ -222,7 +223,8 @@ void EXTI3_IRQHandler(void) if (LL_EXTI_IsActiveFlag_0_31(LL_EXTI_LINE_3)) { // Blame Electronics if hardware debounce doesn't work - dashStatus.TSActiveButton = 1; + SetBitInByte(dashStatus.button_flags, 0, true); + // dashStatus = 1; canReadyToSend = true; LOGOMATIC("TS Active Pressed!"); LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_3); @@ -241,7 +243,7 @@ void EXTI4_IRQHandler(void) // Blame Electronics if hardware debounce doesn't work - dashStatus.RTDButton = 1; + SetBitInByte(dashStatus.button_flags, 1, true); canReadyToSend = true; LOGOMATIC("RTD Pressed!"); LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_4); diff --git a/ECU/Application/Inc/CANdler.h b/ECU/Application/Inc/CANdler.h index 7072f5ad4..048243634 100644 --- a/ECU/Application/Inc/CANdler.h +++ b/ECU/Application/Inc/CANdler.h @@ -1,14 +1,14 @@ #include #include -#include "GR_OLD_BUS_ID.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "StateData.h" #ifndef CANDLER_H #define CANDLER_H -void ECU_CAN_MessageHandler(ECU_StateData *state_data, GR_OLD_BUS_ID bus_id, GR_OLD_MSG_ID msg_id, GR_OLD_NODE_ID sender_id, uint8_t *data, uint32_t data_length); +void ECU_CAN_MessageHandler(ECU_StateData *state_data, GRCAN_BUS_ID bus_id, GRCAN_MSG_ID msg_id, GRCAN_NODE_ID sender_id, uint8_t *data, uint32_t data_length); #endif diff --git a/ECU/Application/Inc/CANutils.h b/ECU/Application/Inc/CANutils.h index a7011d9fa..aa79cfb1d 100644 --- a/ECU/Application/Inc/CANutils.h +++ b/ECU/Application/Inc/CANutils.h @@ -1,15 +1,15 @@ #include -#include "GR_OLD_BUS_ID.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "StateData.h" #ifndef CANUTILS_H #define CANUTILS_H #define ECU_STATE_DATA_SEND_INTERVAL_MS 20 -void ECU_CAN_Send(GR_OLD_BUS_ID bus, GR_OLD_NODE_ID destNode, GR_OLD_MSG_ID messageID, void *data, uint32_t size); +void ECU_CAN_Send(GRCAN_BUS_ID bus, GRCAN_NODE_ID destNode, GRCAN_MSG_ID messageID, void *data, uint32_t size); void SendECUStateDataOverCAN(ECU_StateData *stateData); #endif diff --git a/ECU/Application/Inc/StateData.h b/ECU/Application/Inc/StateData.h index 3bad50701..1ba6ccfca 100644 --- a/ECU/Application/Inc/StateData.h +++ b/ECU/Application/Inc/StateData.h @@ -1,7 +1,7 @@ #include #include -#include "GR_OLD_MSG_DAT.h" +#include "GRCAN_MSG_DATA.h" #include "StateMachine.h" #ifndef _STATEDATA_H_ @@ -79,10 +79,13 @@ typedef volatile struct ECU_StateData { float estop_sense; float driving_heat_capacity_1; float driving_heat_capacity_2; + uint16_t bse_signal; + uint16_t bspd_signal; uint16_t APPS1_Signal; uint16_t APPS2_Signal; uint16_t Brake_R_Signal; uint16_t Brake_F_Signal; + uint16_t aux_signal; uint8_t status_bits[3]; int8_t ping_block[3]; /** Node timeout status bits (1=OK, 0=Timeout) */ uint8_t powerlevel_torquemap; /** Power lvl (4b) & torque map (4b) */ diff --git a/ECU/Application/Src/CANdler.c b/ECU/Application/Src/CANdler.c index f6e67c0e5..3ab7a4eff 100644 --- a/ECU/Application/Src/CANdler.c +++ b/ECU/Application/Src/CANdler.c @@ -2,9 +2,9 @@ #include -#include "GR_OLD_BUS_ID.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "Logomatic.h" #include "Pinging.h" #include "StateData.h" @@ -14,105 +14,109 @@ extern ECU_StateData stateLump; -void ReportBadMessageLength(GR_OLD_BUS_ID bus_id, GR_OLD_MSG_ID msg_id, GR_OLD_NODE_ID sender_id) +void ReportBadMessageLength(GRCAN_BUS_ID bus_id, GRCAN_MSG_ID msg_id, GRCAN_NODE_ID sender_id) { // TODO Ideally change some state data to note a bad message, ie if BCU // that can be a comms error LOGOMATIC("Bad ECU CAN Rx length! Bus: %d, Msg: %X, Sender: %X\n", bus_id, msg_id, sender_id); } -void ReportUnhandledMessage(GR_OLD_BUS_ID bus_id, GR_OLD_MSG_ID msg_id, GR_OLD_NODE_ID sender_id) +void ReportUnhandledMessage(GRCAN_BUS_ID bus_id, GRCAN_MSG_ID msg_id, GRCAN_NODE_ID sender_id) { // Filtering likely needs to be adjusted if this is happening often LOGOMATIC("Unhandled ECU CAN Rx msg! Bus: %d, Msg: %X, Sender: %X\n", bus_id, msg_id, sender_id); } -void ECU_CAN_MessageHandler(ECU_StateData *state_data, GR_OLD_BUS_ID bus_id, GR_OLD_MSG_ID msg_id, GR_OLD_NODE_ID sender_id, uint8_t *data, uint32_t data_length) +void ECU_CAN_MessageHandler(ECU_StateData *state_data, GRCAN_BUS_ID bus_id, GRCAN_MSG_ID msg_id, GRCAN_NODE_ID sender_id, uint8_t *data, uint32_t data_length) { switch (msg_id) { - case MSG_DEBUG_2_0: - if (data_length > sizeof(GR_OLD_DEBUG_2_MSG)) { + case GRCAN_DEBUG_2_0: + if (data_length > sizeof(GRCAN_DEBUG_2_0_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } LOGOMATIC("Received from %02X on bus %d: %.*s\n", sender_id, bus_id, (int)data_length, data); break; - case MSG_DEBUG_FD: - if (data_length > sizeof(GR_OLD_DEBUG_2_MSG)) { + case GRCAN_DEBUG_FD: + if (data_length > sizeof(GRCAN_DEBUG_FD_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } LOGOMATIC("Received from %02X on bus %d: %.*s\n", sender_id, bus_id, (int)data_length, data); break; - case MSG_PING: - if (data_length != sizeof(GR_OLD_PING_MSG)) { + case GRCAN_PING: + if (data_length != sizeof(GRCAN_PING_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - respondToPing(sender_id, ((GR_OLD_PING_MSG *)data)->timestamp); + respondToPing(sender_id, ((GRCAN_PING_MSG *)data)->timestamp); break; - case MSG_BCU_STATUS_1: - if (data_length != sizeof(GR_OLD_BCU_STATUS_1_MSG)) { + case GRCAN_BCU_STATUS_1: + if (data_length != sizeof(GRCAN_BCU_STATUS_1_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - GR_OLD_BCU_STATUS_1_MSG *bcu_status_1 = (GR_OLD_BCU_STATUS_1_MSG *)data; - state_data->tractivebattery_soc = bcu_status_1->tractivebattery_soc; + GRCAN_BCU_STATUS_1_MSG *bcu_status_1 = (GRCAN_BCU_STATUS_1_MSG *)data; + state_data->tractivebattery_soc = bcu_status_1->accumulator_soc; state_data->glv_soc = bcu_status_1->glv_soc; state_data->ts_voltage = bcu_status_1->ts_voltage * 0.01; break; - case MSG_BCU_STATUS_2: - if (data_length != sizeof(GR_OLD_BCU_STATUS_2_MSG)) { + case GRCAN_BCU_STATUS_2: + if (data_length != sizeof(GRCAN_BCU_STATUS_2_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - GR_OLD_BCU_STATUS_2_MSG *bcu_status_2 = (GR_OLD_BCU_STATUS_2_MSG *)data; + GRCAN_BCU_STATUS_2_MSG *bcu_status_2 = (GRCAN_BCU_STATUS_2_MSG *)data; state_data->max_cell_temp_c = bcu_status_2->max_cell_temp * 0.25; - state_data->bcu_error_warning_bits = bcu_status_2->error_bits; - state_data->ir_minus = GETBIT(bcu_status_2->precharge_bits, 1); - state_data->ir_plus = GETBIT(bcu_status_2->precharge_bits, 2); - state_data->bcu_software_latch = GETBIT(bcu_status_2->precharge_bits, 3); + state_data->bcu_error_warning_bits = bcu_status_2->status_flags; + state_data->ir_minus = GETBIT(bcu_status_2->precharge_latch_flags, 1); + state_data->ir_plus = GETBIT(bcu_status_2->precharge_latch_flags, 2); + state_data->bcu_software_latch = GETBIT(bcu_status_2->precharge_latch_flags, 3); break; - case MSG_INVERTER_STATUS_1: - if (data_length != sizeof(GR_OLD_INVERTER_STATUS_1_MSG)) { + case GRCAN_INVERTER_STATUS_1: + if (data_length != sizeof(GRCAN_INVERTER_STATUS_1_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - GR_OLD_INVERTER_STATUS_1_MSG *inverter_status_1 = (GR_OLD_INVERTER_STATUS_1_MSG *)data; + GRCAN_INVERTER_STATUS_1_MSG *inverter_status_1 = (GRCAN_INVERTER_STATUS_1_MSG *)data; UNUSED(inverter_status_1); break; - case MSG_INVERTER_STATUS_3: - if (data_length != sizeof(GR_OLD_INVERTER_STATUS_3_MSG)) { + case GRCAN_INVERTER_STATUS_3: + if (data_length != sizeof(GRCAN_INVERTER_STATUS_3_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - GR_OLD_INVERTER_STATUS_3_MSG *inverter_status_3 = (GR_OLD_INVERTER_STATUS_3_MSG *)data; + GRCAN_INVERTER_STATUS_3_MSG *inverter_status_3 = (GRCAN_INVERTER_STATUS_3_MSG *)data; state_data->inverter_fault_map = inverter_status_3->fault_bits; break; /* - case MSG_STEERING_STATUS: - if (data_length != sizeof(GR_OLD_STEERING_STATUS_MSG)) { + case GRCAN_STEERING_STATUS: + if (data_length != sizeof(GRCAN_STEERING_STATUS_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - GR_OLD_STEERING_STATUS_MSG *steering_status = (GR_OLD_STEERING_STATUS_MSG *)data; + GRCAN_STEERING_STATUS_MSG *steering_status = (GRCAN_STEERING_STATUS_MSG *)data; state_data->powerlevel_torquemap = steering_status->encoder_bits; break; */ - case MSG_SAM_REAR_WHEELSPEED: - if (data_length != sizeof(GR_OLD_SAM_REAR_WHEELSPEED_MSG)) { + + // TODO: fix when sensors done + /* + case GRCAN_SAM_REAR_WHEELSPEED: + if (data_length != sizeof(GRCAN_SAM_REAR_WHEELSPEED_MSG)) { ReportBadMessageLength(bus_id, msg_id, sender_id); break; } - GR_OLD_SAM_REAR_WHEELSPEED_MSG *encoder_status = (GR_OLD_SAM_REAR_WHEELSPEED_MSG *)data; + GRCAN_SAM_REAR_WHEELSPEED_MSG *encoder_status = (GRCAN_SAM_REAR_WHEELSPEED_MSG *)data; state_data->rr_wheel_rpm = encoder_status->wheel_speed * 0.1 - 32768; // TODO: find out which wheel this actually measures: one or 4 sensors? state_data->vehicle_speed_mph = state_data->rr_wheel_rpm * WHEEL_RPM_TO_MPH_RATIO; break; + */ default: ReportUnhandledMessage(bus_id, msg_id, sender_id); break; diff --git a/ECU/Application/Src/CANutils.c b/ECU/Application/Src/CANutils.c index a05d12ea5..e557f484b 100644 --- a/ECU/Application/Src/CANutils.c +++ b/ECU/Application/Src/CANutils.c @@ -1,8 +1,8 @@ #include "CANutils.h" -#include "GR_OLD_BUS_ID.h" -#include "GR_OLD_MSG_DAT.h" -#include "GR_OLD_MSG_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "Logomatic.h" #include "StateData.h" #include "StateTicks.h" @@ -13,7 +13,7 @@ uint32_t lastTickECUStateDataSent = 0; -void ECU_CAN_Send(GR_OLD_BUS_ID bus, GR_OLD_NODE_ID destNode, GR_OLD_MSG_ID messageID, void *data, uint32_t size) +void ECU_CAN_Send(GRCAN_BUS_ID bus, GRCAN_NODE_ID destNode, GRCAN_MSG_ID messageID, void *data, uint32_t size) { if (size > FDCAN_MAX_DATA_BYTES) { size = FDCAN_MAX_DATA_BYTES; @@ -39,10 +39,10 @@ void ECU_CAN_Send(GR_OLD_BUS_ID bus, GR_OLD_NODE_ID destNode, GR_OLD_MSG_ID mess memcpy(&(msg.data), data, size); switch (bus) { - case GR_OLD_BUS_PRIMARY: + case GRCAN_BUS_PRIMARY: can_send(primary_can, &msg); break; - case GR_OLD_BUS_DATA: + case GRCAN_BUS_DATA: can_send(data_can, &msg); break; default: @@ -112,7 +112,7 @@ void SendECUStateDataOverCAN(ECU_StateData *stateData) LOGOMATIC("Sending ECU State Data over CAN"); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_ALL, MSG_ECU_STATUS_1, (void *)&messages.ECUStatusMsgOne, sizeof(messages.ECUStatusMsgOne)); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_ALL, MSG_ECU_STATUS_2, (void *)&messages.ECUStatusMsgTwo, sizeof(messages.ECUStatusMsgTwo)); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_ALL, MSG_ECU_STATUS_3, (void *)&messages.ECUStatusMsgThree, sizeof(messages.ECUStatusMsgThree)); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_ALL, GRCAN_ECU_STATUS_1, (void *)&messages.ECUStatusMsgOne, sizeof(messages.ECUStatusMsgOne)); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_ALL, GRCAN_ECU_STATUS_2, (void *)&messages.ECUStatusMsgTwo, sizeof(messages.ECUStatusMsgTwo)); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_ALL, GRCAN_ECU_STATUS_3, (void *)&messages.ECUStatusMsgThree, sizeof(messages.ECUStatusMsgThree)); } diff --git a/ECU/Application/Src/Lights.c b/ECU/Application/Src/Lights.c index 66eb5832e..9b2fcf086 100644 --- a/ECU/Application/Src/Lights.c +++ b/ECU/Application/Src/Lights.c @@ -74,8 +74,8 @@ void BMSLights(ECU_StateData *stateLump) light |= stateLump->ts_voltage > CRITICAL_TS_VOLTAGE; light |= bmsFailure(stateLump); // TODO: interrupted/missing BMS vals - GR_OLD_DASH_CONFIG_MSG message = {.led_bits = light}; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DASH_PANEL, MSG_DASH_CONFIG, &message, sizeof(message)); + GRCAN_DASH_CONFIG_MSG message = {.led_bits = light}; + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Dash_Panel, GRCAN_DASH_CONFIG, &message, sizeof(message)); } void IMDLights(ECU_StateData *stateLump) @@ -83,8 +83,8 @@ void IMDLights(ECU_StateData *stateLump) uint8_t light = 0; // TODO: isolation failure? light |= imdFailure(stateLump); - GR_OLD_DASH_CONFIG_MSG message = {.led_bits = (light << 1)}; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DASH_PANEL, MSG_DASH_CONFIG, &message, sizeof(message)); + GRCAN_DASH_CONFIG_MSG message = {.led_bits = (light << 1)}; + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Dash_Panel, GRCAN_DASH_CONFIG, &message, sizeof(message)); } void BSPDLights(ECU_StateData *stateLump) @@ -92,8 +92,8 @@ void BSPDLights(ECU_StateData *stateLump) uint8_t light = 0; // TODO: isolation failure? light |= bspdFailure(stateLump); - GR_OLD_DASH_CONFIG_MSG message = {.led_bits = (light << 2)}; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DASH_PANEL, MSG_DASH_CONFIG, &message, sizeof(message)); + GRCAN_DASH_CONFIG_MSG message = {.led_bits = (light << 2)}; + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Dash_Panel, GRCAN_DASH_CONFIG, &message, sizeof(message)); } void lightControl(ECU_StateData *stateData) diff --git a/ECU/Application/Src/Pinging.c b/ECU/Application/Src/Pinging.c index 55aa9d3d2..eda10d9a8 100644 --- a/ECU/Application/Src/Pinging.c +++ b/ECU/Application/Src/Pinging.c @@ -1,16 +1,15 @@ #include "Pinging.h" #include "CANutils.h" -#include "GR_OLD_MSG_DAT.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "StateUtils.h" // add new pingable devices here, arrays are updated automagically #define PING_LIST(OP) \ - OP(GR_BCU, 0) \ - OP(GR_DASH_PANEL, 1) \ - OP(GR_CCU, 2) + OP(GRCAN_BCU, 0) \ + OP(GRCAN_Dash_Panel, 1) // Converts PING_LIST into a list of the first column (IDs) #define PING_LIST_AS_ID(id, index) id, @@ -42,7 +41,7 @@ void pingAll(void) } sentTimestamps[i] = timestamp; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, IDsToBePinged[i], MSG_PING, &(GR_OLD_PING_MSG){timestamp}, sizeof(GR_OLD_PING_MSG)); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, IDsToBePinged[i], GRCAN_PING, &(GRCAN_PING_MSG){timestamp}, sizeof(GRCAN_PING_MSG)); } } diff --git a/ECU/Application/Src/StateTicks.c b/ECU/Application/Src/StateTicks.c index 0a7d949c8..3ed0e446d 100644 --- a/ECU/Application/Src/StateTicks.c +++ b/ECU/Application/Src/StateTicks.c @@ -4,10 +4,10 @@ #include "CANutils.h" #include "ComparatorMacros.h" -#include "GR_OLD_BUS_ID.h" -#include "GR_OLD_MSG_DAT.h" -#include "GR_OLD_MSG_ID.h" -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_BUS_ID.h" +#include "GRCAN_MSG_DATA.h" +#include "GRCAN_MSG_ID.h" +#include "GRCAN_NODE_ID.h" #include "Logomatic.h" #include "StateData.h" #include "StateMachine.h" @@ -28,6 +28,7 @@ ECU_StateData stateLump = {.ecu_state = GR_GLV_ON, .bcu_software_latch = 1}; static uint32_t buzzer_start_millis; static uint32_t last_can_inverter_request_millis; +static uint32_t last_can_tcm_request_millis; // TODO: implement CANHandle *primary_can; CANHandle *data_can; @@ -88,7 +89,7 @@ void ECU_GLV_On(ECU_StateData *stateData) if (stateData->ts_voltage >= SAFE_VOLTAGE_LIMIT) { ECU_Transition_To_Tractive_System_Discharge(stateData); LOGOMATIC("Error: TS Voltage >= %d!\n", SAFE_VOLTAGE_LIMIT); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DEBUGGER, MSG_DEBUG_2_0, "TS-Runwy", 8); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Debugger, GRCAN_DEBUG_2_0, "TS-Runwy", 8); return; } @@ -102,8 +103,8 @@ void ECU_GLV_On(ECU_StateData *stateData) void ECU_Transition_To_Precharge_Engaged(ECU_StateData *stateData) { /*send message to BCU to start precharging*/ - GR_OLD_BCU_PRECHARGE_MSG message = {.precharge = 1}; // Go TS Active/Precharge - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_BCU, MSG_BCU_PRECHARGE, &message, sizeof(message)); + GRCAN_BCU_PRECHARGE_MSG message = {.set_ts_active = 1}; // Go TS Active/Precharge + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_BCU, GRCAN_BCU_PRECHARGE, &message, sizeof(message)); stateData->ecu_state = GR_PRECHARGE_ENGAGED; LOGOMATIC("PRECHARGE START to PRECHARGE ENGAGED!\n"); return; @@ -120,7 +121,7 @@ void ECU_Precharge_Engaged(ECU_StateData *stateData) if (!stateData->ts_active_button_active || CommunicationError(stateData)) { ECU_Transition_To_Tractive_System_Discharge(stateData); LOGOMATIC("ERROR or ts_active OFF! PRECHARGE ENGAGED to TS DISCHARGE START!\n"); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DEBUGGER, MSG_DEBUG_2_0, "TS-P-ITR", 8); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Debugger, GRCAN_DEBUG_2_0, "TS-P-ITR", 8); return; } } @@ -136,13 +137,23 @@ void ECU_Precharge_Complete(ECU_StateData *stateData) if (CriticalError(stateData)) { ECU_Transition_To_Tractive_System_Discharge(stateData); LOGOMATIC("Error: Critical Error Occurred. Discharging Tractive System.\n"); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DEBUGGER, MSG_DEBUG_2_0, "HV-CritE", 8); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Debugger, GRCAN_DEBUG_2_0, "HV-CritE", 8); return; } if (PressingBrake(stateData) && stateData->rtd_button_active) { - GR_OLD_INVERTER_CONFIG_MSG message = {.max_ac_current = 0xFFFF, .max_dc_current = 0xFFFF, .abs_max_motor_rpm = 0xFFFF, .motor_direction = 0}; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_GR_INVERTER_1, MSG_INVERTER_CONFIG, &message, sizeof(message)); + GRCAN_INVERTER_CONFIG_MSG inverter_message = {.max_ac_current = 0xFFFF, .max_dc_current = 0xFFFF, .absolute_max_rpm_limit = 0xFFFF, .motor_direction = 0}; + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_GR_Inverter, GRCAN_INVERTER_CONFIG, &inverter_message, sizeof(inverter_message)); + GRCAN_ECU_ANALOG_DATA_MSG pedals_message = {.bspd_signal = stateData->bspd_signal, + .bse_signal = stateData->bse_signal, + .apps_1_signal = stateData->APPS1_Signal, + .apps_2_signal = stateData->APPS2_Signal, + .brakeline_f_signal = stateData->Brake_F_Signal, + .brakeline_r_signal = stateData->Brake_R_Signal, + // TODO: include steering wheel data + .steering_angle_signal = 0, + .aux_signal = stateData->aux_signal}; + ECU_CAN_Send(GRCAN_BUS_DATA, GRCAN_TCM, GRCAN_ECU_ANALOG_DATA, &pedals_message, sizeof(pedals_message)); LOGOMATIC("PRECHARGE COMPLETE to DRIVE START/ACTIVE!\n"); ECU_Transition_To_Drive_Active(stateData); return; @@ -161,7 +172,7 @@ void ECU_Drive_Active(ECU_StateData *stateData) if (!stateData->ts_active_button_active || CriticalError(stateData)) { ECU_Transition_To_Tractive_System_Discharge(stateData); LOGOMATIC("Error: Critical Error Occured. Discharging Tractive System.\n"); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DEBUGGER, MSG_DEBUG_2_0, "DA-CritE", 8); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Debugger, GRCAN_DEBUG_2_0, "DA-CritE", 8); return; } @@ -201,8 +212,24 @@ void ECU_Drive_Active(ECU_StateData *stateData) } if (stateData->millisSinceBoot - last_can_inverter_request_millis > 10) { - GR_OLD_INVERTER_COMMAND_MSG message = {.ac_current = torque_request * 100 + 32768, .dc_current = torque_request * 100 + 32768, .drive_enable = 1, .rpm_limit = 0}; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_GR_INVERTER_1, MSG_INVERTER_COMMAND, &message, sizeof(message)); + GRCAN_INVERTER_COMMAND_MSG message = {.set_ac_current = torque_request * 100 + 32768, .set_dc_current = torque_request * 100 + 32768, .drive_enable = 1, .rpm_limit = 0}; + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_GR_Inverter, GRCAN_INVERTER_COMMAND, &message, sizeof(message)); + last_can_inverter_request_millis = stateData->millisSinceBoot; + } + + // placeholder for pedal data + // TODO: determine send time (15, 20 ms?) + if (stateData->millisSinceBoot - last_can_tcm_request_millis > 10) { + GRCAN_ECU_ANALOG_DATA_MSG message = {.bspd_signal = stateData->bspd_signal, + .bse_signal = stateData->bse_signal, + .apps_1_signal = stateData->APPS1_Signal, + .apps_2_signal = stateData->APPS2_Signal, + .brakeline_f_signal = stateData->Brake_F_Signal, + .brakeline_r_signal = stateData->Brake_R_Signal, + // TODO: include steering wheel data + .steering_angle_signal = 0, + .aux_signal = stateData->aux_signal}; + ECU_CAN_Send(GRCAN_BUS_DATA, GRCAN_TCM, GRCAN_ECU_ANALOG_DATA, &message, sizeof(message)); last_can_inverter_request_millis = stateData->millisSinceBoot; } } @@ -211,8 +238,8 @@ void ECU_Transition_To_Tractive_System_Discharge(ECU_StateData *stateData) { stateData->ecu_state = GR_TS_DISCHARGE; LOGOMATIC("ECU: BCU discharge Tractive System\n"); - GR_OLD_BCU_PRECHARGE_MSG message = {.precharge = 0}; - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_BCU, MSG_BCU_PRECHARGE, &message, sizeof(message)); + GRCAN_BCU_PRECHARGE_MSG message = {.set_ts_active = 0}; + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_BCU, GRCAN_BCU_PRECHARGE, &message, sizeof(message)); stateData->dischargeStartMillis = stateData->millisSinceBoot; } @@ -232,6 +259,6 @@ void ECU_Tractive_System_Discharge(ECU_StateData *stateData) */ if (stateData->millisSinceBoot - stateData->dischargeStartMillis > TRACTIVE_SYSTEM_MAX_PERMITTED_DISCHARGE_TIME_MILLIS) { LOGOMATIC("Warning: Tractive System fails to discharge in time.\n"); - ECU_CAN_Send(GR_OLD_BUS_PRIMARY, GR_DEBUGGER, MSG_DEBUG_2_0, "TS-D-TLE", 8); + ECU_CAN_Send(GRCAN_BUS_PRIMARY, GRCAN_Debugger, GRCAN_DEBUG_2_0, "TS-D-TLE", 8); } } diff --git a/ECU/CMakeLists.txt b/ECU/CMakeLists.txt index 41327e2ab..db2656b1b 100644 --- a/ECU/CMakeLists.txt +++ b/ECU/CMakeLists.txt @@ -36,7 +36,7 @@ if(CMAKE_PRESET_NAME STREQUAL "HOOTLTest") StateTicksTest PRIVATE GLOBALSHARE_LIB - GR_OLD_CAN_MESSAGES + CANfigurator LOGOMATIC_LIB # GR_ADC # PERIPHERAL_CAN_LIB @@ -84,7 +84,7 @@ target_sources( target_link_libraries( ${GR_PROJECT_NAME}_USER_CODE INTERFACE - GR_OLD_CAN_MESSAGES + CANfigurator GR_ADC PERIPHERAL_CAN_LIB BitManipulations_Lib diff --git a/ECU/Core/Inc/main.h b/ECU/Core/Inc/main.h index de0c4f788..a04f2580a 100644 --- a/ECU/Core/Inc/main.h +++ b/ECU/Core/Inc/main.h @@ -43,7 +43,7 @@ extern "C" { /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ -#include "GR_OLD_NODE_ID.h" +#include "GRCAN_NODE_ID.h" /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ @@ -58,7 +58,7 @@ extern "C" { /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ -#define LOCAL_GR_ID GR_ECU +#define LOCAL_GR_ID GRCAN_ECU /* USER CODE END EM */ /* Exported functions prototypes ---------------------------------------------*/ diff --git a/ECU/Core/Src/main.c b/ECU/Core/Src/main.c index 0ad5307fc..b46e78573 100644 --- a/ECU/Core/Src/main.c +++ b/ECU/Core/Src/main.c @@ -19,7 +19,7 @@ /* Includes ------------------------------------------------------------------*/ #include "main.h" -#include "GR_OLD_BUS_ID.h" +#include "GRCAN_BUS_ID.h" #include "StateData.h" #include "StateTicks.h" #include "adc.h" @@ -117,18 +117,18 @@ void read_digital(void) void write_adc_values_to_state_data() { // analog - // TODO: bse signal idk what to do ADC_outputs[0] - // TODO: bspd signal --> ADC_outputs[1], find use + stateLump.bse_signal = ADC_outputs[0]; + stateLump.bspd_signal = ADC_outputs[1]; stateLump.APPS1_Signal = ADC_outputs[2]; stateLump.APPS2_Signal = ADC_outputs[3]; stateLump.Brake_F_Signal = ADC_outputs[4]; stateLump.Brake_R_Signal = ADC_outputs[5]; - // TODO: Aux signal idk what to do with it ADC1_outputs[6] + stateLump.aux_signal = ADC_outputs[6]; // TODO: determine conversion factors for all of these (uint to float) - stateLump.bspd_sense = ADC_outputs[6]; - stateLump.imd_sense = ADC_outputs[7]; - stateLump.ams_sense = ADC_outputs[8]; + stateLump.bspd_sense = ADC_outputs[7]; + stateLump.imd_sense = ADC_outputs[8]; + stateLump.ams_sense = ADC_outputs[9]; } void ADC_Configure(void) @@ -139,44 +139,6 @@ void ADC_Configure(void) LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_ADC12); LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOA); - // OLD ADC (FOR REF) - /* - // Initialize the ADC1 - ADC_Group_Init(ADC1, PS_8); // TODO: change prescalar l8r - ADC_Regular_Group_Init(ADC1, RANKS_7); - - // Initialize the pins and channels - Pin_Ports p1 = {0}; - p1.port = GPIOC; - p1.pin = LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_2 | LL_GPIO_PIN_3; - ADC_Init_Pins(&p1); - Pin_Ports p2 = {0}; - p2.port = GPIOB; - p2.pin = LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_14; - ADC_Init_Pins(&p2); - ADC_Channel_Init(ADC1, RANK_1, ADC_CHANNEL_6, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC1, RANK_2, ADC_CHANNEL_7, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC1, RANK_3, ADC_CHANNEL_8, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC1, RANK_4, ADC_CHANNEL_9, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC1, RANK_5, ADC_CHANNEL_15, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC1, RANK_6, ADC_CHANNEL_12, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC1, RANK_7, ADC_CHANNEL_5, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - - // Initialize ADC2 - ADC_Init(ADC2, RESOLUTION_12, RIGHT); - ADC_Regular_Group_Init(ADC2, RANKS_4); - - // Initialize the pins and channels - Pin_Ports p3 = {0}; - p3.port = GPIOA; - p3.pin = LL_GPIO_PIN_15; - ADC_Init_Pins(&p3); - ADC_Channel_Init(ADC2, RANK_1, ADC_CHANNEL_15, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC2, RANK_2, ADC_CHANNEL_13, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC2, RANK_3, ADC_CHANNEL_3, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - ADC_Channel_Init(ADC2, RANK_4, ADC_CHANNEL_4, SINGLE_ENDED, SAMPLINGTIME_247CYCLES_5); - */ - // ADC 1 ADC_Init_Values Init_Vals_ADC1 = {0}; Init_Vals_ADC1.ADC = ADC1; @@ -245,14 +207,14 @@ void ADC_Configure(void) void CAN1_rx_callback(uint32_t ID, void *data, uint32_t size) { - ECU_CAN_MessageHandler(&stateLump, GR_OLD_BUS_PRIMARY, + ECU_CAN_MessageHandler(&stateLump, GRCAN_BUS_PRIMARY, (0x000FFF00 & ID) >> 8, // TODO: Double check (0xFF00000 & ID) >> 20, data, size); } void CAN2_rx_callback(uint32_t ID, void *data, uint32_t size) { - ECU_CAN_MessageHandler(&stateLump, GR_OLD_BUS_DATA, (0x000FFF00 & ID) >> 8, (0xFF00000 & ID) >> 20, data, size); + ECU_CAN_MessageHandler(&stateLump, GRCAN_BUS_DATA, (0x000FFF00 & ID) >> 8, (0xFF00000 & ID) >> 20, data, size); } void CAN_Configure() @@ -413,6 +375,11 @@ int main(void) MX_FDCAN2_Init(); /* USER CODE BEGIN 2 */ + // Initialize DWT + CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; + DWT->CYCCNT = 0; + DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; + // Initialize CAN CAN_Configure(); @@ -425,22 +392,34 @@ int main(void) /* Infinite loop */ /* USER CODE BEGIN WHILE */ + uint32_t elapsed_cycles, cycle_counter_accumulator = -1; while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ + if (cycle_counter_accumulator == 10) { + elapsed_cycles = DWT->CYCCNT; + LOGOMATIC("Cycles elapsed for 10 iterations of the main loop: %lu\n", elapsed_cycles); + GRCAN_ECU_PERFORMANCE_MSG performance_message = {.elapsed_cycles = elapsed_cycles}; + ECU_CAN_Send(GRCAN_BUS_DATA, GRCAN_TCM, GRCAN_ECU_PERFORMANCE, &performance_message, sizeof(GRCAN_ECU_PERFORMANCE_MSG)); + cycle_counter_accumulator = 0; + DWT->CYCCNT = 0; + } else { + cycle_counter_accumulator++; + } + static uint32_t nextPing; if (MillisecondsSinceBoot() >= nextPing) { pingAll(); if (nextPing != 0) { - if (getRTT(GR_BCU) == PINGTIMEOUT_VALUE) { + if (getRTT(GRCAN_BCU) == PINGTIMEOUT_VALUE) { LOGOMATIC("ERROR: BCU is not responding to pings!\n"); } - if (getRTT(GR_DASH_PANEL) == PINGTIMEOUT_VALUE) { + if (getRTT(GRCAN_Dash_Panel) == PINGTIMEOUT_VALUE) { LOGOMATIC("ERROR: Dash Panel is not responding to pings!\n"); } - if (getRTT(GR_CCU) != PINGTIMEOUT_VALUE) { + if (getRTT(GRCAN_CCU) != PINGTIMEOUT_VALUE) { // halt if CCU is connected return 1; } diff --git a/ECU/Test/Inc/main.h b/ECU/Test/Inc/main.h index 256e979a3..00adc0693 100644 --- a/ECU/Test/Inc/main.h +++ b/ECU/Test/Inc/main.h @@ -1,2 +1,2 @@ -#include "GR_OLD_NODE_ID.h" -#define LOCAL_GR_ID GR_ECU +#include "GRCAN_NODE_ID.h" +#define LOCAL_GR_ID GRCAN_ECU diff --git a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/IMPORTANT_README.md b/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/IMPORTANT_README.md deleted file mode 100644 index 03fca33a9..000000000 --- a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/IMPORTANT_README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Temporary Code - -This is temporary and should be replaced by the CAN URCA group's output - -Replacing this will be a large refactor, but is needed to get ECU work started (among other boards) - -DO NOT ATTEMPT TO UPGRADE THIS - -## Otherwise - -See [CSV-25](https://github.com/Gaucho-Racing/CSV-25) for more things diff --git a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_BUS_ID.h b/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_BUS_ID.h deleted file mode 100644 index b4828dc62..000000000 --- a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_BUS_ID.h +++ /dev/null @@ -1,18 +0,0 @@ -// DO NOT CONSIDER THESE STABLE ... EXPECT URCA TO REPLACE THEM FULLY - -#ifndef GR_OLD_BUS_ID_H -#define GR_OLD_BUS_ID_H - -/** GR CAN Bus IDs */ -typedef enum { - /** Testing Bus */ - GR_OLD_BUS_TESTING = 0, - /** Primary Bus */ - GR_OLD_BUS_PRIMARY = 1, - /** Data Bus */ - GR_OLD_BUS_DATA = 2, - /** Charger and BCU Bus */ - GR_OLD_BUS_CHARGING = 3, -} GR_OLD_BUS_ID; - -#endif diff --git a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_MSG_DAT.h b/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_MSG_DAT.h deleted file mode 100644 index 978134d76..000000000 --- a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_MSG_DAT.h +++ /dev/null @@ -1,389 +0,0 @@ -#include - -// DO NOT CONSIDER THESE STABLE ... EXPECT URCA TO REPLACE THEM FULLY - -// ADD MESSAGES AS NEEDED AND AT MODIFICATION, TALK TO URCA FOLKS THOUGH - -// ALSO... AI DID THE COMMENTS FROM THE DOCUMENT... DO NOT TRUST AT ALL - -#ifndef GR_OLD_MSG_DAT_H -#define GR_OLD_MSG_DAT_H - -/** Debug 2.0 - Print statement up to 8 bytes */ -typedef struct { - uint8_t message[8]; /** Debug msg parseable by target */ -} GR_OLD_DEBUG_2_MSG; - -/** Debug FD - Print statement up to 64 bytes */ -typedef struct { - uint8_t message[64]; /** Debug msg parseable by target */ -} GR_OLD_DEBUG_FD_MSG; - -/** Ping message */ -typedef struct { - uint32_t timestamp; /** Time in ms */ -} GR_OLD_PING_MSG; - -/** ECU Status 1 */ -typedef struct { - uint8_t ecu_status; /** ECU state (see diagram) */ - uint8_t ping_block[3]; /** Node timeout status bits (1=OK, 0=Timeout) */ - uint8_t powerlevel_torquemap; /** Power lvl (4b) & torque map (4b) */ - uint8_t max_cell_temp; /** Hottest cell temp, 0.25°C/bit */ - uint8_t tractivebattery_soc; /** Accumulator SoC, 20x/51=% */ - uint8_t glv_soc; /** GLV SoC, 20x/51=% */ -} GR_OLD_ECU_STATUS_1_MSG; - -/** ECU Status 2 */ -typedef struct { - uint16_t ts_voltage; /** TS output voltage, 0.01V */ - uint16_t vehicle_speed; /** Vehicle speed, 0.01 MPH */ - uint16_t fr_wheel_rpm; /** FR wheel, 0.1x-3276.8 RPM */ - uint16_t fl_wheel_rpm; /** FL wheel, 0.1x-3276.8 RPM */ -} GR_OLD_ECU_STATUS_2_MSG; - -/** ECU Status 3 */ -typedef struct { - uint16_t rr_wheel_rpm; /** RR wheel, 0.1x-3276.8 RPM */ - uint16_t rl_wheel_rpm; /** RL wheel, 0.1x-3276.8 RPM */ -} GR_OLD_ECU_STATUS_3_MSG; - -/** BCU Status 1 */ -typedef struct { - uint16_t tractivebattery_voltage; /** All cells sum, 0.01V */ - uint16_t ts_voltage; /** TS output voltage, 0.01V */ - uint16_t tractivebattery_current; /** Current out (i16), 0.01A */ - uint8_t tractivebattery_soc; /** Accum SoC (lowest cell), 20x/51=% */ - uint8_t glv_soc; /** GLV SoC, 20x/51=% */ -} GR_OLD_BCU_STATUS_1_MSG; - -/** BCU Status 2 */ -typedef struct { - uint8_t voltage_20v; /** 20V GLV, 0.1V */ - uint8_t voltage_12v; /** 12V supply, 0.1V */ - uint8_t voltage_sdc; /** SDC voltage before latch, 0.1V */ - uint8_t voltage_min_cell; /** Min cell V, 0.01x+2 V */ - uint8_t max_cell_temp; /** Hottest cell, 0.25°C */ - uint8_t error_bits; /** Error flags (temp/V/I) */ - uint8_t precharge_bits; /** Precharge & relay states */ -} GR_OLD_BCU_STATUS_2_MSG; - -/** BCU Status 3 */ -typedef struct { - uint16_t hv_input_voltage; /** 600V input, 0.01V */ - uint16_t hv_output_voltage; /** 20V output, 0.01V */ - uint16_t hv_input_current; /** 600V input, 0.001A */ - uint16_t hv_output_current; /** 20V output, 0.001A */ -} GR_OLD_BCU_STATUS_3_MSG; - -/** BCU Precharge cmd */ -typedef struct { - uint8_t precharge; /** Set TS active (0=shutdown, 1=precharge) */ -} GR_OLD_BCU_PRECHARGE_MSG; - -/** BCU Config Charge Params */ -typedef struct { - uint16_t charge_voltage; /** Target charge V, 0.1V */ - uint16_t charge_current; /** Target charge I, 0.1A */ -} GR_OLD_BCU_CONFIG_CHARGE_PARAMS_MSG; - -/** BCU Config Operational Params */ -typedef struct { - uint8_t min_cell_voltage; /** Min cell V thresh, 0.01x+2 V */ - uint8_t max_cell_voltage; /** Max cell temp thresh, 0.25°C */ -} GR_OLD_BCU_CONFIG_OPS_PARAMS_MSG; - -/** BCU Cell Data 1 - Cells 0-31 */ -typedef struct { - struct { - uint8_t voltage; /** Cell V, 0.01x+2 V */ - uint8_t temperature; /** Cell temp, 0.25°C */ - } cells[32]; -} GR_OLD_BCU_CELL_DATA_1_MSG; - -/** BCU Cell Data 2 - Cells 32-63 */ -typedef struct { - struct { - uint8_t voltage; /** Cell V, 0.01x+2 V */ - uint8_t temperature; /** Cell temp, 0.25°C */ - } cells[32]; -} GR_OLD_BCU_CELL_DATA_2_MSG; - -/** BCU Cell Data 3 - Cells 64-95 */ -typedef struct { - struct { - uint8_t voltage; /** Cell V, 0.01x+2 V */ - uint8_t temperature; /** Cell temp, 0.25°C */ - } cells[32]; -} GR_OLD_BCU_CELL_DATA_3_MSG; - -/** BCU Cell Data 4 - Cells 96-127 */ -typedef struct { - struct { - uint8_t voltage; /** Cell V, 0.01x+2 V */ - uint8_t temperature; /** Cell temp, 0.25°C */ - } cells[32]; -} GR_OLD_BCU_CELL_DATA_4_MSG; - -/** BCU Cell Data 5 - Cells 128-159 */ -typedef struct { - struct { - uint8_t voltage; /** Cell V, 0.01x+2 V */ - uint8_t temperature; /** Cell temp, 0.25°C */ - } cells[32]; -} GR_OLD_BCU_CELL_DATA_5_MSG; - -/** DC-DC Converter Status */ -typedef struct { - uint16_t input_voltage; /** ~20V (LV) or 600V (HV), x/1000 V */ - uint16_t output_voltage; /** ~12V (LV) or ~20V (HV), x/1000 V */ - uint8_t input_current; /** Input I (LV only), 0.1A */ - uint8_t output_current; /** Output I, 0.1A */ - uint8_t temperature; /** DC-DC temp, °C */ -} GR_OLD_DCDC_STATUS_MSG; - -/** Inverter Status 1 */ -typedef struct { - uint16_t ac_current; /** AC I (i16), 0.01x-327.68 A */ - uint16_t dc_current; /** DC I, 0.01A */ - uint16_t motor_rpm; /** Motor RPM (i16), x-32768 */ -} GR_OLD_INVERTER_STATUS_1_MSG; - -/** Inverter Status 2 */ -typedef struct { - uint16_t u_mosfet_temp; /** U phase temp, x-40 °C */ - uint16_t v_mosfet_temp; /** V phase temp, x-40 °C */ - uint16_t w_mosfet_temp; /** W phase temp, x-40 °C */ -} GR_OLD_INVERTER_STATUS_2_MSG; - -/** Inverter Status 3 */ -typedef struct { - uint8_t motor_temp; /** Motor temp, x-40 °C */ - uint8_t fault_bits; /** Fault flags (V/temp/transistor/encoder/CAN) */ -} GR_OLD_INVERTER_STATUS_3_MSG; - -/** Inverter Config */ -typedef struct { - uint16_t max_ac_current; /** Max AC I, 0.01x-327.68 A */ - uint16_t max_dc_current; /** Max DC I, 0.01x-327.68 A */ - uint16_t abs_max_motor_rpm; /** Abs max RPM limit, x-32768 */ - uint8_t motor_direction; /** Motor dir (1=invert) */ -} GR_OLD_INVERTER_CONFIG_MSG; - -/** Inverter Command */ -typedef struct { - uint16_t ac_current; /** Cmd AC I, 0.01x-327.68 A */ - uint16_t dc_current; /** Cmd DC I, 0.01x-327.68 A */ - uint16_t rpm_limit; /** RPM limit (0=none), x-32768 */ - uint8_t field_weakening; /** Field weak strength, 0.1A */ - uint8_t drive_enable; /** Enable inv (send 1 every 100ms) */ -} GR_OLD_INVERTER_COMMAND_MSG; - -/** Fan Status */ -typedef struct { - uint16_t fan_speed; /** Fan RPM */ - uint8_t input_voltage; /** Input V (0-22), 0.1V */ - uint8_t input_current; /** Input I (0-10), 0.1A */ -} GR_OLD_FAN_STATUS_MSG; - -/** Fan Command */ -typedef struct { - uint8_t fan_command; /** Fan cmd, 0-100% */ -} GR_OLD_FAN_COMMAND_MSG; - -/** Dashboard Status */ -typedef struct { - uint8_t led_bits; /** BMS/IMD/BSPD LED states */ - uint8_t ts_button; /** TS button state & time (MSB=pressed, 7b=0.1s) */ - uint8_t rtd_button; /** RTD button state & time (MSB=pressed, 7b=0.1s) */ -} GR_OLD_DASH_STATUS_MSG; - -/** Dashboard Config */ -typedef struct { - uint8_t led_bits; /** BMS/IMD/BSPD LED cmds (0=off, 1=on) */ -} GR_OLD_DASH_CONFIG_MSG; - -/** Steering Wheel Status */ -typedef struct { - uint8_t encoder_bits; /** Current encoder pos (1-16) & torque map (1-16) */ - uint8_t regen_and_button_bits; /** Regen pos (1-16) & 4 button states */ -} GR_OLD_STEERING_STATUS_MSG; - -/** Steering Wheel Config */ -typedef struct { - uint8_t RESERVED; /** Updates based on ECU status */ -} GR_OLD_STEERING_CONFIG_MSG; - -/** SAM Brake IR Temp */ -typedef struct { - uint8_t temperature; /** IR brake temp, °C */ -} GR_OLD_SAM_BRAK_IR_MSG; - -/** SAM Tire Temps */ -typedef struct { - uint8_t outside_temp; /** Furthest from chassis, °C */ - uint8_t outside_middle_temp; /** Mid-tire outer, °C */ - uint8_t inside_middle_temp; /** Mid-tire inner, °C */ - uint8_t inside_temp; /** Closest to chassis, °C */ -} GR_OLD_SAM_TIRE_TEMP_MSG; - -/** SAM IMU Data */ -typedef struct { - uint16_t acceleration_x; /** X accel, 0.01x-327.68 m/s² */ - uint16_t acceleration_y; /** Y accel, 0.01x-327.68 m/s² */ - uint16_t acceleration_z; /** Z accel, 0.01x-327.68 m/s² */ - uint16_t gyro_x; /** X ang vel, 0.001x-32.768 rad/s */ - uint16_t gyro_y; /** Y ang vel, 0.001x-32.768 rad/s */ - uint16_t gyro_z; /** Z ang vel, 0.001x-32.768 rad/s */ -} GR_OLD_SAM_IMU_MSG; - -/** SAM GPS Position */ -typedef struct { - uint32_t latitude; /** Lat, decimal degrees */ - uint32_t longitude; /** Lon, decimal degrees */ -} GR_OLD_SAM_GPS_1_MSG; - -/** SAM GPS Accuracy & Altitude */ -typedef struct { - uint32_t accuracy; /** GPS position accuracy */ - uint16_t altitude; /** Vehicle altitude */ -} GR_OLD_SAM_GPS_2_MSG; - -/** SAM GPS Time */ -typedef struct { - uint32_t time; /** Time since GPS epoch, s */ - uint32_t time_of_week_ms; /** Time of week, ms */ -} GR_OLD_SAM_GPS_TIME_MSG; - -/** SAM GPS Heading */ -typedef struct { - uint32_t heading; /** Heading angle rel to true North */ -} GR_OLD_SAM_GPS_HEADING_MSG; - -/** SAM Suspension Pots */ -typedef struct { - uint8_t suspension_angle; /** Pot position, degrees */ -} GR_OLD_SUS_POTS_MSG; - -/** SAM Time-of-Flight */ -typedef struct { - uint16_t height; /** Ride height, x/256 mm */ -} GR_OLD_SAM_TOF_MSG; - -/** SAM Rear Wheelspeed */ -typedef struct { - uint16_t wheel_speed; /** Wheel RPM, 0.1x-3276.8 */ -} GR_OLD_SAM_REAR_WHEELSPEED_MSG; - -/** SAM Pushrod Force */ -typedef struct { - uint16_t load_force; /** Pushrod force, 0.1x-3276.8 N */ -} GR_OLD_SAM_PUSHROD_FORCE_MSG; - -/** TCM Status */ -typedef struct { - uint8_t status_bits; /** Conn/MQTT/shelter/camera status */ - uint16_t ping; /** Mapache ping (upload), ms */ - uint16_t cache_size; /** Non-synced msg count */ - uint8_t reserved; /** Reserved */ -} GR_OLD_TCM_STATUS_MSG; - -/** TCM Resource Utilization */ -typedef struct { - uint16_t cpu_0_freq; /** Core 0 freq, MHz */ - uint8_t cpu_0_util; /** Core 0 util, % */ - uint16_t cpu_1_freq; /** Core 1 freq, MHz */ - uint8_t cpu_1_util; /** Core 1 util, % */ - uint16_t cpu_2_freq; /** Core 2 freq, MHz */ - uint8_t cpu_2_util; /** Core 2 util, % */ - uint16_t cpu_3_freq; /** Core 3 freq, MHz */ - uint8_t cpu_3_util; /** Core 3 util, % */ - uint16_t cpu_4_freq; /** Core 4 freq, MHz */ - uint8_t cpu_4_util; /** Core 4 util, % */ - uint16_t cpu_5_freq; /** Core 5 freq, MHz */ - uint8_t cpu_5_util; /** Core 5 util, % */ - uint8_t cpu_total_util; /** Total CPU util, % */ - uint16_t ram_total; /** Total RAM, MB */ - uint16_t ram_used; /** Used RAM, MB */ - uint8_t ram_util; /** RAM util, % */ - uint8_t gpu_util; /** GPU util, % */ - uint16_t gpu_freq; /** GPU freq, MHz */ - uint32_t disk_total; /** Total disk, MB */ - uint32_t disk_used; /** Used disk, MB */ - uint8_t disk_util; /** Disk util, % */ - uint8_t cpu_temp; /** CPU temp, °C */ - uint8_t gpu_temp; /** GPU temp, °C */ - uint16_t voltage_draw; /** Voltage, mV */ - uint16_t current_draw; /** Current, mA */ - uint16_t power_draw; /** Power, mW */ -} GR_OLD_TCM_RESOURCE_UTILIZATION_MSG; - -/** Dashboard Warning Flags */ -typedef struct { - uint8_t flag_bits; /** Warning flags (BSE APPS violation, etc.) */ -} GR_OLD_DASH_WARNING_FLAGS_MSG; - -/** Specific Brake IR Temp */ -typedef struct { - uint8_t wheel_identifier; /** Wheel ID per wiki */ - uint8_t temp; /** IR brake temp, °C */ -} GR_OLD_SPECIFIC_BRAKE_IR_MSG; - -/** ECU Ping Information */ -typedef struct { - uint16_t online_ping_bits; /** Copy of ECU Status ping bitmap */ -} GR_OLD_ECU_PING_INFORMATION_MSG; - -/** ECU Pedals Data */ -typedef struct { - uint16_t apps1_signal; /** APPS1 signal, x/655.35 % */ - uint16_t apps2_signal; /** APPS2 signal, x/655.35 % */ - uint16_t bse_signal; /** Brake force signal, x/655.35 % */ - uint16_t brake_f_signal; /** Front brake pressure, x/655.35 % */ - uint16_t brake_r_signal; /** Rear brake pressure, x/655.35 % */ -} GR_OLD_ECU_PEDALS_DATA_MSG; - -/** GPS Latitude */ -typedef struct { - double lat; /** Latitude */ -} GR_OLD_GPS_LAT_MSG; - -/** GPS Longitude */ -typedef struct { - double lon; /** Longitude */ -} GR_OLD_GPS_LON_MSG; - -/** GPS Altitude */ -typedef struct { - double alt; /** Altitude */ -} GR_OLD_GPS_ALT_MSG; - -/** GPS PX Data */ -typedef struct { - int16_t theta; /** Theta, x/1000 */ - int16_t acc; /** Acceleration, x/100 */ - uint32_t status; /** Status */ -} GR_OLD_GPS_PX_MSG; - -/** GPS QY Data */ -typedef struct { - int16_t theta; /** Theta, x/1000 */ - int16_t acc; /** Acceleration, x/100 */ - uint32_t status; /** Status */ -} GR_OLD_GPS_QY_MSG; - -/** GPS RZ Data */ -typedef struct { - int16_t theta; /** Theta, x/1000 */ - int16_t acc; /** Acceleration, x/100 */ - uint32_t status; /** Status */ -} GR_OLD_GPS_RZ_MSG; - -/** UVW DGPS Data */ -typedef struct { - int16_t dgps_u; /** U coord, x/100 */ - int16_t dgps_v; /** V coord, x/100 */ - int16_t dgps_w; /** W coord, x/100 */ -} GR_OLD_UVW_DGPS_MSG; - -#endif diff --git a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_MSG_ID.h b/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_MSG_ID.h deleted file mode 100644 index 88007ee6c..000000000 --- a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_MSG_ID.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef GR_OLD_MSG_ID_H -#define GR_OLD_MSG_ID_H - -typedef enum { - MSG_DEBUG_2_0 = 0x000, - MSG_DEBUG_FD = 0x001, - MSG_PING = 0x002, - MSG_ECU_STATUS_1 = 0x003, - MSG_ECU_STATUS_2 = 0x004, - MSG_ECU_STATUS_3 = 0x005, - MSG_ECU_CONFIG = 0x006, - MSG_BCU_STATUS_1 = 0x007, - MSG_BCU_STATUS_2 = 0x008, - MSG_BCU_STATUS_3 = 0x009, - MSG_BCU_PRECHARGE = 0x00A, - MSG_BCU_CONFIG_CHARGE_PARAMETERS = 0x00B, - MSG_BCU_CONFIG_OPERATIONAL_PARAMETERS = 0x00C, - MSG_BCU_CELL_DATA_1 = 0x00D, - MSG_BCU_CELL_DATA_2 = 0x00E, - MSG_BCU_CELL_DATA_3 = 0x00F, - MSG_BCU_CELL_DATA_4 = 0x010, - MSG_BCU_CELL_DATA_5 = 0x011, - MSG_DC_DC_STATUS = 0x012, - MSG_INVERTER_STATUS_1 = 0x013, - MSG_INVERTER_STATUS_2 = 0x014, - MSG_INVERTER_STATUS_3 = 0x015, - MSG_INVERTER_CONFIG = 0x016, - MSG_INVERTER_COMMAND = 0x017, - MSG_FAN_STATUS = 0x018, - MSG_FAN_COMMAND = 0x019, - MSG_DASH_STATUS = 0x01A, - MSG_DASH_CONFIG = 0x01B, - MSG_STEERING_STATUS = 0x01C, - MSG_STEERING_CONFIG = 0x01D, - MSG_SAM_BRAKE_IR = 0x01E, - MSG_SAM_TIRE_TEMP = 0x01F, - MSG_SAM_IMU = 0x020, - MSG_SAM_GPS_1 = 0x021, - MSG_SAM_GPS_2 = 0x022, - MSG_SAM_GPS_TIME = 0x023, - MSG_SAM_GPS_HEADING = 0x024, - MSG_SAM_SUS_POTS = 0x025, - MSG_SAM_TOF = 0x026, - MSG_SAM_REAR_WHEELSPEED = 0x027, - MSG_SAM_PUSHROD_FORCE = 0x028, - MSG_TCM_STATUS = 0x029, - MSG_TCM_RESOURCE_UTILIZATION = 0x02A, - MSG_DASH_WARNING_FLAGS = 0x02B, - MSG_SPECIFIC_BRAKE_IR = 0x02C, - MSG_ECU_PING_INFORMATION = 0x02D, - MSG_ECU_PEDALS_DATA = 0x02E, - MSG_DTI_CONTROL_1 = 0x116, - MSG_DTI_CONTROL_2 = 0x216, - MSG_DTI_CONTROL_3 = 0x316, - MSG_DTI_CONTROL_4 = 0x416, - MSG_DTI_CONTROL_5 = 0x516, - MSG_DTI_CONTROL_6 = 0x616, - MSG_DTI_CONTROL_7 = 0x716, - MSG_DTI_CONTROL_8 = 0x816, - MSG_DTI_CONTROL_9 = 0x916, - MSG_DTI_CONTROL_10 = 0xA16, - MSG_DTI_CONTROL_11 = 0xB16, - MSG_DTI_CONTROL_12 = 0xC16, - MSG_DTI_DATA_1 = 0x2016, - MSG_DTI_DATA_2 = 0x2116, - MSG_DTI_DATA_3 = 0x2216, - MSG_DTI_DATA_4 = 0x2316, - MSG_DTI_DATA_5 = 0x2416, - MSG_IMD_GENERAL = 0x18FF01F4, - MSG_IMD_ISOLATION_INFO = 0x18EFF4FE, - MSG_IMD_VOLTAGE = 0x18EFF4FE, - MSG_IMD_IT_SYSTEM = 0x18EFF4FE, - MSG_IMD_REQUEST = 0x18EFF4FE, - MSG_IMD_RESPONSE = 0x23, - MSG_CHARGER_DATA = 0x18FF50E5, - MSG_CHARGER_CONTROL = 0x1806E5F4, - MSG_EM_MEASUREMENT = 0x10d, - MSG_EM_STATUS = 0x40d, - MSG_EM_TEMPERATURE = 0x60d, - MSG_EM_TEAM_DATA_1 = 0x30d, - MSG_EM_TEAM_DATA_2 = 0x30e, -} GR_OLD_MSG_ID; - -#endif diff --git a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_NODE_ID.h b/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_NODE_ID.h deleted file mode 100644 index bf6479379..000000000 --- a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/Inc/GR_OLD_NODE_ID.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef GR_OLD_NODE_ID_H -#define GR_OLD_NODE_ID_H - -typedef enum { - GR_DTI_INVERTER = 0x00, - GR_ENERGY_METER = 0x00, - GR_CHARGER = 0x00, - GR_IMD = 0x00, - GR_DEBUGGER = 0x01, - GR_ECU = 0x02, - GR_BCU = 0x03, - GR_TCM = 0x04, - GR_DASH_PANEL = 0x05, - GR_STEERING_WHEEL = 0x06, - GR_GR_INVERTER_1 = 0x08, - GR_GR_INVERTER_2 = 0x09, - GR_GR_INVERTER_3 = 0x0A, - GR_GR_INVERTER_4 = 0x0B, - GR_CHARGING_SDC = 0x0C, - GR_FAN_CONTROLLER_1 = 0x0D, - GR_FAN_CONTROLLER_2 = 0x0E, - GR_FAN_CONTROLLER_3 = 0x0F, - GR_FAN_CONTROLLER_4 = 0x10, - GR_FAN_CONTROLLER_5 = 0x11, - GR_FAN_CONTROLLER_6 = 0x12, - GR_FAN_CONTROLLER_7 = 0x13, - GR_FAN_CONTROLLER_8 = 0x14, - GR_SAM1 = 0x15, - GR_SAM2 = 0x16, - GR_SAM3 = 0x17, - GR_SAM4 = 0x18, - GR_SAM5 = 0x19, - GR_SAM6 = 0x1A, - GR_SAM7 = 0x1B, - GR_SAM8 = 0x1C, - GR_SAM9 = 0x1D, - GR_SAM10 = 0x1E, - GR_SAM11 = 0x1F, - GR_SAM12 = 0x20, - GR_SAM13 = 0x21, - GR_SAM14 = 0x22, - GR_SAM15 = 0x23, - GR_SAM16 = 0x24, - GR_SAM17 = 0x25, - GR_SAM18 = 0x26, - GR_SAM19 = 0x27, - GR_SAM20 = 0x28, - GR_LV_DC_DC = 0x29, - GR_CCU = 0x2A, - GR_ALL = 0xFF, -} GR_OLD_NODE_ID; - -#endif diff --git a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/temp.cmake b/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/temp.cmake deleted file mode 100644 index 633954210..000000000 --- a/Lib/FancyLayers-RENAME/GRCAN/TemporaryHoldover/temp.cmake +++ /dev/null @@ -1,7 +0,0 @@ -add_library(GR_OLD_CAN_MESSAGES INTERFACE) - -target_include_directories( - GR_OLD_CAN_MESSAGES - INTERFACE - ${CMAKE_CURRENT_LIST_DIR}/Inc -) diff --git a/TireTemp/CMakeLists.txt b/TireTemp/CMakeLists.txt index ddab02aa0..7100807ab 100644 --- a/TireTemp/CMakeLists.txt +++ b/TireTemp/CMakeLists.txt @@ -44,7 +44,7 @@ target_sources( target_link_libraries( ${GR_PROJECT_NAME}_USER_CODE INTERFACE - GR_OLD_CAN_MESSAGES + CANfigurator BitManipulations_Lib MLX90640_LIB )