페이지 선택

EasyLink SDK for iOS

 

 

1. The main features of the EasyLink SDK

 

♦  Send Wi-Fi network parameters set on the mobile terminal to the device side

* Support EasyLink mode      * Support Soft AP mode      * Support packet encryption

 

♦ Go to new networked devices and interact. Implement parameter settings, OTA and other functions

Note that EasyLink mode only supports operations on IPv4 networks.

 

 

 

2. API usage

EasyLink’s usage flow is:  Initialize EasyLink instance → Set configuration parameters → Start sending distribution network information

→ Wait for new device discovery callback → Stop sending distribution network information → If you do not need to configure again, destroy EasyLink instance.

 

 

♦ Step1

Initialize the EasyLink instance

/**

@brief Initializes the EasyLink configuration instance

@param enable: Whether to output debugging information

@param delegate: Provides an instance of the function back

@return EasyLink instance.

*/

– (id)initForDebug:(BOOL)enable WithDelegate:(id)delegate;

 

 

♦ Step2

Set configuration parameters

/**      @brief Set distribution parameters      

@param wlanConfigDict: Network configuration information dictionary, where the dictionary’s Key refers to the content reference wlanConfig key     

@param userInfo: The custom information that the device can receive in the EasyLink distribution network. 

If not, set it to nil.      

@param easyLinkMode: Set to EASYLINK_V2_PLUS or EASYLINK_AWS to match the distribution method used in the device      

@param key: The transmitted EasyLink message can be encrypted using RC4. The key is the encrypted password.

The device also needs to provide this password when the EasyLink distribution network is enabled.      

@return none.      */ – (void)prepareEasyLink:(NSDictionary *)wlanConfigDict info:(NSData *)userInfo mode:(EasyLinkMode)easyLinkMode encrypt:(NSData *)key;

 

EasyLink distribution mode: easyLinkMode

Typedef enum{         

EASYLINK_V1 = 0, /**< no longer used */         

EASYLINK_V2, /**< Multicast Distribution Network */         

EASYLINK_PLUS, /**<broadcast distribution network */        

EASYLINK_V2_PLUS, /**< Multicast + Broadcast Distribution Network */         

EASYLINK_AWS, /**< The latest broadcast distribution network, providing the best compatibility in one-click distribution network */         

EASYLINK_SOFT_AP, /**< Connect to the hotspot opened by the module for distribution network */        

EASYLINK_MODE_MAX,    

 } EasyLinkMode;

 

wlanConfig dictionary content

#define KEY_SSID @”SSID” //value type: NSData, the name of the wireless network, must be obtained using the + (NSData *) ssidDataForConnectedNetwork

method, otherwise the wireless network containing Chinese characters cannot be properly configured.    

#define KEY_PASSWORD @”PASSWORD” //value type: NSString or NSData, wireless network password    

 #define KEY_DHCP @”DHCP” //value type: NSNumber(bool), whether the device automatically obtains

an IP address (DHCP is enabled), @YES or @NO, EASYLINK_AWS distribution network must use @YES    

#define KEY_IP @”IP” //value type: NSString, IP address, if DHCP is enabled, you can leave it blank, EASYLINK_AWS distribution network does not support     

#define KEY_NETMASK @”NETMASK” //value type: NSString, subnet mask, if DHCP is enabled, you can leave it blank, EASYLINK_AWS distribution network does not support    

#define KEY_GATEWAY @”GATEWAY” //value type: NSString, gateway, if DHCP is enabled, you can leave it blank, EASYLINK_AWS distribution network does not support    

#define KEY_DNS1 @”DNS1″ //value type: NSString, DNS server 1, if DHCP is enabled, you can leave it blank, EASYLINK_AWS distribution network does not support   

 #define KEY_DNS2 @”DNS2″ //value type: NSString, DNS server 2, if DHCP is enabled, you can leave it blank, EASYLINK_AWS distribution network does not support

 

 

♦ Step3

Start sending distribution network information

(void)transmitSettings;

 

 

♦ Step4

Callback waiting for new device discovery If the device is connected to the target network, the SDK can generate a callback.

EASYLINK AWS mode uses UDP broadcast implementation, and the rest of the distribution network uses mDNS. The service name is _easylink_config._tcp.

The specific implementation method has been implemented in the SDK, the application does not need to care

/**      @brief new device discovery callback      

@param client: client number (can be ignored)     

@param name: device name, which is the instance name provided by the device in the mDNS service.      

@param mataDataDict: Metadata, even if the device provides the TXT Record in the mDNS service, or the JSON data provided in the UDP broadcast.     

@return none.      */     – (void)onFound:(NSNumber *)client withName:(NSString *)name mataData: (NSDictionary *)mataDataDict;               

 

The onFoundByFTC callback is also triggered if the Config Server feature is enabled on the device.

/**      @brief new device discovery callback      

@param client: client number      

@param name: configDict, configuration information provided by the device in the Config Server function      

@return none.      */     – (void)onFoundByFTC:(NSNumber *)client withConfiguration: (NSDictionary *)configDict;

If the onFoundByFTC callback is triggered, you can use the – (void)configFTCClient:(NSNumber *)client withConfiguration: (NSDictionary *)configDict; 

 

method to set the device parameters. But this feature also works with the Config Server feature on the device.

 

 

♦ Step5

Stop sending distribution network information If you think that the distribution network has been completed, you can stop sending distribution network information.

 (void)stopTransmitting;

 

 

♦ Step6

Destroy the EasyLink instance if you do not need to configure it again Use this method to completely remove the resources occupied by the easylink example.

(void)unInit;

 

Viewed Page List