BLE 特性通知 属性 的本质是什么?
What is the nature of BLE characteristic notify property?
我需要通过低功耗蓝牙 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 属性 的特性没有 属性 of notify (CBCharacteristicPropertyNotify in Core Bluetooth Framework).
所以我必须使用某种无限循环来扫描和读取特征中的新信息READ 属性(通过调用 CBPeripheral 实例的方法 - readValueForCharacteristic:
)而不是订阅特征值(通过调用方法 setNotifyValue:forCharacteristic:
)。
是否可以添加 notify 属性 来读取外围设备的特性(例如,由构建外围设备的工程师或在外围设备上添加一些 运行 的低级代码)或 notify 属性 是 BLE 模块 (DORJI DBM01) 的组成部分,如果不使用另一个 BLE 模块就不能添加它?
DBM01是基于德州仪器的CC2540,和很多其他的BLE转串口模块一样,实现了通知功能,所以从技术上来说,是绝对可以做到的。
但是,这需要DBM01的固件支持,当然你会遇到升级现有模块中所述固件的问题。除非模块上有未记录的功能,否则我怀疑是否有办法在不接触固件的情况下更改模块的行为。
另一个选项可能是(但这实际上取决于您的场景)切换中心和外围角色,以便在 BLE 模块写入数据时通知 iOS 应用程序。据我了解,这需要在硬件中完成(需要更改特定引脚上的电平)。
我需要通过低功耗蓝牙 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 属性 的特性没有 属性 of notify (CBCharacteristicPropertyNotify in Core Bluetooth Framework).
所以我必须使用某种无限循环来扫描和读取特征中的新信息READ 属性(通过调用 CBPeripheral 实例的方法 - readValueForCharacteristic:
)而不是订阅特征值(通过调用方法 setNotifyValue:forCharacteristic:
)。
是否可以添加 notify 属性 来读取外围设备的特性(例如,由构建外围设备的工程师或在外围设备上添加一些 运行 的低级代码)或 notify 属性 是 BLE 模块 (DORJI DBM01) 的组成部分,如果不使用另一个 BLE 模块就不能添加它?
DBM01是基于德州仪器的CC2540,和很多其他的BLE转串口模块一样,实现了通知功能,所以从技术上来说,是绝对可以做到的。
但是,这需要DBM01的固件支持,当然你会遇到升级现有模块中所述固件的问题。除非模块上有未记录的功能,否则我怀疑是否有办法在不接触固件的情况下更改模块的行为。
另一个选项可能是(但这实际上取决于您的场景)切换中心和外围角色,以便在 BLE 模块写入数据时通知 iOS 应用程序。据我了解,这需要在硬件中完成(需要更改特定引脚上的电平)。