简体中文
简体中文
English
联系我们
注册
登录
layout空间导航

摄像头二维码配网

更新时间:2022-01-07 07:03:32下载pdf

描述

通过摄像头设备扫描 App 二维码来传递配网信息的方式来实现配网设备。

获取令牌

在执行摄像头二维码的配网操作之前,SDK 需要从涂鸦 IoT 平台获取配网令牌。此令牌有效期为 10 分钟。配网成功后,此令牌立即失效。如果您需要重新配网,必须重新获取令牌。

配网相关的接口封装在 TYDeviceRegistrationManager 中,请先初始化一个实例:let manager = TYDeviceRegistrationManager()

如需获取令牌,调用 manager.generateToken(for: assetID: completionHandle: )

参数说明

参数名 类型 是否必填 说明
pairingType TYDevicePairingType true 设备配网类型
timeZoneID String false 配网时区
assetID String true 资产 ID
deviceUUID String false 设备 UUID

TYDeviceRegistrationToken 说明

参数名 类型 说明
pairingToken String 用于发送给设备的配网信息
region String 当前可用区
token String 配网令牌
expireTime Int 令牌过期时间
secret String 秘钥
extension [String : String] 扩展参数

代码示例

manager.generateToken(for: .AP, assetID: "1234567890") { (token, error) in
    guard error == nil else {
        print(error?.localizedDescription)
        return
    }

    let pairingToken = token?.pairingToken
}

初始化配网参数

let activator = TYQRCodeActivator(SSID: "ssid", password: "password", pairingToken: "pairingToken")

参数说明

参数名 说明
SSID 配网之后,设备工作 Wi-Fi 的名称(家庭网络)
password 配网之后,设备工作 Wi-Fi 的密码(家庭网络)
pairingToken 获取令牌接口 返回值中的 pairingToken

配网方法调用

  1. 开发者通过配网信息生成二维码。

    do {
    	let image = try activator.generateQRCodeUIImage(width: 50)
    } catch {
    	// handle error
    }
    
  2. 用户通过摄像头设备扫描 App 二维码来进行配网。

获取配网结果

如需获取配网结果,调用 TYDeviceRegistrationManagerqueryRegistrationResult(of: completionHandle: )

参数说明

参数名 类型 是否必填 说明
token String true 配网令牌

TYDeviceRegistrationResult 说明

参数名 类型 说明
succeedDevices [TYPairedDevice] 设备配网成功列表
failedDevices [TYFailedPairingDevice] 设备配网失败列表

TYPairedDevice 说明

参数名 类型 说明
id String 设备 ID
name String 设备名称
productID String 设备所属产品 ID
longitude String 经度
latitude String 纬度
ipAddress String 设备配网 IP
isOnline Boolean 设备在线状态
uuid String 设备 UUID

TYFailedPairingDevice 说明

参数名 类型 说明
id String 设备 ID
name String 设备名称
errorCode String 失败错误码
errorMessage String 失败描述

设备配网属于异步过程。设备配网的耗时取决于网络质量。您必须调用 API 来检查设备配网结果。当系统返回配网设备列表或配网任务超时后,轮询任务停止。

建议轮询任务设置为每隔 1 秒运行一次。配对任务的超时值建议设置为 100 秒。