Documentation

Documentation

Includes

stdint.h

#include "stdint.h"
#include "stdint.h"

stdbool.h

#include "stdbool.h"
#include "stdbool.h"

pegasus_frame.h

#include "pegasus_frame.h"
#include "pegasus_frame.h"

tuya_cloud_wifi_defs.h

#include "tuya_cloud_wifi_defs.h"
#include "tuya_cloud_wifi_defs.h"

tuya_cloud_com_defs.h

#include "tuya_cloud_com_defs.h"
#include "tuya_cloud_com_defs.h"

tuya_iot_dev_check.h

#include "tuya_iot_dev_check.h"
#include "tuya_iot_dev_check.h"

wifi_netcfg_frame_sniffer.h

#include "wifi_netcfg_frame_sniffer.h"
#include "wifi_netcfg_frame_sniffer.h"

wifi_netcfg_frame_transporter.h

#include "wifi_netcfg_frame_transporter.h"
#include "wifi_netcfg_frame_transporter.h"

netcfg_module.h

#include "netcfg_module.h"
#include "netcfg_module.h"

wl_cfg_com.h

#include "wl_cfg_com.h"
#include "wl_cfg_com.h"

Macros

Marco __SVC_PEGASUS_H__

#define __SVC_PEGASUS_H__

      

Functions

Func pegasus_server_mqc_handle

int pegasus_server_mqc_handle(ty_cJSON *root_json);
/*============================ PROTOTYPES ====================================*/

Func pegasus_server_second_start

int pegasus_server_second_start(uint32_t timeout_s);


      

Func pegasus_recv_data_handle_cb

int pegasus_recv_data_handle_cb(void *ptrArgs,uint8_t *buffer, uint16_t length, const int8_t rssi);


      

Func pegasus_server_add_device

int pegasus_server_add_device(char *token, char*uuid);


      

Func tuya_scan_all_ap

int tuya_scan_all_ap(AP_IF_S **ap_ary, uint8_t *num, uint8_t *oui, AP_IF_S **oui_ap);


      

Func pegasus_beacon_info_get

int pegasus_beacon_info_get(uint8_t *buf, uint16_t len, char rssi, AP_IF_S *ap_info);


      

Func pegasus_init

int pegasus_init(IN CONST fnLockChanCb lc_cb, IN CONST FN_NETCFG_CB ncf_cb, ptrWifiNetcfgFrameSniffer_t pSniffer,ptrWifiNetcfgFrameTransporter_t pTransporter);


      

Func pegasus_second_init

int pegasus_second_init(pegasus_second_connect_cb connect_cb, AP_IF_S *pegasus_ap);


      

Func pegasus_uninit

int pegasus_uninit(void);

      

Vars

Variable WLAN_MANAGEMENT_S

WLAN_MANAGEMENT_S *pegasus_find_oui(uint8_t *buf, int buf_len, uint8_t *oui);

      

Consts

Types

Typedefs

Typedef pegasus_mode_t;

typedef enum {
   PEGASUS_CLIENT_MODE_FIRST,             
   PEGASUS_CLIENT_MODE_SECOND, 
   PEGASUS_SERVER_MODE_FIRST,             
   PEGASUS_SERVER_MODE_SECOND, 
} pegasus_mode_t;
/*============================ TYPES =========================================*/

Typedef pegasus_stat_t;

typedef enum {
   PEGASUS_IDLE,//0
   PEGASUS_SEND_REQ,//1
   PEGASUS_RECV_REQ,  //2
   PEGASUS_SEND_ACK,     //3
   PEGASUS_RECV_ACK, //4
   PEGASUS_CALC_KEY,//5
   PEGASUS_CHECKING,//6
   PEGASUS_SEND_MQTT,//7
   PEGASUS_RECV_MQTT,//8
   PEGASUS_SEND_CHECK, //9
   PEGASUS_RECV_CHECK,//10
   PEGASUS_SEND_CFG,     //11
   PEGASUS_RECV_CFG,         //12
   PEGASUS_CONNECT,//13
} pegasus_stat_t;


      

Typedef pegasus_info_t;

typedef struct {
   bool               ack;
   int                count;
   uint8_t            dev_mac[6];   
   uint8_t            ap_mac[6];
   char               pid[PRODUCT_KEY_LEN + 1];
   char               uuid[GW_UUID_LEN + 1];
   uint8_t            ra_uuid_hmac[TY_DEV_SHA256_DIGEST_SIZE];  
   uint8_t            ra_aes [TY_DEV_RANDOM_AES_LEN];          
   uint8_t            ra_hmac[TY_DEV_SHA256_DIGEST_SIZE];      
   uint8_t            rb_aes[TY_DEV_RANDOM_AES_LEN];           
   uint8_t            rb_hmac[TY_DEV_SHA256_DIGEST_SIZE];        
   uint8_t            uuid_hmac[TY_DEV_SHA256_DIGEST_SIZE];      
   uint8_t            key[TY_DEV_SESSION_KEY_LEN];
   pegasus_stat_t     stat;
   pegasus_mode_t     mode;
} pegasus_info_t;


      

Typedef fnLockChanCb

typedef void (*fnLockChanCb)(void);


      

Typedef pegasus_second_connect_cb

typedef int (*pegasus_second_connect_cb)(char *ssid, char *passwd);