0

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

4

1 回答 1

2

DBM01 基于德州仪器 CC2540,与许多其他 BLE-to-serial 模块一样,它们确实实现了通知,所以从技术上讲,它绝对可以做到。

然而,这需要 DBM01 的固件来支持它,你当然会遇到升级现有模块中的固件的问题。除非模块上有未记录的功能,否则我怀疑是否有办法在不接触固件的情况下改变模块的行为。

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

于 2015-12-27T15:33:45.197 回答