工程提交
This commit is contained in:
96
Core/User/Task/HeartBeatTask.c
Normal file
96
Core/User/Task/HeartBeatTask.c
Normal file
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file user\task\HeartBeatTask.c
|
||||
* @author luhuaishuai
|
||||
* @version v0.1
|
||||
* @date 2026-1-12
|
||||
* @brief 心跳任务,负责发送心跳包和处理云快充的响应
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "HeartBeatTask.h"
|
||||
|
||||
void HeartBeat_Sign(void);
|
||||
|
||||
/**
|
||||
* @brief 发送显示数据
|
||||
* @note 发送显示数据,包括充电桩的连接状态和工作状态
|
||||
*/
|
||||
void Send_Display_Data(void)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
char str[128];
|
||||
sprintf(str, "t1.bco=%s\xff\xff\xfft2.bco=%s\xff\xff\xfft3.bco=%s\xff\xff\xfft4.bco=%s\xff\xff\xfft5.bco=%s\xff\xff\xfft6.bco=%s\xff\xff\xff",
|
||||
g_charger_manager.charger_piles[0].is_udp_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[1].is_udp_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[2].is_udp_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[3].is_udp_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[4].is_udp_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[5].is_udp_online ? "GREEN" : "RED");
|
||||
Rs485_Message_Send(str, strlen(str));
|
||||
|
||||
sprintf(str, "t7.bco=%s\xff\xff\xfft8.bco=%s\xff\xff\xfft9.bco=%s\xff\xff\xfft10.bco=%s\xff\xff\xfft11.bco=%s\xff\xff\xfft12.bco=%s\xff\xff\xff",
|
||||
g_charger_manager.charger_piles[0].is_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[1].is_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[2].is_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[3].is_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[4].is_online ? "GREEN" : "RED",
|
||||
g_charger_manager.charger_piles[5].is_online ? "GREEN" : "RED");
|
||||
Rs485_Message_Send(str, strlen(str));
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @funNm : HeartbeatTask_Function
|
||||
* @brief : 心跳
|
||||
* @param : argument
|
||||
* @retval: void
|
||||
*/
|
||||
void HeartbeatTask_Function(void const *argument)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
TaskRunTimeStat.HeartBeatTask.threads_runtime = GetTask_RunTime(HeartBeatTaskID);
|
||||
TaskRunTimeStat.HeartBeatTask.threads_counter = GetTask_Beatcnt(HeartBeatTaskID);
|
||||
TaskRunTimeStat.HeartBeatTask.threads_freestack = Get_Free_Stack(HeartBeatTaskID);
|
||||
|
||||
HeartBeat_Sign(); // 指示灯、蜂鸣器
|
||||
|
||||
// HAL_IWDG_Refresh(&hiwdg); //喂狗
|
||||
|
||||
osDelay(50);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @funNm : HeartBeat_Sign
|
||||
* @brief : 心跳指示灯、蜂鸣器 云快充心跳
|
||||
* @param : none
|
||||
* @retval: void
|
||||
*/
|
||||
void HeartBeat_Sign(void)
|
||||
{
|
||||
if (g_charger_manager.charger_piles[0].is_online)
|
||||
{
|
||||
RUN_EVERY(8000, tick_A, {
|
||||
charger_to_server_0X03(1, 1, 0);
|
||||
});
|
||||
RUN_EVERY(100, tick_B, {
|
||||
System_Mode_Led_Toggle();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
RUN_EVERY(500, tick_C, {
|
||||
System_Mode_Led_Toggle();
|
||||
});
|
||||
}
|
||||
|
||||
RUN_EVERY(1000, tick_D, {
|
||||
System_Run_Led_Toggle();
|
||||
});
|
||||
RUN_EVERY(500, tick_E, {
|
||||
Send_Display_Data();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user