gateway_mcu/CH32V303-FreeRTOS/App/application/Host/Src/hostFreerotsTask.c

338 lines
9.8 KiB
C
Raw Permalink Normal View History

#include "stdio.h"
#include "FM_ADC.h"
#include "FM_GPIO.h"
#include "uart_dev.h"
#include "hostFreerotsTask.h"
#include "hostBusIdleDetection.h"
#include "hostMcuComm.h"
#include "hostMcuDataParse.h"
#include "hostRecvSlaveDataParse.h"
#include "hostSensorDataParse.h"
#include "hostQueueUart.h"
#include "hostParameter.h"
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define J0_Transmit_TASK_PRIO 7
#define J0_Transmit_STK_SIZE 64
static TaskHandle_t J0_TransmitTask_Handler;
static void J0_transmit_Task(void *pvParameters);
#define J2_Transmit_TASK_PRIO 7
#define J2_Transmit_STK_SIZE 64
static TaskHandle_t J2_TransmitTask_Handler;
static void J2_transmit_Task(void *pvParameters);
#define J4_Transmit_TASK_PRIO 7
#define J4_Transmit_STK_SIZE 64
static TaskHandle_t J4_TransmitTask_Handler;
static void J4_transmit_Task(void *pvParameters);
#define J6_Transmit_TASK_PRIO 7
#define J6_Transmit_STK_SIZE 64
static TaskHandle_t J6_TransmitTask_Handler;
static void J6_transmit_Task(void *pvParameters);
#define Lora_Transmit_TASK_PRIO 7
#define Lora_Transmit_STK_SIZE 64
static TaskHandle_t Lora_TransmitTask_Handler;
static void Lora_transmit_Task(void *pvParameters);
#define Su806_Transmit_TASK_PRIO 7
#define Su806_Transmit_STK_SIZE 64
static TaskHandle_t Su806_TransmitTask_Handler;
static void Su806_transmit_Task(void *pvParameters);
#define HostMcu_Transmit_TASK_PRIO 7
#define HostMcu_Transmit_STK_SIZE 64
static TaskHandle_t HostMcu_TransmitTask_Handler;
static void HostMcu_transmit_Task(void *pvParameters);
/* <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD> */
#define hostFreeMemory_TASK_PRIO 8
#define hostFreeMemory_STK_SIZE 64
static TaskHandle_t hostFreeMemory_Handler;
static void hostFreeMemory_Task(void *pvParameters);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define hostMcuDataParse_TASK_PRIO 5
#define hostMcuDataParse_STK_SIZE 512
static TaskHandle_t hostMcuDataParse_Handler;
static void hostMcuDataParse_Task(void *pvParameters);
#define hostSensorDataParse_TASK_PRIO 5
#define hostSensorDataParse_STK_SIZE 512
static TaskHandle_t hostSensorDataParse_Handler;
static void hostSensorDataParse_Task(void *pvParameters);
#define hostRecvSlaveDataParse_TASK_PRIO 5
#define hostRecvSlaveDataParse_STK_SIZE 512
static TaskHandle_t hostRecvSlaveDataParse_Handler;
static void hostRecvSlaveDataParse_Task(void *pvParameters);
/* <20><><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD> */
#define dataCollection_TASK_PRIO 4
#define dataCollection_STK_SIZE 128
static TaskHandle_t dataCollection_Handler;
static void dataCollection_Task(void *pvParameters);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define hostOther_TASK_PRIO 2
#define hostOther_STK_SIZE 128
static TaskHandle_t hostOther_Handler;
static void hostOther_Task(void *pvParameters);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J0_transmit_Task(void *pvParameters)
{
while (1) {
J0QueueSend();
}
}
void J2_transmit_Task(void *pvParameters)
{
while (1) {
J2QueueSend();
}
}
void J4_transmit_Task(void *pvParameters)
{
while (1) {
J4QueueSend();
}
}
void J6_transmit_Task(void *pvParameters)
{
while (1) {
J6QueueSend();
}
}
void Lora_transmit_Task(void *pvParameters)
{
while (1) {
LoraQueueSend();
}
}
void Su806_transmit_Task(void *pvParameters)
{
while (1) {
Su806QueueSend();
}
}
void HostMcu_transmit_Task(void *pvParameters)
{
while (1) {
HostMcuQueueSend();
}
}
/**
* @brief <EFBFBD>ͷ<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void hostFreeMemory_Task(void *pvParameters)
{
while (1) {
hostBinarySemaphoreFreeMemory();
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>su806<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void hostMcuDataParse_Task(void *pvParameters)
{
while (1) {
hostMcuUartDataAnalysis(g_Su806_handle);
vTaskDelay(10);
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void hostSensorDataParse_Task(void *pvParameters)
{
while (1) {
J0_SensorDataAnalysis();
J2_SensorDataAnalysis();
J4_SensorDataAnalysis();
J6_SensorDataAnalysis();
Lora_SensorDataAnalysis();
vTaskDelay(5);
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mcu<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void hostRecvSlaveDataParse_Task(void *pvParameters)
{
while (1) {
hostRecvSlaveDataParse(g_Mcu_handle);
vTaskDelay(10);
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ݲɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void dataCollection_Task(void *pvParameters)
{
while (1) {
setBoardTemperature(getTemperature());
setWorkVoltage(getInVoltage());
setWorkCurrent(getInCurrent());
setPwrOnVoltage(getSOCPwrOnVoltage());
vTaskDelay(500);
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void hostOther_Task(void *pvParameters)
{
while (1) {
log_info("xPortGetFreeHeapSize : %d",xPortGetFreeHeapSize());
vTaskDelay(1000);
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void hostStartApp(void)
{
HostMcu_GPIO_Init();
readHostConfigParameter();
HostMcu_uartBuf_Init(256, 256, 256, 1024);
Init_J0_485(getJ0_485_Baud());
Init_J2_485(getJ2_485_Baud());
Init_J4_485(getJ4_485_Baud());
Init_J6_485(getJ6_485_Baud());
Init_Lora_Uart(getLora_Uart_Baud());
Init_Mcu_Uart(115200);
Init_Su806_Uart(115200);
FM_ADC_Init();
proportionalInt();
applyDataBuffer();
hostUartSendInit();
hostIdleInit();
HostMcu_485DE_Read();
/* create task */
xTaskCreate((TaskFunction_t )J0_transmit_Task,
(const char* )"J0TransmitTask",
(uint16_t )J0_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )J0_Transmit_TASK_PRIO,
(TaskHandle_t* )&J0_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )J2_transmit_Task,
(const char* )"J2TransmitTask",
(uint16_t )J2_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )J2_Transmit_TASK_PRIO,
(TaskHandle_t* )&J2_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )J4_transmit_Task,
(const char* )"J4TransmitTask",
(uint16_t )J4_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )J4_Transmit_TASK_PRIO,
(TaskHandle_t* )&J4_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )J6_transmit_Task,
(const char* )"J6TransmitTask",
(uint16_t )J6_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )J6_Transmit_TASK_PRIO,
(TaskHandle_t* )&J6_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )Lora_transmit_Task,
(const char* )"LoraTransmitTask",
(uint16_t )Lora_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )Lora_Transmit_TASK_PRIO,
(TaskHandle_t* )&Lora_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )Su806_transmit_Task,
(const char* )"Su806TransmitTask",
(uint16_t )Su806_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )Su806_Transmit_TASK_PRIO,
(TaskHandle_t* )&Su806_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )HostMcu_transmit_Task,
(const char* )"HostMcuTransmitTask",
(uint16_t )HostMcu_Transmit_STK_SIZE,
(void* )NULL,
(UBaseType_t )HostMcu_Transmit_TASK_PRIO,
(TaskHandle_t* )&HostMcu_TransmitTask_Handler);
xTaskCreate((TaskFunction_t )hostFreeMemory_Task,
(const char* )"hostFreeMemoryTask",
(uint16_t )hostFreeMemory_STK_SIZE,
(void* )NULL,
(UBaseType_t )hostFreeMemory_TASK_PRIO,
(TaskHandle_t* )&hostFreeMemory_Handler);
xTaskCreate((TaskFunction_t )hostMcuDataParse_Task,
(const char* )"hostMcuDataTask",
(uint16_t )hostMcuDataParse_STK_SIZE,
(void* )NULL,
(UBaseType_t )hostMcuDataParse_TASK_PRIO,
(TaskHandle_t* )&hostMcuDataParse_Handler);
xTaskCreate((TaskFunction_t )hostSensorDataParse_Task,
(const char* )"hostSensorDataTask",
(uint16_t )hostSensorDataParse_STK_SIZE,
(void* )NULL,
(UBaseType_t )hostSensorDataParse_TASK_PRIO,
(TaskHandle_t* )&hostSensorDataParse_Handler);
xTaskCreate((TaskFunction_t )hostRecvSlaveDataParse_Task,
(const char* )"hostRecvSlaveDataTask",
(uint16_t )hostRecvSlaveDataParse_STK_SIZE,
(void* )NULL,
(UBaseType_t )hostRecvSlaveDataParse_TASK_PRIO,
(TaskHandle_t* )&hostRecvSlaveDataParse_Handler);
xTaskCreate((TaskFunction_t )dataCollection_Task,
(const char* )"dataCollectionTask",
(uint16_t )dataCollection_STK_SIZE,
(void* )NULL,
(UBaseType_t )dataCollection_TASK_PRIO,
(TaskHandle_t* )&dataCollection_Handler);
xTaskCreate((TaskFunction_t )hostOther_Task,
(const char* )"hostOtherTask",
(uint16_t )hostOther_STK_SIZE,
(void* )NULL,
(UBaseType_t )hostOther_TASK_PRIO,
(TaskHandle_t* )&hostOther_Handler);
vTaskStartScheduler();
}