283 lines
8.1 KiB
C
283 lines
8.1 KiB
C
|
|
#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();
|
|
}
|
|
|
|
|
|
|
|
|