UP Task,Argpase
This commit is contained in:
60
lib/inc/task/task.h
Normal file
60
lib/inc/task/task.h
Normal file
@@ -0,0 +1,60 @@
|
||||
#ifndef TASK_H
|
||||
#define TASK_H
|
||||
|
||||
#include "stdint.h"
|
||||
|
||||
#define true 0
|
||||
#define false (-1)
|
||||
//平台切换相关类型重定义
|
||||
typedef int64_t TaskStatus_t;
|
||||
typedef uint64_t TaskTime_t;
|
||||
typedef int64_t TaskCnt_t;
|
||||
|
||||
typedef struct TaskList Task_t;
|
||||
|
||||
typedef uint64_t (*PlatformTicksFunc_t)(void);
|
||||
|
||||
typedef void (*Task_Callback_t)(Task_t *task, void *userdata);
|
||||
|
||||
struct TaskList {
|
||||
Task_t *next;
|
||||
uint8_t enable;
|
||||
TaskCnt_t runcnt;
|
||||
TaskTime_t lasttime;
|
||||
TaskTime_t intervaltime;
|
||||
Task_Callback_t callback;
|
||||
void *userdata;
|
||||
};
|
||||
|
||||
//时间基准注册,建议1-10ms的基准
|
||||
TaskStatus_t TaskInit(PlatformTicksFunc_t TicksFunc);
|
||||
|
||||
//创建任务
|
||||
// time:间隔时间
|
||||
// runcnt:执行次数 为-1无限制执行 为0只创建不运行
|
||||
// callback:回调函数
|
||||
// userdata:用户数据传参
|
||||
TaskStatus_t TaskCreat(Task_t *task, TaskTime_t time, TaskCnt_t runcnt, Task_Callback_t callback, void *userdata);
|
||||
|
||||
//添加任务
|
||||
TaskStatus_t TaskAdd(Task_t *task);
|
||||
|
||||
//删除任务
|
||||
TaskStatus_t TaskDel(Task_t *task);
|
||||
|
||||
//重新开始以停止的任务
|
||||
TaskStatus_t TaskStart(Task_t *task);
|
||||
|
||||
//暂停任务执行
|
||||
TaskStatus_t TaskStop(Task_t *task);
|
||||
|
||||
//重设任务执行次数
|
||||
TaskStatus_t TaskSetCnt(Task_t *task, TaskCnt_t runcnt);
|
||||
|
||||
//重设任务间隔时间
|
||||
TaskStatus_t TaskSetTime(Task_t *task, TaskTime_t time);
|
||||
|
||||
//任务调度
|
||||
TaskStatus_t TaskRun(void);
|
||||
|
||||
#endif //TASK_H
|
Reference in New Issue
Block a user