ems/ems_c/logic/logic_main.h

68 lines
2.4 KiB
C
Raw Permalink Normal View History

2025-05-13 17:49:49 +08:00
/*****************************************************************************
* @copyright 2024-202, . POWER SUPPLY CO., LTD.
* @file logic_main.h
* @brief xxxx
* @author Gary
* @date 2024/09/29
* @remark
*****************************************************************************/
#pragma once
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include "logic_comm.h"
#define MAX_TASK_NUM 10
// 在头文件中配置任务链
#define INIT_TASK_GROUP() \
{ \
task_group[E_TACTIC_MODE_START] = init_task_list(1, example_task1); \
task_group[E_TACTIC_MODE_DEBUG] = init_task_list(2, logicFun_protect,logicFun_powerDistr); \
task_group[E_TACTIC_MODE_PEAKVALLY] = init_task_list(3, logicFun_peakValley,logicFun_protect,logicFun_powerDistr); \
task_group[E_TACTIC_MODE_DEMANDRES] = init_task_list(1, example_task1); \
task_group[E_TACTIC_MODE_LOADTRACK] = init_task_list(1, example_task1); \
task_group[E_TACTIC_MODE_DMDCTRL] = init_task_list(1, example_task1); \
task_group[E_TACTIC_MODE_PFCTRL] = init_task_list(1, example_task1); \
}
typedef int (*task_func_t)(); // 定义函数指针类型返回值为int
typedef enum
{
E_RUN_ONCE, //单次运行
E_RUN_period //周期运行
} task_run_type;
typedef struct tast_register_execute
{
// protocol_type_master_e protocolType; // 任务
// task_run_type taskType; // 任务类型
// uint16_t taskPeriod; // 任务间隔 ms
task_func_t task; // 任务指针
struct tast_register_execute* next; // 指向下一个任务
} tast_register_execute;
extern tast_register_execute* task_group[E_TACTIC_MODE_END];
void example_task1();
//初始化任务链表,支持多个任务函数指针
tast_register_execute* init_task_list(int count, ...);
/*****************************************************************************
* @brief 线
* @param[in]
* @return
*****************************************************************************/
void* creatLogicTaskThread(void* arg);
/*********************************************************************
* @brief
* @param[in]
* @return 0sucessful1fault
*********************************************************************/
int creatLogicCtrTaskEntry();