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 UCHAR_T valid; /* 0:无效,1: 有效 */
54 UCHAR_T hour;
55 UCHAR_T min;
56 UCHAR_T loop;
57 CHAR_T *timer_id;
58 union {
59 TIMER_DATE_S date;
60 TIMER_WEEK_S weekday;
61 } day;
62 CHAR_T *dps_info;
63
64#if defined(ENABLE_CALENDAR_TIMER) && (ENABLE_CALENDAR_TIMER==1)
65 //日历定时
66 LOOP_TYPE_T loop_type; // 0:周循环 1:日间隔,2:小时间隔 3:奇偶循环
67 UCHAR_T loop_interval; // 隔天(不超过31天)、隔小时(1-6小时可选)
68 UCHAR_T end_hour; // 结束时间
69 UCHAR_T end_min; // 结束时间
70 TIMER_DATE_S end_date; // 结束日期
71#endif
73
74#pragma pack()
75
85OPERATE_RET tuya_svc_timer_task_init(UINT_T increase_unit);
86
95OPERATE_RET tuya_svc_timer_task_reset(VOID_T);
96
106
116
126
136
146OPERATE_RET tuya_svc_timer_delete(CHAR_T* timer_id, BOOL_T update_flash);
147
156VOID_T tuya_svc_timer_get_data(uint8_t *timer_data);
157
167OPERATE_RET tuya_svc_timer_add(ALARM_TIMER_S *pTimer, BOOL_T update_flash);
168
169#ifdef __cplusplus
170}
171#endif /* __cplusplus */
172
173#endif /*__TUYA_SVC_TIME_TASK_H__ */
174
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.
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.