random changes i found on my laptop

This commit is contained in:
Jasper Blanckenburg 2025-04-17 21:51:15 +02:00
parent f97daa8df3
commit 98fcfdfec0

View File

@ -48,6 +48,15 @@ typedef enum {
M_MANUAL = 7
} mission_t;
typedef enum {
AS_OFF = 0,
AS_MANUAL = 1,
AS_READY = 2,
AS_DRIVING = 3,
AS_FINISHED = 4,
AS_EMERGENCY = 5,
} as_state_t;
/*
* BO_ 15 SDCL_rx: 3 ABX
* SG_ as_close_sdc : 0|1@1+ (1,0) [0|1] "" SDCL
@ -112,6 +121,7 @@ typedef union {
#define CAN_ID_RX 0x00F
#define CAN_ID_TX 0x010
#define CAN_ID_JETSON_RX 0x0E0
// Defined in DBC?
#define TX_UPDATE_PERIOD 100
@ -140,6 +150,7 @@ const uint16_t mission2led[] = {0 , AMI_ACCEL_Pin , AMI_SKIDPAD_Pin , AMI_AUTO
const mission_t mission2next[] = {M_MANUAL , M_SKIDPAD , M_AUTOX , M_EBSTEST , M_INSPECTION , M_MANUAL , M_TRACKDRIVE , M_ACCEL };
mission_t mission = M_NONE;
as_state_t state = AS_OFF;
bool setup_done = false;
@ -228,7 +239,11 @@ int main(void)
canfilterconfig.FilterMode = CAN_FILTERMODE_IDMASK;
canfilterconfig.FilterScale = CAN_FILTERSCALE_32BIT;
canfilterconfig.SlaveStartFilterBank = 14;
if (HAL_CAN_ConfigFilter(&hcan, &canfilterconfig) != HAL_OK) {
Error_Handler();
}
canfilterconfig.FilterBank = 1;
canfilterconfig.FilterIdHigh = CAN_ID_JETSON_RX << (16 -11);
if (HAL_CAN_ConfigFilter(&hcan, &canfilterconfig) != HAL_OK) {
Error_Handler();
}
@ -271,6 +286,7 @@ int main(void)
}
setup_done = true;
uint32_t last_msg = 0;
while (true) {
@ -289,6 +305,8 @@ int main(void)
bool CLOSED = HAL_GPIO_ReadPin(CLOSED_GPIO_Port, CLOSED_Pin) == GPIO_PIN_RESET;
bool REOPENED = HAL_GPIO_ReadPin(REOPENED_GPIO_Port, REOPENED_Pin) == GPIO_PIN_RESET;
if (HAL_GetTick() - last_msg >= TX_UPDATE_PERIOD) {
last_msg = HAL_GetTick();
bool AMC = HAL_GPIO_ReadPin(AMC_GPIO_Port, AMC_Pin) == GPIO_PIN_SET;
// On signal edge. Debouncing usually not needed at these polling rates (10Hz)
if (AMC < pAMC) {
@ -329,8 +347,11 @@ int main(void)
// Store previous button value to detect signal edges
pAMC = AMC;
pASMS = ASMS;
HAL_Delay(TX_UPDATE_PERIOD);
}
if (state != AS_OFF && state != AS_MANUAL && WD_initialized) {
HAL_IWDG_Refresh(&hiwdg);
WD_OK = true;
}
/* USER CODE END WHILE */
@ -512,8 +533,8 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {
Error_Handler();
// Discard if it's not for us (shouldn't happen thanks to filter, but just to be sure)
if (rxHeader.StdId != CAN_ID_RX)
return;
if (rxHeader.StdId == CAN_ID_RX) {
// return;
#ifdef WATCHDOG_STM
@ -549,6 +570,9 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {
// Set ASB Error status
HAL_GPIO_WritePin(ASB_Error_GPIO_Port, ASB_Error_Pin, rxData.signals.asb_error);
} else if (rxHeader.StdId == CAN_ID_JETSON_RX) {
state = (rxData.raw[0] >> 3) & 0b111;
}
}