Documentation

Documentation

Includes

tuya_cloud_types.h

#include "tuya_cloud_types.h"
#include "tuya_cloud_types.h"

crc32i.h

#include "crc32i.h"
#include "crc32i.h"

uni_log.h

#include "uni_log.h"
#include "uni_log.h"

mem_pool.h"

#include "mem_pool.h" 
#include "mem_pool.h" 

aes_inf.h

#include "aes_inf.h"
#include "aes_inf.h"

mix_method.h

#include "mix_method.h"
#include "mix_method.h"

Macros

Marco __LAN_PROTOCOL__

#define __LAN_PROTOCOL__


      

Marco FRM_TP_CFG_WF

#define FRM_TP_CFG_WF 1 // only used for ap 3.0 network config
// lan protocol

Marco FRM_TP_CMD

#define FRM_TP_CMD 7
// #define FRM_TP_UNBIND_DEV 6

Marco FRM_TP_STAT_REPORT

#define FRM_TP_STAT_REPORT 8


      

Marco FRM_TP_HB

#define FRM_TP_HB 9


      

Marco FRM_QUERY_STAT

#define FRM_QUERY_STAT 0a


      

Marco FRM_USER_BIND_REQ

#define FRM_USER_BIND_REQ 0c
// #define FRM_SSID_QUERY 0x0b // discard

Marco FRM_TP_NEW_CMD

#define FRM_TP_NEW_CMD 0d


      

Marco FRM_ADD_SUB_DEV_CMD

#define FRM_ADD_SUB_DEV_CMD 0e


      

Marco FRM_CFG_WIFI_INFO

#define FRM_CFG_WIFI_INFO 15


      

Marco FRM_QUERY_STAT_NEW

#define FRM_QUERY_STAT_NEW 16


      

Marco FRM_SCENE_EXEC

#define FRM_SCENE_EXEC 17


      

Marco FRM_LAN_QUERY_DP

#define FRM_LAN_QUERY_DP 18


      

Marco FRM_SECURITY_TYPE3

#define FRM_SECURITY_TYPE3 3


      

Marco FRM_SECURITY_TYPE4

#define FRM_SECURITY_TYPE4 4


      

Marco FRM_SECURITY_TYPE5

#define FRM_SECURITY_TYPE5 5


      

Marco FRM_LAN_EXT_STREAM

#define FRM_LAN_EXT_STREAM 64


      

Marco FR_TYPE_ENCRYPTION

#define FR_TYPE_ENCRYPTION 19


      

Marco FRM_AP_CFG_WF_V40

#define FRM_AP_CFG_WF_V40 20


      

Marco FR_TYPE_BOARDCAST_LPV34

#define FR_TYPE_BOARDCAST_LPV34 35

      

Functions

Func __lan_parse_data

OPERATE_RET __lan_parse_data(IN BYTE_T *data,IN CONST INT_T len,IN CONST BYTE_T *key,OUT CHAR_T **out_data);
/**
 * @brief decrypt data
 * 
 * @param[in] data encry data
 * @param[in] len encry data length
 * @param[in] key decrypt key
 * @param[out] out_data origin data
 *
 * @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
 */

Func encrpt_lan_msg

OPERATE_RET encrpt_lan_msg(IN CONST BYTE_T *data,IN CONST UINT_T len,OUT BYTE_T **ec_data,OUT UINT_T *ec_len,IN CONST BYTE_T *key);
/**
 * @brief encry lan message
 * 
 * @param[in] data origin data
 * @param[in] len origin data length
 * @param[in] ec_data encode data
 * @param[in] ec_len encode data length
 * @param[in] key encry key
 *
 * @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
 */

Func __mlp_gw_send_da

BYTE_T *__mlp_gw_send_da(IN CONST UINT_T fr_num,IN CONST UINT_T fr_type,\
                             IN CONST UINT_T ret_code,IN CONST BYTE_T *data,\
                             IN CONST UINT_T len,OUT UINT_T *s_len);
/**
 * @brief lan protocol send data, the date will package 0x55aa
 * 
 * @param[in] fr_num refer to LAN_PRO_HEAD_GW_S
 * @param[in] fr_type refer to LAN_PRO_HEAD_GW_S
 * @param[in] ret_code refer to LAN_PRO_HEAD_GW_S
 * @param[in] data refer to LAN_PRO_HEAD_GW_S
 * @param[in] len refer to LAN_PRO_HEAD_GW_S
 * @param[in] s_len send data length
 *
 * @return send data buf point
 */

Vars

Consts

Types

Typedefs

Typedef AP_CFG_ERR_CODE

typedef int AP_CFG_ERR_CODE;
#define AP_CFG_SUCC 0
#define AP_CFG_ERR_PCK 1
#define AP_CFG_AP_NOT_FOUND 2
#define AP_CFG_ERR_PASSWD 3
#define AP_CFG_CANT_CONN_AP 4
#define AP_CFG_DHCP_FAILED 5
#define AP_CFG_CONN_CLOUD_FAILED 6
#define AP_CFG_GET_URL_FAILED 7
#define AP_CFG_GW_ACTIVE_FAILED 8
#define AP_CFG_GW_ACTIVE_SUCCESS 9



      

Typedef LAN_PRO_HEAD_APP_S;

typedef struct
{
   UINT_T head; // 0x55aa
   UINT_T fr_num;
   UINT_T fr_type;
   UINT_T len;
   BYTE_T data[0];
}LAN_PRO_HEAD_APP_S;
/**
 * @brief lan protocol app head
 */

Typedef LAN_PRO_TAIL_S;

typedef struct {
   UINT_T crc;
   UINT_T tail; // 0xaa55
}LAN_PRO_TAIL_S;


      

Typedef LAN_PRO_TAIL_V34_S;

typedef struct {
   BYTE_T hmac[32];
   UINT_T tail; // 0xaa55
}LAN_PRO_TAIL_V34_S;


      

Typedef LAN_PRO_HEAD_GW_S; #pragma pack()

typedef struct
{
   UINT_T head; // 0x55aa
   UINT_T fr_num;
   UINT_T fr_type;
   UINT_T len;
   UINT_T ret_code;
   BYTE_T data[0];
}LAN_PRO_HEAD_GW_S;
#pragma pack()

/**
 * @brief lan protocol gateway head
 */