设备登录
接口功能
设备在第一次绑定后,或者在设备重启后需要进行登录的流程。
接口描述
1
|
HW_INT IOTA_Login(); |
接口返回值
参见函数标准返回值
此返回值是调用接口的同步返回结果,返回0只是说明接口调用成功,并不说明登录成功,登录成功需要收到IOTA_TOPIC_CONNECTED_NTY广播。登录前通过参数配置接口(IOTA_SetConfig)传入所需的登录信息。
返回结果
广播名称 |
广播参数 |
成员 |
描述 |
---|---|---|---|
IOTA_TOPIC_CONNECTED_NTY |
HW_MSG对象 |
无 |
登录成功或重连成功。 |
IOTA_TOPIC_DISCONNECT_NTY |
HW_MSG对象 |
EN_ULGN_IE_ERR_REASON |
登录失败或连接断开。 |
EN_IOTA_LGN_REASON_TYPE:
枚举项 |
枚举值 |
描述 |
---|---|---|
EN_IOTA_LGN_REASON_NULL |
0 |
无原因。 |
EN_IOTA_LGN_REASON_CONNCET_ERR |
1 |
连接失败。 |
EN_IOTA_LGN_REASON_SERVER_BUSY |
2 |
服务器忙。 |
EN_IOTA_LGN_REASON_AUTH_FAILED |
3 |
鉴权失败、开发者需要停止重新尝试登录。 |
EN_IOTA_LGN_REASON_NET_UNAVAILABLE |
5 |
网络不可用。 |
EN_IOTA_LGN_REASON_DEVICE_NOEXIST |
12 |
设备不存在、开发者需要停止重新尝试登录。 |
EN_IOTA_LGN_REASON_DEVICE_RMVED |
13 |
设备已删除、开发者需要停止重新尝试登录。 |
EN_IOTA_LGN_REASON_UNKNOWN |
255 |
未知原因。 |
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Config_Get(“DeviceId”,pcDeviceId); Config_Get(“DeviceSecret”,pcDeviceSecret); Config_Get(“AppId”,pcAppId); Config_Get(“HAAddr”,pcHAServerAddr); Config_Get(“LVSAddr”,pcLVSServerAddr); IOTA_SetConfig(EN_IOTA_CFG_DEVICEID, pcDeviceId); IOTA_SetConfig(EN_IOTA_CFG_DEVICESECRET, pcDeviceSecret); IOTA_SetConfig(EN_IOTA_CFG_APPID, pcAppId); IOTA_SetConfig(EN_IOTA_CFG_HA_ADDR, pcHAServerAddr); IOTA_SetConfig(EN_IOTA_CFG_LVS_ADDR, pcLVSServerAddr); IOTA_Login(); |
然后等待Agent Lite的连接状态广播。
需要提前实现连接状态通知广播接收处理函数,建议:
- 对于网关设备,在连接成功的处理函数中需要进行非直连设备状态上报的处理,并且将缓存的所有上报数据进行上报。
- 在连接断开的处理函数中记录设备断开状态,之后如果有数据上报,需要进行缓存,等到连接成功后再进行上报。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 开发者注册该函数进行连接成功后的处理 HW_iNT Device_ConnectedHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { //update device states //send buffer data return 0; } // 开发者注册该函数进行连接失败后的处理 HW_iNT Device_DisconnectHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { //stop reporting data return 0; } //绑定广播接收处理函数 HW_BroadCastReg(“IOTA_TOPIC_CONNECTED_NTY”, Device_ConnectedHandler); HW_BroadCastReg(“IOTA_TOPIC_DISCONNECT_NTY”, Device_DisconnectHandler); |
设备登录后,表示该设备已经成功的连接到物联网平台。
连接成功后,如果因为网络或服务器原因导致连接断开,Agent Lite会自动尝试重新连接,并将实时状态通过这两个广播上报给第三方应用。