我正在构建一个简单的 IOS 应用程序,用于与蓝牙 LE 设备进行交互。
主要步骤(连接、发现服务、发现特征和读取特征值)正确完成。
现在我正在寻找一个教程/示例,用于向我连接的蓝牙 LE 设备发送 命令。
我在 Apple Developer Guide 中搜索,但没有找到任何东西。
我正在构建一个简单的 IOS 应用程序,用于与蓝牙 LE 设备进行交互。
主要步骤(连接、发现服务、发现特征和读取特征值)正确完成。
现在我正在寻找一个教程/示例,用于向我连接的蓝牙 LE 设备发送 命令。
我在 Apple Developer Guide 中搜索,但没有找到任何东西。
您应该查看 Apple 的TemperatureSensor示例,特别是它调用的位置[servicePeripheral writeValue:data ...
在与 a 交互时,CBCharacteristic
我将假设它是一个读/写特征(您可以通过查看properties
您的特征的值来确认这一点)。
与特征交互时的两种主要方法是:
func writeValue(_ data: NSData!, forCharacteristic characteristic: CBCharacteristic!, type type: CBCharacteristicWriteType)
func readValueForCharacteristic(_ characteristic: CBCharacteristic!)
这两种方法都可以在您的CBPeripheral
. 调用其中一个函数后,您可以使用CBPeripheralDelegate
来确认这些delegate
方法中的每个操作:
optional func peripheral(_ peripheral: CBPeripheral!, didWriteValueForCharacteristic characteristic: CBCharacteristic!, error error: NSError!)
optional func peripheral(_ peripheral: CBPeripheral!, didUpdateValueForCharacteristic characteristic: CBCharacteristic!, error error: NSError!)
这些是您确认读写成功的地方。(在您的读取中,您可以检索从 BLE 设备上的value
属性读取的值CBCharacteristic
。
请记住,您所拥有的交互(您可以读取和写入的内容)完全取决于您正在询问/交互的 BLE 设备。从本质上讲,您必须知道读什么、写什么以及如何写。
writeValue:forCharacteristic:type:
您可以使用CBPeripheral的方法发送数据。必须在设备规范中描述与所需命令匹配的特征+数据。