用javascript读取ble包的制造数据

Posted

技术标签:

【中文标题】用javascript读取ble包的制造数据【英文标题】:Read manufacture data of ble packet with javascript 【发布时间】:2019-07-27 21:23:09 【问题描述】:

我正在开发一个 React-native ble 项目,该项目现在需要广播者(设备)观察者(客户端)关系。

有没有高级(javascript)的方式来读取ble的广告包以获得字节数组?我正在尝试读取整个广告包而不是任何格式。

我已经使用 react-native-ble-manager 并且正在查看 Polidea 的 react-native-ble-plx:

https://polidea.github.io/react-native-ble-plx/#devicemanufacturerdata

看起来广告包的特定字段在设备下可用:例如制造数据(我最感兴趣并在嵌入式端操作的东西)。但是,大多数 Polidea 示例都是从连接中获取设备的。

我可能误解了文档?可以使用一些建议/指导来进一步参考。

【问题讨论】:

【参考方案1】:

误解了文档..

消除一些复杂性的 2 分钟揭示了我需要知道的内容。

答案供他人参考:

BleManager 的 startDeviceScan 函数(UUIDS, options, listener) 其中 listener 是第二个参数返回设备对象的函数。从那里访问其字段。

this.manager.startDeviceScan(null, null, (error, device) => 
  if (error) 
    console.log(error.message);
    return;
  
  if(device.name === "Some_encoding_Sensor_1")
    console.log(device.manufacturerData);
  

显示的示例应根据 UUID 而不是 device.name 进行过滤,但这可能更易于初始/动态使用(具有多个具有重命名方案的设备)。

【讨论】:

【参考方案2】:

看看这个 JS 库: advlib

它有助于广告包解码,目前支持以下协议:

    蓝牙低功耗 (BLE) reelyActive RFID

【讨论】:

以上是关于用javascript读取ble包的制造数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 BLE 制造商数据抖动中获取所需值

在 iOS 中读取 Beacon 制造数据的最佳方式

iPhone 在其 BLE 制造商数据中的广告是啥?

BLE 扫描记录 - 未获取所有广告数据(服务数据)

iOS 在后台模式下从广告中省略制造商数据

iPhone 上从 nRF52 ARM 接收 BLE 数据包的速度很慢