TuyaOS
tkl_nbiot_psm.h
浏览该文件的文档.
1
11#ifndef __TKL_NBIOT_PSM_H__
12#define __TKL_NBIOT_PSM_H__
13
14#include "tuya_cloud_types.h"
15#include "tkl_nbiot_comm.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21typedef UCHAR_T TKL_LOCK_HANDLE;
22
23typedef enum {
24 TKL_NB_FIRST_BOOT_UP = 0, /* 1st boot up */
25 TKL_NB_DEEP_SLEEP = 1, /* deep sleep */
26 TKL_NB_DEEPER_SLEEP = 2, /* power off */
27 TKL_NB_SYS_RESET = 3, /* long press shutdown or sys_reset */
28 TKL_NB_WDT_HW_RESET = 4, /* wdt hw reset */
29 TKL_NB_WDT_SW_RESET = 5, /* wdt sw reset */
30 TKL_NB_FORCED_SHUT_DOWN = 6, /* forced shut down */
31 TKL_NB_FORCED_RESET = 7, /* forced reset */
32 TKL_NB_POWER_ON_INVALID = 0xFF, /* invalid result */
33 TKL_NB_POWER_ON_RESULT_MAX
34} TKL_NB_POWER_ON_RESULT_E;
35
36typedef enum {
37 TKL_PSM_SLEEP_NONE = 0,
38 TKL_PSM_LIGHT_SLEEP = 1,
39 TKL_PSM_DEEP_SLEEP = 2,
40 TKL_PSM_DEEPER_SLEEP = 3,
41 TKL_PSM_SLEEP_MAX = 4,
42} TKL_NB_PSM_SLP_TYPE_E;
43
44typedef enum
45{
46 TKL_WAKEUP_FROM_NONE,
47 TKL_WAKEUP_FROM_POR, // power on or reset
48 TKL_WAKEUP_FROM_RTC,
49 TKL_WAKEUP_FROM_KEY,
50}TKL_NB_WAKEUP_SOURCE_E;
51
56typedef VOID_T (*TKL_NB_PSM_NOTIFY_CB_T)(TKL_NB_PSM_SLP_TYPE_E sleep_type);
57
63typedef VOID_T (*TKL_NB_SLP_TIMER_CB_T)(PVOID_T user_data);
64
70typedef VOID_T (*TKL_NB_WAKEUP_CB)(PVOID_T user_data);
71
77OPERATE_RET tkl_nbiot_psm_plat_config(VOID);
78
86
94OPERATE_RET tkl_nbiot_psm_create_sleeplock(CONST PCHAR_T lock_name, UCHAR_T *handle);
95
102OPERATE_RET tkl_nbiot_psm_acquire_sleeplock(UCHAR_T handle);
103
110OPERATE_RET tkl_nbiot_psm_release_sleeplock(UCHAR_T handle);
111
118
125OPERATE_RET tkl_nbiot_psm_get_poweron_result(TKL_NB_POWER_ON_RESULT_E *result);
126
133OPERATE_RET tkl_nbiot_psm_get_wakeup_source(TKL_NB_WAKEUP_SOURCE_E *src);
134
143OPERATE_RET tkl_nbiot_psm_rtc_timer_create(UINT_T time_period_sec, BOOL_T is_periodic,TKL_NB_SLP_TIMER_CB_T cb);
144
152
160
168
175
183OPERATE_RET tkl_nbiot_psm_wakeup_pin_cfg(INT_T pin_num, TKL_NB_WAKEUP_CB wakeup_cb);
184
185
186#ifdef __cplusplus
187}
188#endif /* __cplusplus */
189
190#endif
Common process - common defination
OPERATE_RET tkl_nbiot_psm_rtc_timer_start(VOID)
Start a rtc timer
OPERATE_RET tkl_nbiot_psm_release_sleeplock(UCHAR_T handle)
Release the sleeplock, allow psm
OPERATE_RET tkl_nbiot_psm_plat_config(VOID)
Set config about the paltform
BOOL_T tkl_nbiot_psm_usb_is_active(VOID)
Check the usb is active
OPERATE_RET tkl_nbiot_psm_rtc_timer_create(UINT_T time_period_sec, BOOL_T is_periodic, TKL_NB_SLP_TIMER_CB_T cb)
Create rtc timer
VOID_T(* TKL_NB_WAKEUP_CB)(PVOID_T user_data)
prototype of the ext trigger call back
Definition: tkl_nbiot_psm.h:70
OPERATE_RET tkl_nbiot_psm_create_sleeplock(CONST PCHAR_T lock_name, UCHAR_T *handle)
Create a psm manager lock
VOID tkl_nbiot_psm_force_sleep(VOID)
Force enter psm mode
OPERATE_RET tkl_nbiot_psm_wakeup_pin_cfg(INT_T pin_num, TKL_NB_WAKEUP_CB wakeup_cb)
Specify a pin for wakeup trigger
OPERATE_RET tkl_nbiot_psm_rtc_timer_stop(VOID)
Stop rtc timer
OPERATE_RET tkl_nbiot_psm_acquire_sleeplock(UCHAR_T handle)
Acquire the sleeplock, keep awake
OPERATE_RET tkl_nbiot_psm_sleep_notify_reg(TKL_NB_PSM_NOTIFY_CB_T cb)
Regist the PSM sleep notify cb
OPERATE_RET tkl_nbiot_psm_get_poweron_result(TKL_NB_POWER_ON_RESULT_E *result)
Get the power on reason
OPERATE_RET tkl_nbiot_psm_rtc_timer_delete(VOID)
Del rtc timer
OPERATE_RET tkl_nbiot_psm_get_wakeup_source(TKL_NB_WAKEUP_SOURCE_E *src)
Get the wake up reason
VOID_T(* TKL_NB_SLP_TIMER_CB_T)(PVOID_T user_data)
prototype of the sleep timer call back
Definition: tkl_nbiot_psm.h:63
VOID_T(* TKL_NB_PSM_NOTIFY_CB_T)(TKL_NB_PSM_SLP_TYPE_E sleep_type)
prototype of the PSM notify call back
Definition: tkl_nbiot_psm.h:56