Skip to content

timer_t

概述

定时器系统。

本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。

示例:

c
static ret_t my_on_timer(const timer_info_t* info) {
widget_t* widget = WIDGET(info->ctx);
...
return RET_REPEAT;
}

...

timer_add(my_on_timer, widget, 1000);

在非GUI线程请用timer_queue。

函数

函数名称说明
timer_add增加一个timer。
timer_count返回timer的个数。
timer_find查找指定ID的timer。
timer_modify修改指定的timer的duration,修改之后定时器重新开始计时。
timer_next_time返回最近的timer到期时间(毫秒)。
timer_queue用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。
timer_queue_ex用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。
timer_remove删除指定的timer。
timer_remove_all_by_ctx根据上下文删除所有对应的timer。
timer_reset重置指定的timer,重置之后定时器重新开始计时。
timer_resume唤醒挂起指定的timer,并且重置定时器重新开始计时
timer_set_on_destroy设置一个回调函数,在timer被销毁时调用(方便脚本语言去释放回调函数)。
timer_suspend挂起指定的timer,一般用于不断循环触发的计时器。

timer_add 函数

  • 函数功能:

增加一个timer。

  • 函数原型:
uint32_t timer_add (timer_func_t on_timer, void* ctx, uint32_t duration);
  • 参数说明:
参数类型说明
返回值uint32_t返回timer的ID,TK_INVALID_ID表示失败。
on_timertimer_func_ttimer回调函数。
ctxvoid*timer回调函数的上下文。
durationuint32_t时间(毫秒)。

timer_count 函数

  • 函数功能:

返回timer的个数。

  • 函数原型:
uint32_t timer_count ();
  • 参数说明:
参数类型说明
返回值uint32_t返回timer的个数。

timer_find 函数

  • 函数功能:

查找指定ID的timer。

  • 函数原型:
const timer_info_t* timer_find (uint32_t timer_id);
  • 参数说明:
参数类型说明
返回值const timer_info_t*返回timer的信息。
timer_iduint32_ttimerID。

timer_modify 函数

  • 函数功能:

修改指定的timer的duration,修改之后定时器重新开始计时。

  • 函数原型:
ret_t timer_modify (uint32_t timer_id, uint32_t duration);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timer_iduint32_ttimerID。
durationuint32_t新的时间(毫秒)。

timer_next_time 函数

  • 函数功能:

返回最近的timer到期时间(毫秒)。

  • 函数原型:
uint32_t timer_next_time ();
  • 参数说明:
参数类型说明
返回值uint32_t返回最近的timer到期时间(毫秒)。

timer_queue 函数

  • 函数功能:

用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。

  • 函数原型:
ret_t timer_queue (timer_func_t on_timer, void* ctx, uint32_t duration);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
on_timertimer_func_ttimer回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。
ctxvoid*timer回调函数的上下文。
durationuint32_t时间(毫秒)。

timer_queue_ex 函数

  • 函数功能:

用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。

  • 函数原型:
ret_t timer_queue_ex (timer_func_t on_timer, void* ctx, uint32_t duration, tk_destroy_t on_destroy, void* on_destroy_ctx);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
on_timertimer_func_ttimer回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。
ctxvoid*timer回调函数的上下文。
durationuint32_t时间(毫秒)。
on_destroytk_destroy_t回调函数。
on_destroy_ctxvoid*回调函数上下文。

timer_remove 函数

  • 函数功能:

删除指定的timer。

  • 函数原型:
ret_t timer_remove (uint32_t timer_id);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timer_iduint32_ttimerID。

timer_remove_all_by_ctx 函数

  • 函数功能:

根据上下文删除所有对应的timer。

  • 函数原型:
ret_t timer_remove_all_by_ctx (void* ctx);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
ctxvoid*timer回调函数的上下文。

timer_reset 函数

  • 函数功能:

重置指定的timer,重置之后定时器重新开始计时。

  • 函数原型:
ret_t timer_reset (uint32_t timer_id);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timer_iduint32_ttimerID。

timer_resume 函数

  • 函数功能:

唤醒挂起指定的timer,并且重置定时器重新开始计时

  • 函数原型:
ret_t timer_resume (uint32_t timer_id);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timer_iduint32_ttimerID。

timer_set_on_destroy 函数

  • 函数功能:

设置一个回调函数,在timer被销毁时调用(方便脚本语言去释放回调函数)。

  • 函数原型:
ret_t timer_set_on_destroy (uint32_t timer_id, tk_destroy_t on_destroy, void* on_destroy_ctx);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timer_iduint32_ttimerID。
on_destroytk_destroy_t回调函数。
on_destroy_ctxvoid*回调函数上下文。

timer_suspend 函数

  • 函数功能:

挂起指定的timer,一般用于不断循环触发的计时器。

  • 函数原型:
ret_t timer_suspend (uint32_t timer_id);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timer_iduint32_ttimerID。