diff --git a/Core/Inc/bms.h b/Core/Inc/bms.h index 378673e2..1b7e17d8 100644 --- a/Core/Inc/bms.h +++ b/Core/Inc/bms.h @@ -13,11 +13,11 @@ typedef struct { extern bms_t *bms; -void bms_init(); +//void bms_init(); -void vBMSCANMonitor(void *pv_params); -extern osThreadId_t bms_monitor_handle; -extern const osThreadAttr_t bms_monitor_attributes; -extern osMessageQueueId_t bms_monitor_queue; +//void vBMSCANMonitor(void *pv_params); +//extern osThreadId_t bms_monitor_handle; +//extern const osThreadAttr_t bms_monitor_attributes; +//extern osMessageQueueId_t bms_monitor_queue; #endif /*BMS_H*/ \ No newline at end of file diff --git a/Core/Inc/monitor.h b/Core/Inc/monitor.h index 07f397d2..30b54594 100644 --- a/Core/Inc/monitor.h +++ b/Core/Inc/monitor.h @@ -25,9 +25,9 @@ extern osThreadId_t pedals_monitor_handle; extern const osThreadAttr_t pedals_monitor_attributes; /* Task for Monitoring the IMU */ -void vIMUMonitor(void *pv_params); -extern osThreadId_t imu_monitor_handle; -extern const osThreadAttr_t imu_monitor_attributes; +// void vIMUMonitor(void *pv_params); +// extern osThreadId_t imu_monitor_handle; +// extern const osThreadAttr_t imu_monitor_attributes; /* Task for Monitoring the TSMS sense on PDU CTRL expander*/ void vTsmsMonitor(void *pv_params); diff --git a/Core/Src/bms.c b/Core/Src/bms.c index 1c87c6e7..0e00383a 100644 --- a/Core/Src/bms.c +++ b/Core/Src/bms.c @@ -33,35 +33,35 @@ void bms_fault_callback() queue_fault(&fault_data); } -void bms_init() -{ - bms = malloc(sizeof(bms_t)); - assert(bms); +// void bms_init() +// { +// bms = malloc(sizeof(bms_t)); +// assert(bms); - /*TO-DO: specify timer attributes*/ - bms->bms_monitor_timer = - osTimerNew(&bms_fault_callback, osTimerOnce, NULL, NULL); +// /*TO-DO: specify timer attributes*/ +// bms->bms_monitor_timer = +// osTimerNew(&bms_fault_callback, osTimerOnce, NULL, NULL); - bms_monitor_queue = - osMessageQueueNew(CAN_QUEUE_SIZE, sizeof(can_msg_t), NULL); - assert(bms_monitor_queue); -} +// bms_monitor_queue = +// osMessageQueueNew(CAN_QUEUE_SIZE, sizeof(can_msg_t), NULL); +// assert(bms_monitor_queue); +// } -void vBMSCANMonitor(void *pv_params) -{ - can_msg_t msg_from_queue; +// void vBMSCANMonitor(void *pv_params) +// { +// can_msg_t msg_from_queue; - osTimerStart(bms->bms_monitor_timer, BMS_CAN_MONITOR_DELAY); - for (;;) { - if (osOK == osMessageQueueGet(bms_monitor_queue, - &msg_from_queue, NULL, - osWaitForever)) { - /*TO-DO: fix duration (ticks)*/ - osTimerStart(bms->bms_monitor_timer, - BMS_CAN_MONITOR_DELAY); - bms->dcl = (uint16_t)((msg_from_queue.data[1] << 8) & - msg_from_queue.data[0]); - //serial_print("BMS DCL %d", bms->dcl); - } - } -} \ No newline at end of file +// osTimerStart(bms->bms_monitor_timer, BMS_CAN_MONITOR_DELAY); +// for (;;) { +// if (osOK == osMessageQueueGet(bms_monitor_queue, +// &msg_from_queue, NULL, +// osWaitForever)) { +// /*TO-DO: fix duration (ticks)*/ +// osTimerStart(bms->bms_monitor_timer, +// BMS_CAN_MONITOR_DELAY); +// bms->dcl = (uint16_t)((msg_from_queue.data[1] << 8) & +// msg_from_queue.data[0]); +// //serial_print("BMS DCL %d", bms->dcl); +// } +// } +// } \ No newline at end of file diff --git a/Core/Src/can_handler.c b/Core/Src/can_handler.c index 512a62f1..9a29f368 100644 --- a/Core/Src/can_handler.c +++ b/Core/Src/can_handler.c @@ -85,7 +85,7 @@ void can1_callback(CAN_HandleTypeDef *hcan) break; case BMS_DCL_MSG: //printf("Recieved dcl"); - osMessageQueuePut(bms_monitor_queue, &new_msg, 0U, 0U); + //osMessageQueuePut(bms_monitor_queue, &new_msg, 0U, 0U); break; default: break; diff --git a/Core/Src/main.c b/Core/Src/main.c index 04b1c778..1dffba4b 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -82,7 +82,7 @@ const osThreadAttr_t defaultTask_attributes = { /* USER CODE BEGIN PV */ osMessageQueueId_t brakelight_signal; osMessageQueueId_t pedal_data_queue; -osMessageQueueId_t imu_queue; +//osMessageQueueId_t imu_queue; osMessageQueueId_t dti_router_queue; @@ -186,7 +186,7 @@ int main(void) dti_t *mc = dti_init(); steeringio_t *wheel = steeringio_init(); init_can1(&hcan1); - bms_init(); + //bms_init(); printf("\r\n\n\nInit Success...\r\n\n\n"); @@ -202,7 +202,7 @@ int main(void) /* USER CODE BEGIN RTOS_QUEUES */ brakelight_signal = osMessageQueueNew(15, sizeof(bool), NULL); - imu_queue = osMessageQueueNew(IMU_QUEUE_SIZE, sizeof(imu_data_t), NULL); + //imu_queue = osMessageQueueNew(IMU_QUEUE_SIZE, sizeof(imu_data_t), NULL); pedal_data_queue = osMessageQueueNew(PEDAL_DATA_QUEUE_SIZE, sizeof(pedals_t), NULL); dti_router_queue = osMessageQueueNew(DTI_QUEUE_SIZE, sizeof(can_msg_t), NULL); assert(dti_router_queue); @@ -235,8 +235,8 @@ int main(void) assert(dti_router_handle); can_dispatch_handle = osThreadNew(vCanDispatch, NULL, &can_dispatch_attributes); assert(can_dispatch_handle); - bms_monitor_handle = osThreadNew(vBMSCANMonitor, NULL, &bms_monitor_attributes); - assert(bms_monitor_handle); + //bms_monitor_handle = osThreadNew(vBMSCANMonitor, NULL, &bms_monitor_attributes); + // assert(bms_monitor_handle); serial_monitor_handle = osThreadNew(vSerialMonitor, NULL, &serial_monitor_attributes); assert(serial_monitor_handle); nero_monitor_handle = osThreadNew(vNeroMonitor, NULL, &nero_monitor_attributes); diff --git a/Core/Src/monitor.c b/Core/Src/monitor.c index 193a6df5..6bfd2107 100644 --- a/Core/Src/monitor.c +++ b/Core/Src/monitor.c @@ -331,84 +331,84 @@ void vPedalsMonitor(void *pv_params) } } -osThreadId_t imu_monitor_handle; -const osThreadAttr_t imu_monitor_attributes = { - .name = "IMUMonitor", - .stack_size = 32 * 8, - .priority = (osPriority_t)osPriorityHigh, -}; - -void vIMUMonitor(void *pv_params) -{ - const uint8_t num_samples = 10; - static imu_data_t sensor_data; - fault_data_t fault_data = { .id = IMU_FAULT, .severity = DEFCON5 }; - can_msg_t imu_accel_msg = { .id = CANID_IMU_ACCEL, - .len = 6, - .data = { 0 } }; - can_msg_t imu_gyro_msg = { .id = CANID_IMU_GYRO, - .len = 6, - .data = { 0 } }; - - mpu_t *mpu = (mpu_t *)pv_params; - - for (;;) { - // serial_print("IMU Task\r\n"); - /* Take measurement */ - uint16_t accel_data[3] = { 0 }; - uint16_t gyro_data[3] = { 0 }; - if (read_accel(mpu, accel_data)) { - fault_data.diag = "Failed to get IMU acceleration"; - queue_fault(&fault_data); - } - - if (read_gyro(mpu, gyro_data)) { - fault_data.diag = "Failed to get IMU gyroscope"; - queue_fault(&fault_data); - } - - /* Run values through LPF of sample size */ - sensor_data.accel_x = - (sensor_data.accel_x + accel_data[0]) / num_samples; - sensor_data.accel_y = - (sensor_data.accel_y + accel_data[1]) / num_samples; - sensor_data.accel_z = - (sensor_data.accel_z + accel_data[2]) / num_samples; - sensor_data.gyro_x = - (sensor_data.gyro_x + gyro_data[0]) / num_samples; - sensor_data.gyro_y = - (sensor_data.gyro_y + gyro_data[1]) / num_samples; - sensor_data.gyro_z = - (sensor_data.gyro_z + gyro_data[2]) / num_samples; - - /* Publish to IMU Queue */ - osMessageQueuePut(imu_queue, &sensor_data, 0U, 0U); - - /* convert to big endian */ - endian_swap(&sensor_data.accel_x, sizeof(sensor_data.accel_x)); - endian_swap(&sensor_data.accel_y, sizeof(sensor_data.accel_y)); - endian_swap(&sensor_data.accel_z, sizeof(sensor_data.accel_z)); - endian_swap(&sensor_data.gyro_x, sizeof(sensor_data.gyro_x)); - endian_swap(&sensor_data.gyro_y, sizeof(sensor_data.gyro_y)); - endian_swap(&sensor_data.gyro_z, sizeof(sensor_data.gyro_z)); - - /* Send CAN message */ - memcpy(imu_accel_msg.data, &sensor_data, imu_accel_msg.len); - // if (queue_can_msg(imu_accel_msg)) { - // fault_data.diag = "Failed to send CAN message"; - // queue_fault(&fault_data); - // } - - memcpy(imu_gyro_msg.data, &sensor_data, imu_gyro_msg.len); - if (queue_can_msg(imu_gyro_msg)) { - fault_data.diag = "Failed to send CAN message"; - queue_fault(&fault_data); - } - - /* Yield to other tasks */ - osDelay(IMU_SAMPLE_DELAY); - } -} +//osThreadId_t imu_monitor_handle; +//const osThreadAttr_t imu_monitor_attributes = { +// .name = "IMUMonitor", +// .stack_size = 32 * 8, +// .priority = (osPriority_t)osPriorityHigh, +//}; + +// void vIMUMonitor(void *pv_params) +// { +// const uint8_t num_samples = 10; +// static imu_data_t sensor_data; +// fault_data_t fault_data = { .id = IMU_FAULT, .severity = DEFCON5 }; +// can_msg_t imu_accel_msg = { .id = CANID_IMU_ACCEL, +// .len = 6, +// .data = { 0 } }; +// can_msg_t imu_gyro_msg = { .id = CANID_IMU_GYRO, +// .len = 6, +// .data = { 0 } }; + +// mpu_t *mpu = (mpu_t *)pv_params; + +// for (;;) { +// // serial_print("IMU Task\r\n"); +// /* Take measurement */ +// uint16_t accel_data[3] = { 0 }; +// uint16_t gyro_data[3] = { 0 }; +// if (read_accel(mpu, accel_data)) { +// fault_data.diag = "Failed to get IMU acceleration"; +// queue_fault(&fault_data); +// } + +// if (read_gyro(mpu, gyro_data)) { +// fault_data.diag = "Failed to get IMU gyroscope"; +// queue_fault(&fault_data); +// } + +// /* Run values through LPF of sample size */ +// sensor_data.accel_x = +// (sensor_data.accel_x + accel_data[0]) / num_samples; +// sensor_data.accel_y = +// (sensor_data.accel_y + accel_data[1]) / num_samples; +// sensor_data.accel_z = +// (sensor_data.accel_z + accel_data[2]) / num_samples; +// sensor_data.gyro_x = +// (sensor_data.gyro_x + gyro_data[0]) / num_samples; +// sensor_data.gyro_y = +// (sensor_data.gyro_y + gyro_data[1]) / num_samples; +// sensor_data.gyro_z = +// (sensor_data.gyro_z + gyro_data[2]) / num_samples; + +// /* Publish to IMU Queue */ +// osMessageQueuePut(imu_queue, &sensor_data, 0U, 0U); + +// /* convert to big endian */ +// endian_swap(&sensor_data.accel_x, sizeof(sensor_data.accel_x)); +// endian_swap(&sensor_data.accel_y, sizeof(sensor_data.accel_y)); +// endian_swap(&sensor_data.accel_z, sizeof(sensor_data.accel_z)); +// endian_swap(&sensor_data.gyro_x, sizeof(sensor_data.gyro_x)); +// endian_swap(&sensor_data.gyro_y, sizeof(sensor_data.gyro_y)); +// endian_swap(&sensor_data.gyro_z, sizeof(sensor_data.gyro_z)); + +// /* Send CAN message */ +// memcpy(imu_accel_msg.data, &sensor_data, imu_accel_msg.len); +// // if (queue_can_msg(imu_accel_msg)) { +// // fault_data.diag = "Failed to send CAN message"; +// // queue_fault(&fault_data); +// // } + +// memcpy(imu_gyro_msg.data, &sensor_data, imu_gyro_msg.len); +// if (queue_can_msg(imu_gyro_msg)) { +// fault_data.diag = "Failed to send CAN message"; +// queue_fault(&fault_data); +// } + +// /* Yield to other tasks */ +// osDelay(IMU_SAMPLE_DELAY); +// } +// } osThreadId_t tsms_monitor_handle; const osThreadAttr_t tsms_monitor_attributes = {