Files
BR_YKC/Core/User/Task/YkcTask.c

132 lines
3.5 KiB
C
Raw Normal View History

2026-03-31 15:46:04 +08:00
/**
******************************************************************************
* @file user\task\HeartBeatTask.c
* @author luhuaishuai
* @version v0.1
* @date 2026-1-12
* @brief Briefly describe the function of your function
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "YkcTask.h"
#include "ChargerTask.h"
2026-03-31 15:46:04 +08:00
#include "lwip/opt.h"
#include "lwip/api.h"
#include "lwip/sys.h"
/**
* @funNm : YkcTask_Function
* @brief :
* @param : argument
* @retval: void
*/
uint8_t SETP = 0;
void YkcTask_Function(void const *argument)
{
init_chargers(); /* 初始化桩结构体*/
ulTaskNotifyTake(pdTRUE, portMAX_DELAY); /* 等待桩通讯协议层完成*/
2026-04-30 17:16:01 +08:00
osDelay(5000);
// send_server_address_to_air724();
2026-03-31 15:46:04 +08:00
while (1)
{
TaskRunTimeStat.YkcTask.threads_runtime = GetTask_RunTime(YkcTaskID);
TaskRunTimeStat.YkcTask.threads_counter = GetTask_Beatcnt(YkcTaskID);
TaskRunTimeStat.YkcTask.threads_freestack = Get_Free_Stack(YkcTaskID);
switch (SETP)
{
case 0:
{
// 等待桩上电
if (!g_charger_manager.charger_piles[1 - 1].is_udp_online)
{
uint8_t open_cmd[] = {0x55, 0xAA, 0x3, 0x01, 0x01, 0xAA, 0x55};
Air724_Message_Send(open_cmd, sizeof(open_cmd));
osDelay(3000);
SETP = 1;
2026-04-30 17:16:01 +08:00
}
else
{
printf("网关:等待桩上电指令\r\n");
osDelay(1000);
SETP = 0;
}
}
break;
// 云快充登录认证
2026-04-30 17:16:01 +08:00
case 1:
2026-03-31 15:46:04 +08:00
{
if (!g_charger_manager.charger_piles[1 - 1].is_online)
{
charger_to_server_0X01(1);
}
else
{
2026-04-30 17:16:01 +08:00
SETP = 2;
charger_to_server_0X05(1,1);
2026-03-31 15:46:04 +08:00
}
osDelay(5000);
2026-03-31 15:46:04 +08:00
}
break;
// 云快充计费模型请求
2026-04-30 17:16:01 +08:00
case 2:
2026-03-31 15:46:04 +08:00
{
if (!g_charger_manager.charger_piles[1 - 1].get_model)
2026-03-31 15:46:04 +08:00
charger_to_server_0X09(1); // 桩1计费模型请求
else
2026-04-30 17:16:01 +08:00
SETP = 3;
osDelay(3000);
2026-03-31 15:46:04 +08:00
}
break;
2026-04-30 17:16:01 +08:00
case 3:
2026-03-31 15:46:04 +08:00
{
charger_to_server_0X13(1, 1); // 上传状态
// local_on_cmd_send_start_charging(1, 1);
osDelay(3000);
2026-03-31 15:46:04 +08:00
}
break;
default:
break;
}
// osDelay(2000);
2026-03-31 15:46:04 +08:00
}
}
/**
* @brief
* @note
* @param stake_mark
* @param pack SERVER_PACK结构体的指针
*/
void handle_ykc_downlink(uint8_t stake_mark, SERVER_PACK *pack)
{
switch (pack->frame_type)
{
case FRAME_TYPE_0X02:
on_cmd_frame_type_0X02(stake_mark, pack);
break;
case FRAME_TYPE_0X04:
on_cmd_frame_type_0X04(stake_mark, pack);
break;
case FRAME_TYPE_0X06:
on_cmd_frame_type_0X06(stake_mark, pack);
break;
case FRAME_TYPE_0X0A:
on_cmd_frame_type_0X0A(stake_mark, pack);
break;
case FRAME_TYPE_0X58:
on_cmd_frame_type_0X58(stake_mark, pack);
break;
case FRAME_TYPE_0X34:
on_cmd_frame_type_0X34(stake_mark, pack);
break;
}
}