| 
 | 
 
3.3.        配置设备入网部分控制设备前,需要先让设备连到路由器上。连上路由器的设备,如果路由器能接入外网,设备会自动注册到机智云。 
有两种配置方式能够让设备连到路由器上,一种是Airlink方式,一种是Softap方式,APP可以根据产品需求采取相应的配置方式。在开始配置前,设备要先进入配置模式,然后APP调用配置接口发送要配置的路由器ssid和密码。设备配置成功后,SDK给APP返回已配置成功的设备mac地址和产品类型标识,便于APP做下一步的操作。如果设备是重置后进入的配置模式,如果配置成功时设备还来不及从云端获取到DID,则APP得到的DID为空。 
SDK的设备配置接口如果超时时间还未结束,无法进行下一次配置。此外,因为设备配置成功的广播包只有APP连到同一路由上才能收取,因此这个超时时间应该预留出APP连接路由器的时间。 
需要注意的是,如果配置上线的设备不是APP要获取的产品类型,该设备就不会出现在设备列表中。 
3.3.1.        设备配置流程图  
3.3.2.        AirLink配置AirLink使⽤UDP广播方式,由手机端发出含有目标路由器名称和密码的广播,设备上的Wifi模块接收到广播包后自动连接目标路由器,连上路由器后发出配置成功广播,通知手机配置已完成。 模块开启AirLink模式后,如果一分钟内未收到AirLink广播或无法正确连上路由器,将进入SoftAP模式。 
【示例代码】 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
 | // 让手机连上目标Wifi 
// MCU发出开启AirLink串口指令,通知模组开启AirLink模式。详情请参考《智能云空调-机智云接入串口通信协议文档》 
  
//配置设备入网,发送要配置的wifi名称、密码 
GizWifiSDK.sharedInstance().setListener(mListener); 
List<GizWifiGAgentType> types = new ArrayList<GizWifiGAgentType> (); 
types.add(GizWifiGAgentType.GizGAgentESP); GizWifiSDK.sharedInstance().setDeviceOnboarding("your_ssid", "your_key", GizWifiConfigureMode.GizWifiAirLink, null, 60, types); 
  
GizWifiSDKListener mListener = new GizWifiSDKListener() { 
    //等待配置完成或超时,回调配置完成接口 
    @Override 
    public  void didSetDeviceOnboarding (GizWifiErrorCode result, String mac, String did, String productKey) { 
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) { 
            // 配置成功 
        } else { 
            // 配置失败 
        } 
    } 
}; 
 
 |   3.3.3.        SoftAP配置设备进入SoftAP模式后,会产生一个Wifi热点。手机连上此热点后,将要配置的SSID和密码发给设备。设备上的Wi-Fi模块接收到SoftAP配置包后自动连接目标路由器,与airlink一样,连上路由器后发出配置成功广播,通知手机配置已完成。 
使用机智云提供的模组固件,设备产生的Wifi热点以“XPG-GAgent-”开头,密码为” 123456789”。其他厂商提供的模组,SoftAP热点名称由各自厂商指定。APP可以根据需要传入正确的热点前缀。 
【示例代码】 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
 | // MCU发出进入SoftAP串口指令,通知模组开启SoftAP模式。详情请参考《智能云空调-机智云接入串口通信协议文档》 
//让手机连接模组的SoftAP热点 
  
//配置设备入网,发送要配置的wifi名称、密码 
GizWifiSDK.sharedInstance().setListener(mListener); 
GizWifiSDK.sharedInstance().setDeviceOnboarding("your_ssid", "your_key", GizWifiConfigureMode.GizWifiSoftAP, "your_gagent_hotspot_prefix", 60, null); 
  
//模块收到配置信息,尝试连接路由器并自动关闭热点 
//让手机连接到配置的wifi上 
  
GizWifiSDKListener mListener = new GizWifiSDKListener() { 
    //等待配置完成或超时,回调配置完成接口 
    @Override 
    public  void didSetDeviceOnboarding (GizWifiErrorCode result, String mac, String did, String productKey) { 
        if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) { 
            // 配置成功 
        } else { 
            // 配置失败 
        } 
    } 
}; 
 
 |  
  
 |   
 
 
 
 |