79 lines
1.7 KiB
C
79 lines
1.7 KiB
C
/**
|
||
******************************************************************************
|
||
* @file User\App\task_sys.c
|
||
* @author 路淮
|
||
* @version v0.1
|
||
* @date 2026-05-21
|
||
* @brief 系统任务
|
||
******************************************************************************
|
||
*/
|
||
|
||
/* Includes ------------------------------------------------------------------*/
|
||
#include "task_sys.h"
|
||
|
||
void HeartBeat_Sign(void);
|
||
|
||
/**
|
||
* @brief sys_task_function:系统任务
|
||
* @note none
|
||
* @param none
|
||
* @retval none
|
||
*/
|
||
void sys_task_function(void const *argument)
|
||
{
|
||
while (1)
|
||
{
|
||
|
||
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();
|
||
});
|
||
}
|