蓝牙与 Wi-Fi 双模配网

更新时间:2024-09-09 03:20:50下载pdf

IActivator 初始化

参数说明

参数名 类型 是否必填 说明
mode ActivatorMode 配网模式

代码示例

self.pair = ActivatorService.shared.activator(.BLEWIFI)

扫描设备 IDiscoveryService 初始化

参数说明

参数名 类型 是否必填 说明
mode DiscoveryMode 扫描模式

代码示例

self.discovery = DiscoveryService.shared.discovery(.BLEWIFI)

注册 IDiscoveryListener 监听扫描设备结果

参数说明

参数名 类型 是否必填 说明
device AnyObject 被发现的设备对象。如果该设备是蓝牙低功耗设备,则该对象将是 ThingBLEAdvModel 类型。

代码示例

private func start() {
    discovery.listener = self
}

extension BluetoothModeViewController: IDiscoveryListener {
    func didDiscover(device: AnyObject) {
        guard let model = device as? ThingBLEAdvModel, let uuid = model.uuid else {return}
        self.deviceInfos[uuid] = model
        self.tableView.reloadData()
    }
}

注册 IActivatorListener 监听配网结果

参数说明

参数名 类型 是否必填 说明
deviceModel IActivatedDevice? 若操作成功,表示被激活的设备信息,否则为 nil
params ActivatorParams? 操作相关的参数信息

回调函数说明

函数名 参数 说明
onSuccess deviceModel: IActivatedDevice?, params: ActivatorParams? 操作成功回调函数,返回被激活的设备信息
onError error: Error, params: ActivatorParams? 操作失败回调函数,返回错误信息

代码示例

private func start() {
    pair.listener = self
}

extension TableViewController: IActivatorListener {
    func onSuccess(deviceModel: IActivatedDevice?, params: ActivatorParams?) {
        SVProgressHUD.dismiss()
        self.navigationController?.popToRootViewController(animated: true)
    }

    func onError(error: Error, params: ActivatorParams?) {
        SVProgressHUD.dismiss()
        SVProgressHUD.showInfo(withStatus: error.localizedDescription)
    }
}

开始扫描

该方法用于开始发现设备。

参数说明

该方法没有参数。

代码示例

self.discovery.startDiscovery()

停止扫描

代码示例

// 停止设备扫描操作,discovery 是在初始化过程中生成的
// self.discovery = DiscoveryService.shared.discovery(.BLEWIFI)
discovery.stopDiscovery()

开始配网

该方法用于开始设备配网操作。

参数说明

参数名 类型 是否必填 说明
params ActivatorParams 配网操作相关的参数信息,见代码示例
deviceInfo ThingBLEAdvModel 设备信息
assetId String 资产 ID
pairToken String 配网 token
ssid String Wi-Fi 热点 SSID
password String Wi-Fi 热点密码
onlyConnectBle Boolean 仅蓝牙连接激活,默认:false

代码示例

// 创建 BLEWIFIActivatorParams 实例
let params = BLEWIFIActivatorParams(deviceInfo: devInfo, assetId: assetID)

// 开始设备配网操作,pair 是在初始化过程中生成的
// self.pair = ActivatorService.shared.activator(.BLEWIFI)
self.pair.startPair(BLEWIFIActivatorParams(deviceInfo: devInfo, assetId: assetID, pairToken: self.pairingToken, ssid: self.ssid, password: self.password, onlyConnectBle: true))

停止配网

代码示例

// 停止设备配网操作,pair 是在初始化过程中生成的
// self.pair = ActivatorService.shared.activator(.BLEWIFI)
pair.stopPair()