11#ifndef __TKL_NBIOT_PSM_H__
12#define __TKL_NBIOT_PSM_H__
14#include "tuya_cloud_types.h"
21typedef UCHAR_T TKL_LOCK_HANDLE;
24 TKL_NB_FIRST_BOOT_UP = 0,
25 TKL_NB_DEEP_SLEEP = 1,
26 TKL_NB_DEEPER_SLEEP = 2,
28 TKL_NB_WDT_HW_RESET = 4,
29 TKL_NB_WDT_SW_RESET = 5,
30 TKL_NB_FORCED_SHUT_DOWN = 6,
31 TKL_NB_FORCED_RESET = 7,
32 TKL_NB_POWER_ON_INVALID = 0xFF,
33 TKL_NB_POWER_ON_RESULT_MAX
34} TKL_NB_POWER_ON_RESULT_E;
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;
50}TKL_NB_WAKEUP_SOURCE_E;
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