繁体   English   中英

从BLE设备获取响应

[英]Getting response from BLE device

我对使用蓝牙设备很陌生。 到目前为止,一切正常。 但是有一个我不知道如何处理的问题。 我有一个led灯设备,可以在其中更改从颜色到速度,闪烁,褪色等的所有内容。 现在,我想读取当前设备状态(例如,设备是打开还是关闭)。 我有该设备的文件,上面写着:

查询:a)发送顺序:【0XEF】+【0X01】+【0X77】b)控制器响应:【0X66】+【8bit设备名称(0x14】】+【8bit swtich开/关】+【8bit模式值】+ 【8位运行/暂停状态】+【8位速度值】+【8位红色数据】+【8位绿色数据】+【8位蓝色数据】+【8位预热期间】+【8位版本号】+【0X99】

如何获得控制器响应? didWriteValueFor函数只是向我返回写入调用是否成功。

如果特性支持通知,您可以通过该行进行通知:

peripheral.setNotifyValue(true, for: characteristic)

将具有该特征的外围设备的委托设置为适当的文件非常重要,在我的情况下是:

peripheral.delegate = self

之后,当某些事情发生变化时,外设将在您的代码中触发此方法:

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
    //data is in characteristic.value
}

如果您的特征不支持noyfying,则可以尝试将响应类型设置为.withReponse的数据写入外设,如下所示:

peripheral.writeValue(data, for: characteristic, type: .withResponse)

记住也要设置外围设备委托,在该外围设备每次成功写入后将触发此方法:

    //write response
    func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) {
        //data is in characteristic.value
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM