Kanzi虽然发生了比较多的版本更迭,api也发生了很多变化,
但定时器的头文件一直都在一个地方:
#include "user/include/user/ui/message/kzu_message_dispatcher.h"
先看看头文件里的api说明。
这个头文件里定义了定时器timeout回调函数格式:
/** Message callback prototype. */ typedef kzsError (*KzuMessageHandlerFunction)(struct kanzi::MessageArguments* message, void* userData);
注册和反注册定时器的api说明如下:
/** Registers a timer handler. * \param messageDispatcher The message dispatcher to use. * \param interval timeout in milliseconds in case of a one-shot timer, and the interval in case of a repeating timer. * \param mode KZU_TIMER_MESSAGE_MODE_ONCE, KZU_TIMER_MESSAGE_MODE_REPEAT or KZU_TIMER_MESSAGE_MODE_REPEAT_BATCH. KZU_TIMER_MESSAGE_MODE_REPEAT_BATCH is * recommended for a repeating timer because it calls handlerFunction only once when the interval has been exceeded several times over. * \param handlerFunction The function to call when the timer expires. * \param userData User data pointer passed to handlerFunction. */ KANZI_API kzsError kzuMessageDispatcherAddTimerHandler(KzuMessageDispatcher* messageDispatcher, kzUint interval, enum KzuTimerMessageMode mode, KzuMessageHandlerFunction handlerFunction, void* userData); /** Unregisters a timer handler. */ KANZI_API kzsError kzuMessageDispatcherRemoveTimerHandler(KzuMessageDispatcher* messageDispatcher, KzuMessageHandlerFunction handlerFunction, const void* userData);
其中参数KzuMessageDispatcher是消息分发器,interval是定时器的间隔时间,KzuTimerMessageMode是定时器的模式(重复或者仅仅一次),KzuMessageHandlerFunction为上面提到的timeout的回调函数。
再来看看具体的使用。
………
…………
待补充。
时间: 2024-11-03 19:57:01