xf_task 内核。  
更多...
浏览源代码.
 | 
| #define  | XF_TASK_REG_ENUM | 
|   | 
| enum   | _xf_task_state_t {  
  _XF_TASK_STATE_NONE = -1
, XF_TASK_STATE_READY
, XF_TASK_STATE_RUNNING
, XF_TASK_STATE_BLOCKED
,  
  XF_TASK_STATE_SUSPEND
, XF_TASK_STATE_DELETE
 
 } | 
|   | 任务状态枚举。  更多...
  | 
|   | 
| enum   | _xf_task_type_t { _XF_TASK_TYPE_NONE = -1
, _XF_TASK_TYPE_MAX
 } | 
|   | 任务类型,通过注册表 xf_task_reg.inc 生成相关的内容。  更多...
  | 
|   | 
| typedef void(*  | xf_task_func_t) (xf_task_t task) | 
|   | 任务调用函数原型。  
  | 
|   | 
| typedef enum _xf_task_state_t  | xf_task_state_t | 
|   | 任务状态枚举。  
  | 
|   | 
| typedef enum _xf_task_type_t  | xf_task_type_t | 
|   | 任务类型,通过注册表 xf_task_reg.inc 生成相关的内容。  
  | 
|   | 
| 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。  
  | 
|   | 
xf_task 内核。 
- 作者
 - cangyu (sky.k.nosp@m.irto.nosp@m.@qq.c.nosp@m.om) 
 
- 版本
 - 0.1 
 
- 日期
 - 2024-07-05
 
- 版权所有
 - Copyright (c) 2024, CorAL. All rights reserved. 
 
在文件 xf_task_kernel.h 中定义.
 
◆ XF_TASK_REG_ENUM
◆ xf_task_func_t
◆ xf_task_state_t
◆ xf_task_type_t
◆ _xf_task_state_t
任务状态枚举。 
| 枚举值 | 
|---|
| _XF_TASK_STATE_NONE  |  | 
| XF_TASK_STATE_READY  | 任务就绪态,任务在不同的优先级链表中等待执行  
 | 
| XF_TASK_STATE_RUNNING  | 任务运行态,任务正在执行,同一个管理器只有一个执行态任务  
 | 
| XF_TASK_STATE_BLOCKED  | 任务阻塞态,任务在执行完成后进入阻塞态  
 | 
| XF_TASK_STATE_SUSPEND  | 任务挂起态,不进入调度循环,只有恢复才能加入调度  
 | 
| XF_TASK_STATE_DELETE  | 任务删除态,任务即将被删除,管理器空闲的时候,删除这些任务  
 | 
在文件 xf_task_kernel.h 第 46 行定义.
 
 
◆ _xf_task_type_t
◆ xf_task_create_with_manager()
在指定任务管理器下创建任务。 
- 参数
 - 
  
    | manager | 指定的任务管理器。  | 
    | type | 任务类型。  | 
    | func | 任务执行函数。  | 
    | func_arg | 任务用户自定义参数。  | 
    | priority | 任务优先级。  | 
    | config | 任务配置结构体,根据不同类型任务不同配置。  | 
  
   
- 返回
 - xf_task_t 任务对象,返回为 NULL 则创建失败 
 
在文件 xf_task_kernel.c 第 33 行定义.
 
 
◆ xf_task_delete()
◆ xf_task_reset()
◆ xf_task_get_arg()
◆ xf_task_get_timeout()
      
        
          | int32_t xf_task_get_timeout  | 
          ( | 
          xf_task_t  | 
          task | ) | 
           | 
        
      
 
获取任务的超时时间。 
- 参数
 - 
  
  
 
- 返回
 - int32_t 正数为超过指定循环的时间,负数为提前执行(可能是trigger触发)的时间 
 
在文件 xf_task_kernel.c 第 75 行定义.
 
 
◆ xf_task_get_manager()
◆ 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.c 第 95 行定义.
 
 
◆ xf_task_feel_hungery_disable()
      
        
          | void xf_task_feel_hungery_disable  | 
          ( | 
          xf_task_t  | 
          task | ) | 
           | 
        
      
 
 
◆ xf_task_suspend()
任务进入挂起。挂起态的任务不会参与调度。 
- 注解
 - 任务出于挂起中的时候,时间不算入延时事件中。
 
- 参数
 - 
  
  
 
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误
 
- XF_ERR_INVALID_STATE 状态错误,状态不能是删除态
 
- XF_OK 挂起成功 
 
 
在文件 xf_task_kernel.c 第 115 行定义.
 
 
◆ xf_task_resume()
任务从挂起中恢复,进入调度。 
- 注解
 - 恢复的任务默认出于阻塞态。
 
- 参数
 - 
  
  
 
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误
 
- XF_ERR_INVALID_STATE 状态错误,状态必须属于挂起态
 
- XF_OK 恢复成功 
 
 
在文件 xf_task_kernel.c 第 130 行定义.
 
 
◆ xf_task_trigger()
任务触发。无论是否到达唤醒时间,都会触发。 
- 参数
 - 
  
  
 
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误
 
- XF_OK 设置成功 
 
 
在文件 xf_task_kernel.c 第 150 行定义.
 
 
◆ xf_task_get_type()
◆ xf_task_get_state()
◆ xf_task_get_priority()
      
        
          | uint16_t xf_task_get_priority  | 
          ( | 
          xf_task_t  | 
          task | ) | 
           | 
        
      
 
 
◆ xf_task_set_priority()
设置当前任务的优先级。 
- 参数
 - 
  
    | task | 任务对象。  | 
    | priority | 任务的优先级设置。  | 
  
   
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误,
 
- XF_OK 优先级设置成功 
 
 
在文件 xf_task_kernel.c 第 184 行定义.
 
 
◆ xf_task_set_delay()
设置任务的延时。 
- 注解
 - 不同任务的延时意义不同。
 
- 参数
 - 
  
    | task | 任务对象。  | 
    | delay_ms | 延时时间,单位为 ms。  | 
  
   
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误,
 
- XF_OK 任务延时设置成功 
 
 
在文件 xf_task_kernel.c 第 202 行定义.
 
 
◆ xf_task_set_func()
设置当前任务的执行函数(某些种类任务可能不适用)。 
- 参数
 - 
  
    | task | 任务对象。  | 
    | func | 执行的函数。  | 
    | arg | 用户自定义执行任务的参数。  | 
  
   
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误,
 
- XF_OK 设置函数成功 
 
 
在文件 xf_task_kernel.c 第 214 行定义.
 
 
◆ xf_task_set_user_data()
设置当前任务的 user_data。 
- 参数
 - 
  
    | task | 任务对象。  | 
    | user_data | 用户自定义的数据。  | 
  
   
- 返回
 - xf_err_t
- XF_ERR_INVALID_ARG 参数错误,
 
- XF_OK 设置函数成功 
 
 
在文件 xf_task_kernel.c 第 231 行定义.
 
 
◆ xf_task_get_user_data()
      
        
          | void * xf_task_get_user_data  | 
          ( | 
          xf_task_t  | 
          task | ) | 
           |