diff --git a/timer_task/include/nativeapi_timer_task.h b/timer_task/include/nativeapi_timer_task.h index ba598e9e2c82f6bcdaee0636698b51bc2a90d2fb..5fdf9f26aa849da9ebd8151e99c3897ae86fdb61 100755 --- a/timer_task/include/nativeapi_timer_task.h +++ b/timer_task/include/nativeapi_timer_task.h @@ -27,8 +27,30 @@ extern "C" { typedef void *timerHandle_t; int InitTimerTask(); + +/** 创建并启动定时器任务,支持周期执行任务和单次超时任务两种 + * + * @param isPeriodic 指定定时器任务类型是周期执行还是单次超时执行 + * @param delay 周期执行任务的执行周期或者定时任务的器超时时间,单位ms + * @param userCallback 定时器任务回调函数指针,原型满足`void (*)(union sigval)` + * @param userContext 定时器任务的上下文指针 + * @param timerHandle 定时器句柄,创建并启动任务成功,则保存的是定时器句柄 + * + * @return EC_SUCCESS 启动定时任务成功 + * @return EC_INVALID 参数非法 + * @return EC_NORESOURCE 定时器创建失败 + * @return EC_FAILURE 启动定时器失败 +*/ int StartTimerTask(bool isPeriodic, const unsigned int delay, void* userCallback, void* userContext, timerHandle_t* timerHandle); + +/** 停止并删除由StartTimerTask创建的定时器,调用该函数后,定时器句柄失效 + * + * @param timerHandle 定时器句柄 + * + * @return EC_SUCCESS 启动定时任务成功 + * @return 其他值,表示操作失败 +*/ int StopTimerTask(const timerHandle_t timerHandle); #ifdef __cplusplus diff --git a/timer_task/src/nativeapi_timer_task.c b/timer_task/src/nativeapi_timer_task.c index 2ac88901e48e62c0ab482cb93891311d1a4921e3..c4ade42e663d788d8c04d427b853e90a4285e9a6 100755 --- a/timer_task/src/nativeapi_timer_task.c +++ b/timer_task/src/nativeapi_timer_task.c @@ -27,13 +27,13 @@ int StartTimerTask(bool isPeriodic, const unsigned int delay, void* userCallback void* userContext, timerHandle_t* timerHandle) { if (userCallback == NULL || timerHandle == NULL) { - return EC_FAILURE; + return EC_INVALID; } KalTimerType timerType = isPeriodic ? KAL_TIMER_PERIODIC : KAL_TIMER_ONCE; KalTimerId timerId = KalTimerCreate((KalTimerProc)userCallback, timerType, userContext, delay); if (timerId == NULL) { - return EC_FAILURE; + return EC_NORESOURCE; } if (KalTimerStart(timerId) != KAL_OK) { @@ -48,7 +48,7 @@ int StartTimerTask(bool isPeriodic, const unsigned int delay, void* userCallback int StopTimerTask(const timerHandle_t timerHandle) { if (timerHandle == NULL) { - return EC_FAILURE; + return EC_INVALID; } return KalTimerDelete((KalTimerId)timerHandle);; } \ No newline at end of file