iOS BLE双向通信

时间:2017-09-08 22:50:51

标签: ios swift bluetooth-lowenergy

我对swift和BLE很新。我想知道在iOS中是否可以与BLE进行双向通信?我在委托方法上看到了

optional func peripheral(_ peripheral: CBPeripheral, 
       didUpdateValueFor characteristic: CBCharacteristic, 
                   error: Error?)

你可以获得'特征'的句柄,它有一个方法'setValue'。你能更新这个值并在外围设备上接收事件吗?

最终,我希望外围设备(广告/信标端)知道何时读取其特性,并将一些信息传回给它以让用户知道。

2 个答案:

答案 0 :(得分:0)

你可以通过建立连接的一方使用setValue(进入某个属性)和运行GATT服务器的一方使用"指示"来与BLE进行双向通信。或"通知"在其他一些属性上。

如果您完全控制外围设备上的代码,我认为您可以在每次读取属性时执行操作。但是,标准中没有固有的方式可以在阅读时得到通知。

答案 1 :(得分:0)

我会说这是一般的BLE问题,而不是iOS问题。当您在网络上阅读有关BLE通信的信息时,您会读到“客户端和服务器端”一词,该词表示哪个“边” ist宣传一个值(服务器),哪个正在接收该值(客户端)。
此外,您可以创建具有不同属性的特征,例如读取,写入,通知。 我建议具有一个特性,该特性可将新值通知客户端,并且每次调用didUpdateValueFor characteristic方法时,您都在该特性中编写希望服务器接收的信息。

例如具有具有读取,通知属性的特征notifyMe和具有仅写入属性的特征myAnswer