11#ifndef __TUYA_SVC_LAN_H__
12#define __TUYA_SVC_LAN_H__
15#include "tuya_cloud_types.h"
23#define FRM_TP_CFG_WF 0x01
24#define FRM_TP_ACTV 0x02
25#define FRM_TP_BIND_DEV 0x03
26#define FRM_TP_UNBIND_DEV 0x06
27#define FRM_TP_CMD 0x07
28#define FRM_TP_STAT_REPORT 0x08
30#define FRM_QUERY_STAT 0x0a
31#define FRM_SSID_QUERY 0x0b
32#define FRM_USER_BIND_REQ 0x0c
33#define FRM_TP_NEW_CMD 0x0d
34#define FRM_ADD_SUB_DEV_CMD 0x0e
35#define FRM_CFG_WIFI_INFO 0x0f
36#define FRM_QUERY_STAT_NEW 0x10
37#define FRM_SCENE_EXEC 0x11
38#define FRM_LAN_QUERY_DP 0x12
40#define FRM_SECURITY_TYPE3 0x03
41#define FRM_SECURITY_TYPE4 0x04
42#define FRM_SECURITY_TYPE5 0x05
44#define FR_TYPE_AP_ENCRYPTION 0x11
45#define FR_TYPE_ENCRYPTION 0x13
46#define FR_TYPE_BOARDCAST_LPV34 0x23
47#define FRM_AP_CFG_WF_V40 0x14
49#define WIFI_ERR_APP_TO_DEV 0x15
50#define FRM_LAN_EXT_STREAM 0x40
51#define FRM_LAN_EXT_BEFORE_ACTIVATE 0x42
89#define LPV35_FRAME_HEAD_SIZE 4
90#define LPV35_FRAME_VERSION_SIZE 1
91#define LPV35_FRAME_RESERVE_SIZE 1
92#define LPV35_FRAME_SEQUENCE_SIZE 4
93#define LPV35_FRAME_TYPE_SIZE 4
94#define LPV35_FRAME_DATALEN_SIZE 4
95#define LPV35_FRAME_NONCE_SIZE 12
96#define LPV35_FRAME_TAG_SIZE 16
97#define LPV35_FRAME_TAIL_SIZE 4
99#define LPV35_FRAME_MINI_SIZE (LPV35_FRAME_HEAD_SIZE + LPV35_FRAME_VERSION_SIZE + LPV35_FRAME_RESERVE_SIZE + \
100 LPV35_FRAME_SEQUENCE_SIZE + LPV35_FRAME_TYPE_SIZE + LPV35_FRAME_DATALEN_SIZE + LPV35_FRAME_NONCE_SIZE + \
101 LPV35_FRAME_TAG_SIZE + LPV35_FRAME_TAIL_SIZE)
131 CFG_UDP_DISCOVERY_FORCE,
135 CFG_UDP_DISCOVERY_INTERVAL,
137 CFG_SET_LAN_CLOSED_CB,
139 CFG_HEART_BEAT_TIMEOUT,
140 CFG_SEQ_ERR_THRESHOLD,
193 IN CONST BYTE_T *data, IN CONST UINT_T len);
259 IN CONST BYTE_T *key, OUT CHAR_T **out_data);
333OPERATE_RET tuya_svc_lan_data_com_send(IN CONST INT_T socket, IN CONST UINT_T fr_num, IN CONST UINT_T fr_type,
334 IN CONST UINT_T ret_code, IN CONST BYTE_T *data,IN CONST UINT_T len);
Definition: tuya_svc_lan.h:324
LAN protocol frame head format (from app)
Definition: tuya_svc_lan.h:58
LAN protocol frame head format (from device)
Definition: tuya_svc_lan.h:79
LAN protocol frame tail format (from device)
Definition: tuya_svc_lan.h:71
Definition: tuya_svc_lan.h:103
Definition: tuya_svc_lan.h:120
Definition: tuya_svc_lan.h:114
Definition: ty_cJSON.h:45
OPERATE_RET tuya_svc_lan_ext_proto_data_report(IN CONST VOID *data, IN CONST UINT_T len)
extend lan protocol data report
OPERATE_RET tuya_svc_lan_init(VOID)
Init and start LAN service
OPERATE_RET tuya_svc_lan_dp_report(IN CONST VOID *data, IN CONST UINT_T len)
LAN dp report
OPERATE_RET tuya_svc_lan_ext_proto_reg(CONST CHAR_T *ext_lan_pro, lan_ext_protocol_handler_cb handler)
Register extend lan protocol
UINT_T tuya_svc_lan_get_client_num(VOID)
get lan client number
OPERATE_RET tuya_svc_lan_data_report(IN CONST UINT_T fr_type, IN CONST UINT_T ret_code, IN CONST BYTE_T *data, IN CONST UINT_T len)
distribute data to all connections
OPERATE_RET tuya_svc_lan_decrypt_data(IN BYTE_T *data, IN CONST INT_T len, IN CONST BYTE_T *key, OUT CHAR_T **out_data)
Decrypt LAN data
OPERATE_RET tuya_svc_lan_cfg(IN CONST Lan_Cfg_e cfg, IN CONST VOID *data)
lan configure
OPERATE_RET tuya_svc_lan_disable(VOID)
Disable LAN service
BOOL_T tuya_svc_lan_canbe_closed(VOID)
check lan can be closed
INT_T tuya_svc_lan_get_valid_connections(VOID)
get count of vaild connections
OPERATE_RET tuya_svc_lan_ext_proto_uninit(VOID)
uninit extend lan protocol
OPERATE_RET tuya_svc_lan_exit(VOID)
Stop and uninit LAN service
OPERATE_RET tuya_svc_lan_ext_proto_unreg(CONST CHAR_T *ext_lan_pro)
Unregister extend lan protocol
OPERATE_RET(* lan_ext_protocol_handler_cb)(IN ty_cJSON *root_json)
Callback to handle lan protocol data
Definition: tuya_svc_lan.h:275
OPERATE_RET tuya_svc_lan_enable(VOID)
Enable LAN service
OPERATE_RET tuya_svc_lan_disconnect_all(VOID)
disconnect all connections
OPERATE_RET(* lan_cmd_handler_cb)(IN CONST BYTE_T *data, OUT BYTE_T **out)
lan cmd extersion
Definition: tuya_svc_lan.h:227
Lan_Cfg_e
Definition of LAN configuration
Definition: tuya_svc_lan.h:130
OPERATE_RET tuya_svc_lan_unregister_cb(IN UINT_T frame_type)
unregister callback
BOOL_T(* lan_canbe_closed)(VOID)
check lan canbe closed
Definition: tuya_svc_lan.h:315
OPERATE_RET tuya_svc_lan_register_cb(IN UINT_T frame_type, IN lan_cmd_handler_cb handler)
register callback