子设备在线状态管理
子设备和网关端的心跳保活可由用户控制;tuya_sdk默认子设备是永久在线的,没有启动心跳保活;
tuya_iot_dev_online_stat_update
说明:如果网关应用层本身有管理子设备上线和离线的功能,子设备离线或上线时,主动调用此接口更新云端的子设备在线状态即可;
/***********************************************************
* @Function:tuya_iot_dev_online_stat_update
* @Desc: 更新子设备在线状态
* @Param: dev_id,子设备id
* @Param: online, 是否在线
* @Return: OPRT_OK: success Other: fail
***********************************************************/
OPERATE_RET tuya_iot_dev_online_stat_update(IN CONST CHAR_T *dev_id,IN CONST BOOL_T online);
开启tuya_sdk的心跳检测机制
tuya_iot_sys_mag_hb_init
说明: 开启tuya_sdk的心跳检测机制,需要首先调用此接口初始化
/***********************************************************
* @Function:tuya_iot_sys_mag_hb_init
* @Desc: 开启tuya_sdk的心跳检测机制,如果开启,tuya_sdk将会每3s
* 检测网关下所有子设备是否刷新心跳在超时时间内
* @Param: hb_send_cb,通知网关发送心跳给子设备
* tuya_sdk会在子设备超时时间范围内最多调用3次这个函数
* @Return: OPRT_OK: success Other: fail
***********************************************************/
OPERATE_RET tuya_iot_sys_mag_hb_init(IN CONST DEV_HEARTBEAT_SEND_CB hb_send_cb);
tuya_iot_set_dev_hb_timeout_cfg
说明: 设置心跳检测超时时间,时间 ≥ 60s
/***********************************************************
* @Function:tuya_iot_set_dev_hb_timeout
* @Desc: 设置子设备心跳超时时间
* @Param: dev_id, 子设备的设备id
* @Param: hb_timeout_time, 超时时间,单位s, 范围[60,0xffffffff)
* @Return: OPRT_OK: success Other: fail
***********************************************************/
#define tuya_iot_set_dev_hb_timeout(dev_id, hb_timeout_time) \
tuya_iot_set_dev_hb_timeout_cfg(dev_id, hb_timeout_time, 2)
OPERATE_RET tuya_iot_set_dev_hb_timeout_cfg(IN CONST CHAR_T *dev_id,IN CONST TIME_S hb_timeout_time, IN CONST UINT_T max_resend_times);
tuya_iot_fresh_dev_hb
说明: 网关在收到子设备心跳包或数据后,调用刷新心跳时间
/***********************************************************
* @Function:tuya_iot_fresh_dev_hb
* @Desc: 刷新子设备心跳时间
* @Param: dev_id, 子设备的设备id
* @Return: OPRT_OK: success Other: fail
***********************************************************/
OPERATE_RET tuya_iot_fresh_dev_hb(IN CONST CHAR_T *dev_id);