Release:5.20灰测
This commit is contained in:
82
Core/User/App/task_sys.c
Normal file
82
Core/User/App/task_sys.c
Normal file
@@ -0,0 +1,82 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file user\task\HeartBeatTask.c
|
||||
* @author luhuaishuai
|
||||
* @version v0.1
|
||||
* @date 2026-1-12
|
||||
* @brief 心跳任务,负责发送心跳包和处理云快充的响应
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "task_sys.h"
|
||||
|
||||
void HeartBeat_Sign(void);
|
||||
|
||||
|
||||
/**
|
||||
* @funNm : HeartbeatTask_Function
|
||||
* @brief : 心跳
|
||||
* @param : argument
|
||||
* @retval: void
|
||||
*/
|
||||
void sys_task_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
|
||||
*/
|
||||
static uint32_t last_heartbeat_tick[MAX_CHARGER_COUNT] = {0};
|
||||
|
||||
void HeartBeat_Sign(void)
|
||||
{
|
||||
int i;
|
||||
uint32_t now = HAL_GetTick();
|
||||
bool any_online = false;
|
||||
|
||||
/* 6路桩独立心跳,互不影响 */
|
||||
for (i = 0; i < MAX_CHARGER_COUNT; i++)
|
||||
{
|
||||
if (g_charger_manager.charger_piles[i].is_online)
|
||||
{
|
||||
any_online = true;
|
||||
if ((now - last_heartbeat_tick[i]) >= 8000)
|
||||
{
|
||||
last_heartbeat_tick[i] = now;
|
||||
charger_to_server_0X03(i + 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (any_online)
|
||||
{
|
||||
RUN_EVERY(50, 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();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user