ios - BLE特性通知属性的本质是什么?

标签 ios bluetooth-lowenergy core-bluetooth ios-bluetooth

我需要通过低功耗蓝牙 4.0 在一侧的 iOS 设备和某些外围设备之间提供通信,这些外围设备具有板载蓝牙模块。
外围设备与 DORJI DBM01 蓝牙 LE 4.0 模块组装在一起,允许使用一个具有 READ 属性(UUID = 0xFFF4)的特征和一个具有 WRITE 属性(UUID = 0xFFF1)的特征与其通信。 DORJI DBM01技术手册在这里:http://dorji.com/docs/data/DBM01.pdf
我成功地在 iOS 设备(使用核心蓝牙框架)和上述外围设备之间建立了蓝牙 LE 连接,但是具有 READ 属性的特性没有通知属性(核心中的CBCharacteristicPropertyNotify Bluetooth Framework).
所以我必须使用某种无限循环来扫描和读取具有 READ 属性的特性的新信息(通过调用 CBPeripheral 实例的方法 - readValueForCharacteristic: ) 而不是订阅特征值(通过调用方法 setNotifyValue:forCharacteristic:)。
是否可以添加通知属性以读取外围设备的特性(例如,由构建外围设备的工程师或添加一些在外围设备上运行的低级代码)或通知属性是 BLE 模块的组成部分(DORJI DBM01 ) 并且不使用另一个 BLE 模块就无法添加它?

最佳答案

DBM01 基于 Texas Instruments CC2540,与许多其他 BLE 转串口模块一样,它确实实现了通知,因此从技术上讲,它绝对可以做到。

但是,这需要 DBM01 的固件来支持它,并且您当然会遇到升级现有模块中所述固件的问题。除非模块上有未记录的功能,否则我怀疑是否有一种方法可以在不接触固件的情况下更改模块的行为。

另一种选择可能是(但这实际上取决于您的场景)切换中央和外围角色,以便在 BLE 模块写入数据时通知 iOS 应用程序。据我了解,这需要在硬件中完成(需要更改特定引脚上的电平)。

关于ios - BLE特性通知属性的本质是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34481554/

相关文章:

ios7 - 低功耗蓝牙 (IOS) - 后台广告和自定义广告数据

ios - 读取 BLE 外设特性并检查其值?

ios - 如何在 Firebase IOS 中搜索值

android - 消息 : Support Emijo between Android and iOS

ios - UIButton 操作在一段时间后不起作用(可能在一些垃圾收集之后)

ios - 任何 iBeacon proximity UUID 的应用程序回调

javascript - react native 扫描蓝牙设备

Android BLE Scan 永远找不到设备

ios - 无限期地在后台传输心率?

ios - 访问另一个 Controller 中的数组