TuyaOS
tuya_svc_timer_task.h
浏览该文件的文档.
1
11#ifndef __TUYA_SVC_TIME_TASK_H__
12#define __TUYA_SVC_TIME_TASK_H__
13
14#include "tuya_cloud_types.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20/*
21 * 隔天循环有定时开始时间:具体开始时间(具体到某一天)
22 * 周循环和奇偶日、隔小时 只有开始时间点,不用确认开始日期
23 */
24typedef BYTE_T LOOP_TYPE_T;
25#define LOOP_TYPE_WEEKLY (0) // 每周循环
26#define LOOP_TYPE_DAILY (1) // 隔天循环, 1~31天
27#define LOOP_TYPE_HOURLY (2) // 小时间隔, 1-6小时
28#define LOOP_TYPE_EVEN_ODD (3) // 奇偶循环, 单双号
29#define LOOP_TYPE_INVALID (0xFE) // 无效循环类型
30
31
32#pragma pack(1)
33
34typedef struct {
35 USHORT_T year;
36 UCHAR_T mon;
37 UCHAR_T day;
39
40
41/*
42bit6 bit5 bit4 bit3 bit2 bit1 bit0
43周日 周一 周二 周三 周四 周五 周六
4464 32 16 8 4 2 1
45*/
46typedef struct {
47 UINT_T weekday;
49
50
51typedef struct {
52 TIME_T last_time; /* 记录定时器上次执行时间,防止重复执行 */
53 TIME_T modify_time; /* 记录定时任务修改时间 */
54 UCHAR_T valid; /* 0:无效,1: 有效 */
55 UCHAR_T hour;
56 UCHAR_T min;
57 UCHAR_T loop;
58 CHAR_T *timer_id;
59 union {
60 TIMER_DATE_S date;
61 TIMER_WEEK_S weekday;
62 } day;
63 CHAR_T *dps_info;
64
65#if defined(ENABLE_CALENDAR_TIMER) && (ENABLE_CALENDAR_TIMER==1)
66 //日历定时
67 LOOP_TYPE_T loop_type; // 0:周循环 1:日间隔,2:小时间隔 3:奇偶循环
68 UCHAR_T loop_interval; // 隔天(不超过31天)、隔小时(1-6小时可选)
69 UCHAR_T end_hour; // 结束时间
70 UCHAR_T end_min; // 结束时间
71 TIMER_DATE_S end_date; // 结束日期
72#endif
74
75#pragma pack()
76
86OPERATE_RET tuya_svc_timer_task_init(UINT_T increase_unit);
87
96OPERATE_RET tuya_svc_timer_task_reset(VOID_T);
97
107
117
127
137
147OPERATE_RET tuya_svc_timer_delete(CHAR_T* timer_id, BOOL_T update_flash);
148
157VOID_T tuya_svc_timer_get_data(uint8_t *timer_data);
158
168OPERATE_RET tuya_svc_timer_add(ALARM_TIMER_S *pTimer, BOOL_T update_flash);
169
179
180#ifdef __cplusplus
181}
182#endif /* __cplusplus */
183
184#endif /*__TUYA_SVC_TIME_TASK_H__ */
185
Definition: tuya_svc_timer_task.h:51
Definition: tuya_svc_timer_task.h:34
Definition: tuya_svc_timer_task.h:46
OPERATE_RET tuya_svc_timer_task_reset(VOID_T)
Reset the timer task.
UINT_T tuya_svc_timer_get_task_count(VOID_T)
Get the count of timer task.
UINT_T tuya_svc_timer_get_capacity(VOID_T)
Get the capacity of timer task.
OPERATE_RET tuya_svc_timer_add(ALARM_TIMER_S *pTimer, BOOL_T update_flash)
add timer task.
OPERATE_RET tuya_svc_timer_task_clear_db(VOID_T)
Clear up the timer task data in flash.
VOID_T tuya_svc_timer_full_req(VOID_T)
write timer full req flag.
OPERATE_RET tuya_svc_timer_delete(CHAR_T *timer_id, BOOL_T update_flash)
delete timer task.
UINT_T tuya_svc_timer_get_num(VOID_T)
Get the num of timer task.
VOID_T tuya_svc_timer_get_data(uint8_t *timer_data)
get timer task data.
OPERATE_RET tuya_svc_timer_task_init(UINT_T increase_unit)
Init a timer task.