XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_task_kernel.c 文件参考
#include "xf_task.h"
#include "xf_task_base.h"
#include "xf_task_manager.h"
#include "../port/xf_task_port_internal.h"
xf_task_kernel.c 的引用(Include)关系图:

浏览源代码.

宏定义

#define TAG   "xf_task"
 

函数

xf_task_t xf_task_create_with_manager (xf_task_manager_t manager, xf_task_type_t type, xf_task_func_t func, void *func_arg, uint16_t priority, void *config)
 在指定任务管理器下创建任务。
 
void xf_task_delete (xf_task_t task)
 任务删除函数。将任务加入销毁队列,并设置任务为删除态。
 
void xf_task_reset (xf_task_t task)
 任务重置。将任务的一些参数进行重置。
 
void * xf_task_get_arg (xf_task_t task)
 从任务对象获取任务自定义参数。
 
int32_t xf_task_get_timeout (xf_task_t task)
 获取任务的超时时间。
 
xf_task_manager_t xf_task_get_manager (xf_task_t task)
 从任务获取管理器对象。
 
void xf_task_feel_hungery_enable (xf_task_t task, uint32_t hunger_time)
 启用任务感受饥饿的功能。
 
void xf_task_feel_hungery_disable (xf_task_t task)
 禁用任务感受饥饿功能。
 
xf_err_t xf_task_suspend (xf_task_t task)
 任务进入挂起。挂起态的任务不会参与调度。
 
xf_err_t xf_task_resume (xf_task_t task)
 任务从挂起中恢复,进入调度。
 
xf_err_t xf_task_trigger (xf_task_t task)
 任务触发。无论是否到达唤醒时间,都会触发。
 
xf_task_type_t xf_task_get_type (xf_task_t task)
 获取当前任务类型。
 
xf_task_state_t xf_task_get_state (xf_task_t task)
 获取当前任务的状态。
 
uint16_t xf_task_get_priority (xf_task_t task)
 获取当前任务的优先级。
 
xf_err_t xf_task_set_priority (xf_task_t task, uint16_t priority)
 设置当前任务的优先级。
 
xf_err_t xf_task_set_delay (xf_task_t task, uint32_t delay_ms)
 设置任务的延时。
 
xf_err_t xf_task_set_func (xf_task_t task, xf_task_func_t func, void *arg)
 设置当前任务的执行函数(某些种类任务可能不适用)。
 
xf_err_t xf_task_set_user_data (xf_task_t task, void *user_data)
 设置当前任务的 user_data。
 
void * xf_task_get_user_data (xf_task_t task)
 获取当前任务的 user_data。
 

详细描述

作者
cangyu (sky.k.nosp@m.irto.nosp@m.@qq.c.nosp@m.om)
版本
0.1
日期
2024-07-05

在文件 xf_task_kernel.c 中定义.

宏定义说明

◆ TAG

#define TAG   "xf_task"

在文件 xf_task_kernel.c21 行定义.

函数说明

◆ xf_task_create_with_manager()

xf_task_t xf_task_create_with_manager ( xf_task_manager_t  manager,
xf_task_type_t  type,
xf_task_func_t  func,
void *  func_arg,
uint16_t  priority,
void *  config 
)

在指定任务管理器下创建任务。

参数
manager指定的任务管理器。
type任务类型。
func任务执行函数。
func_arg任务用户自定义参数。
priority任务优先级。
config任务配置结构体,根据不同类型任务不同配置。
返回
xf_task_t 任务对象,返回为 NULL 则创建失败

在文件 xf_task_kernel.c33 行定义.

◆ xf_task_delete()

void xf_task_delete ( xf_task_t  task)

任务删除函数。将任务加入销毁队列,并设置任务为删除态。

参数
task任务对象。

在文件 xf_task_kernel.c47 行定义.

◆ xf_task_reset()

void xf_task_reset ( xf_task_t  task)

任务重置。将任务的一些参数进行重置。

参数
task任务对象。

在文件 xf_task_kernel.c57 行定义.

◆ xf_task_get_arg()

void * xf_task_get_arg ( xf_task_t  task)

从任务对象获取任务自定义参数。

参数
task任务对象。
返回
void* 用户自定义函数参数(创建的时候定义)
示例
examples/task/trigger/main/xf_main.c.

在文件 xf_task_kernel.c66 行定义.

◆ xf_task_get_timeout()

int32_t xf_task_get_timeout ( xf_task_t  task)

获取任务的超时时间。

参数
task任务对象。
返回
int32_t 正数为超过指定循环的时间,负数为提前执行(可能是trigger触发)的时间

在文件 xf_task_kernel.c75 行定义.

◆ xf_task_get_manager()

xf_task_manager_t xf_task_get_manager ( xf_task_t  task)

从任务获取管理器对象。

参数
task任务对象。
返回
xf_task_manager_t 获取任务管理器对象

在文件 xf_task_kernel.c84 行定义.

◆ xf_task_feel_hungery_enable()

void xf_task_feel_hungery_enable ( xf_task_t  task,
uint32_t  hunger_time 
)

启用任务感受饥饿的功能。

参数
task任务对象。
hunger_time任务的饥饿值。单位为 ms,超时后饥饿值会爬升一个优先级。

在文件 xf_task_kernel.c95 行定义.

◆ xf_task_feel_hungery_disable()

void xf_task_feel_hungery_disable ( xf_task_t  task)

禁用任务感受饥饿功能。

参数
task任务对象。

在文件 xf_task_kernel.c105 行定义.

◆ xf_task_suspend()

xf_err_t xf_task_suspend ( xf_task_t  task)

任务进入挂起。挂起态的任务不会参与调度。

注解
任务出于挂起中的时候,时间不算入延时事件中。
参数
task任务对象。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误
  • XF_ERR_INVALID_STATE 状态错误,状态不能是删除态
  • XF_OK 挂起成功

在文件 xf_task_kernel.c115 行定义.

◆ xf_task_resume()

xf_err_t xf_task_resume ( xf_task_t  task)

任务从挂起中恢复,进入调度。

注解
恢复的任务默认出于阻塞态。
参数
task任务对象。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误
  • XF_ERR_INVALID_STATE 状态错误,状态必须属于挂起态
  • XF_OK 恢复成功

在文件 xf_task_kernel.c130 行定义.

◆ xf_task_trigger()

xf_err_t xf_task_trigger ( xf_task_t  task)

任务触发。无论是否到达唤醒时间,都会触发。

参数
task任务对象。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误
  • XF_OK 设置成功
示例
examples/task/trigger/main/xf_main.c.

在文件 xf_task_kernel.c150 行定义.

◆ xf_task_get_type()

xf_task_type_t xf_task_get_type ( xf_task_t  task)

获取当前任务类型。

参数
task任务对象
返回
xf_task_type_t 返回当前指定任务的类型

在文件 xf_task_kernel.c160 行定义.

◆ xf_task_get_state()

xf_task_state_t xf_task_get_state ( xf_task_t  task)

获取当前任务的状态。

参数
task任务对象。
返回
xf_task_state_t 当前任务的状态。

在文件 xf_task_kernel.c168 行定义.

◆ xf_task_get_priority()

uint16_t xf_task_get_priority ( xf_task_t  task)

获取当前任务的优先级。

参数
task任务对象。
返回
uint16_t 当前指定任务的优先级

在文件 xf_task_kernel.c176 行定义.

◆ xf_task_set_priority()

xf_err_t xf_task_set_priority ( xf_task_t  task,
uint16_t  priority 
)

设置当前任务的优先级。

参数
task任务对象。
priority任务的优先级设置。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误,
  • XF_OK 优先级设置成功

在文件 xf_task_kernel.c184 行定义.

◆ xf_task_set_delay()

xf_err_t xf_task_set_delay ( xf_task_t  task,
uint32_t  delay_ms 
)

设置任务的延时。

注解
不同任务的延时意义不同。
参数
task任务对象。
delay_ms延时时间,单位为 ms。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误,
  • XF_OK 任务延时设置成功

在文件 xf_task_kernel.c202 行定义.

◆ xf_task_set_func()

xf_err_t xf_task_set_func ( xf_task_t  task,
xf_task_func_t  func,
void *  arg 
)

设置当前任务的执行函数(某些种类任务可能不适用)。

参数
task任务对象。
func执行的函数。
arg用户自定义执行任务的参数。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误,
  • XF_OK 设置函数成功

在文件 xf_task_kernel.c214 行定义.

◆ xf_task_set_user_data()

xf_err_t xf_task_set_user_data ( xf_task_t  task,
void *  user_data 
)

设置当前任务的 user_data。

参数
task任务对象。
user_data用户自定义的数据。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误,
  • XF_OK 设置函数成功

在文件 xf_task_kernel.c231 行定义.

◆ xf_task_get_user_data()

void * xf_task_get_user_data ( xf_task_t  task)

获取当前任务的 user_data。

参数
task任务对象。
返回
void* 返回 user_data. 如果为 NULL 则返回失败

在文件 xf_task_kernel.c241 行定义.