#include "stdio.h" #include "slaveFreerotsTask.h" // #include "HD_Flash.h" #include "FM_GPIO.h" #include "uart_dev.h" #include "FM_ADC.h" #include "slaveParameter.h" #include "slaveBusIdleDetection.h" #include "slaveMcuDataParse.h" #include "slaveQueueUart.h" #include "slave485DataParse.h" /* 发送任务 */ #define J1_Transmit_TASK_PRIO 7 #define J1_Transmit_STK_SIZE 64 static TaskHandle_t J1_TransmitTask_Handler; static void J1_transmit_Task(void *pvParameters); #define J3_Transmit_TASK_PRIO 7 #define J3_Transmit_STK_SIZE 64 static TaskHandle_t J3_TransmitTask_Handler; static void J3_transmit_Task(void *pvParameters); #define J5_Transmit_TASK_PRIO 7 #define J5_Transmit_STK_SIZE 64 static TaskHandle_t J5_TransmitTask_Handler; static void J5_transmit_Task(void *pvParameters); #define J7_Transmit_TASK_PRIO 7 #define J7_Transmit_STK_SIZE 64 static TaskHandle_t J7_TransmitTask_Handler; static void J7_transmit_Task(void *pvParameters); #define J8_Transmit_TASK_PRIO 7 #define J8_Transmit_STK_SIZE 64 static TaskHandle_t J8_TransmitTask_Handler; static void J8_transmit_Task(void *pvParameters); #define J9_Transmit_TASK_PRIO 7 #define J9_Transmit_STK_SIZE 64 static TaskHandle_t J9_TransmitTask_Handler; static void J9_transmit_Task(void *pvParameters); #define slaveMcu_Transmit_TASK_PRIO 7 #define slaveMcu_Transmit_STK_SIZE 64 static TaskHandle_t slaveMcu_TransmitTask_Handler; static void slaveMcu_transmit_Task(void *pvParameters); /* 释放内存任务 */ #define slaveFreeMemory_TASK_PRIO 8 #define slaveFreeMemory_STK_SIZE 64 static TaskHandle_t slaveFreeMemory_Handler; static void slaveFreeMemory_Task(void *pvParameters); /* 解析任务 */ #define slaveMcuDataParse_TASK_PRIO 5 #define slaveMcuDataParse_STK_SIZE 512 static TaskHandle_t slaveMcuDataParse_Handler; static void slaveMcuDataParse_Task(void *pvParameters); #define slave485DataParse_TASK_PRIO 5 #define slave485DataParse_STK_SIZE 512 static TaskHandle_t slave485DataParse_Handler; static void slave485DataParse_Task(void *pvParameters); /* 其他任务 */ #define slaveOther_TASK_PRIO 3 #define slaveOther_STK_SIZE 64 static TaskHandle_t slaveOther_Handler; static void slaveOther_Task(void *pvParameters); /** * @brief 将数据发送 * @param * @retval */ void J1_transmit_Task(void *pvParameters) { while (1) { J1QueueSend(); } } void J3_transmit_Task(void *pvParameters) { while (1) { J3QueueSend(); } } void J5_transmit_Task(void *pvParameters) { while (1) { J5QueueSend(); } } void J7_transmit_Task(void *pvParameters) { while (1) { J7QueueSend(); } } void J8_transmit_Task(void *pvParameters) { while (1) { J8QueueSend(); } } void J9_transmit_Task(void *pvParameters) { while (1) { J9QueueSend(); } } void slaveMcu_transmit_Task(void *pvParameters) { while (1) { slaveMcuQueueSend(); } } /** * @brief 数据发送完成后,将申请存放数据的内存释放 * @param * @retval */ void slaveFreeMemory_Task(void *pvParameters) { while(1) { binarySemaphoreFreeMemory(); } } /** * @brief 解析主mcu发送来的数据 * @param * @retval */ void slaveMcuDataParse_Task(void *pvParameters) { while (1) { slaveMcuUartDataAnalysis(g_Mcu_handle); vTaskDelay(10); } } /** * @brief 解析传感器发送来的数据 * @param * @retval */ void slave485DataParse_Task(void *pvParameters) { while (1) { J1_SensorDataAnalysis(); J3_SensorDataAnalysis(); J5_SensorDataAnalysis(); J7_SensorDataAnalysis(); J8_SensorDataAnalysis(); J9_SensorDataAnalysis(); vTaskDelay(5); } } /** * @brief 其他的一些任务 * @param * @retval */ void slaveOther_Task(void *pvParameters) { while (1) { log_info("xPortGetFreeHeapSize : %d",xPortGetFreeHeapSize()); vTaskDelay(1000); } } /** * @brief 启动 * @param * @retval */ void slaveStartApp(void) { SlaveMcu_GPIO_Init(); readSlaveConfigParameter(); SlaveMcu_uartBuf_Init(256, 1024); Init_J1_485(getJ1_485_Baud()); Init_J3_485(getJ3_485_Baud()); Init_J5_485(getJ5_485_Baud()); Init_J7_485(getJ7_485_Baud()); Init_J8_485(getJ8_485_Baud()); Init_J9_485(getJ9_485_Baud()); Init_Mcu_Uart(115200); applyDataBuffer(); slaveUartSendInit(); slaveIdleInit(); SlaveMcu_485DE_Read(); /* create task */ xTaskCreate((TaskFunction_t )J1_transmit_Task, (const char* )"J1TransmitTask", (uint16_t )J1_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )J1_Transmit_TASK_PRIO, (TaskHandle_t* )&J1_TransmitTask_Handler); xTaskCreate((TaskFunction_t )J3_transmit_Task, (const char* )"J3TransmitTask", (uint16_t )J3_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )J3_Transmit_TASK_PRIO, (TaskHandle_t* )&J3_TransmitTask_Handler); xTaskCreate((TaskFunction_t )J5_transmit_Task, (const char* )"J5TransmitTask", (uint16_t )J5_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )J5_Transmit_TASK_PRIO, (TaskHandle_t* )&J5_TransmitTask_Handler); xTaskCreate((TaskFunction_t )J7_transmit_Task, (const char* )"J7TransmitTask", (uint16_t )J7_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )J7_Transmit_TASK_PRIO, (TaskHandle_t* )&J7_TransmitTask_Handler); xTaskCreate((TaskFunction_t )J8_transmit_Task, (const char* )"J8TransmitTask", (uint16_t )J8_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )J8_Transmit_TASK_PRIO, (TaskHandle_t* )&J8_TransmitTask_Handler); xTaskCreate((TaskFunction_t )J9_transmit_Task, (const char* )"J9TransmitTask", (uint16_t )J9_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )J9_Transmit_TASK_PRIO, (TaskHandle_t* )&J9_TransmitTask_Handler); xTaskCreate((TaskFunction_t )slaveMcu_transmit_Task, (const char* )"slaveMcuTransmitTask", (uint16_t )slaveMcu_Transmit_STK_SIZE, (void* )NULL, (UBaseType_t )slaveMcu_Transmit_TASK_PRIO, (TaskHandle_t* )&slaveMcu_TransmitTask_Handler); xTaskCreate((TaskFunction_t )slaveFreeMemory_Task, (const char* )"slaveFreeMemoryTask", (uint16_t )slaveFreeMemory_STK_SIZE, (void* )NULL, (UBaseType_t )slaveFreeMemory_TASK_PRIO, (TaskHandle_t* )&slaveFreeMemory_Handler); xTaskCreate((TaskFunction_t )slaveMcuDataParse_Task, (const char* )"slaveMcuDataParse", (uint16_t )slaveMcuDataParse_STK_SIZE, (void* )NULL, (UBaseType_t )slaveMcuDataParse_TASK_PRIO, (TaskHandle_t* )&slaveMcuDataParse_Handler); xTaskCreate((TaskFunction_t )slave485DataParse_Task, (const char* )"slave485DataParse", (uint16_t )slave485DataParse_STK_SIZE, (void* )NULL, (UBaseType_t )slave485DataParse_TASK_PRIO, (TaskHandle_t* )&slave485DataParse_Handler); xTaskCreate((TaskFunction_t )slaveOther_Task, (const char* )"slaveOtherTask", (uint16_t )slaveOther_STK_SIZE, (void* )NULL, (UBaseType_t )slaveOther_TASK_PRIO, (TaskHandle_t* )&slaveOther_Handler); vTaskStartScheduler(); }