理解flutter_blue_plus中接收到的数据

问题描述 投票:0回答:1

我是 Flutter 的新手,正在尝试构建一个扫描 BLE 设备并进行进一步处理的应用程序,我能够扫描/连接/做一些事情,但我想了解发送回给我的设备数据就像说-

ScanResult{device: BluetoothDevice{remoteId: E8:2B:B8:53:BF:C9, platformName: Digital_Lock, services: null}, 
advertisementData: AdvertisementData{advName: , txPowerLevel: null, appearance: null, connectable: true, 
manufacturerData: {89: [39, 66, 1, 16, 0, 0, 0, 0, 86, 100, 200, 20, 235, 119, 180, 100, 76, 229, 242, 217, 251, 227, 123, 138]}, 
serviceData: {}, 
serviceUuids: []}, 
rssi: -93, 
timeStamp: 2024-10-15 10:01:31.698689}

更具体地说, manufacturerData ,就像这些值应该意味着什么一样,它们是用 utf8 编码的吗?我猜里面可能有某种设备 ID/序列号?

感谢帮助。

flutter
1个回答
0
投票
{89: [39, 66, 1, 16, 0, 0, 0, 0, 86, 100, 200, 20, 235, 119, 180, 100, 76, 229, 242, 217, 251, 227, 123, 138]}
  1. 公司标识符 (ID 89):第一个字节 (

    89
    ) 表示制造商。您可以交叉引用该值来查找与其关联的公司名称。例如,Nordic Semiconductor 的制造商 ID 是
    0x0059
    (十进制 89)。

  2. 数据负载:数组

    [39, 66, 1, 16, 0, 0, 0, 0, 86, 100, 200, 20, 235, 119, 180, 100, 76, 229, 242, 217, 251, 227, 123, 138]
    可以进一步解码,每个字节或字节组将具有特定含义,具体取决于BLE设备制造商特定的协议。这是一个细分方法:

    • 设备 ID 或标头
      39, 66
      可能指示某些特定标头或设备标识符。
    • 固件或硬件版本
      1, 16
      可能代表固件版本1.16。
    • 标志或状态代码
      0, 0, 0, 0
      可以是占位符值或状态标志。
    • 数据值
      86, 100, 200, 20, 235, 119, 180, 100, 76, 229, 242, 217, 251, 227, 123, 138
      可以解释为传感器读数、加密数据或其他信息,具体取决于具体用例。

要完全解码此内容,您需要访问设备的规范或协议文档,其中概述了每个字节或字节序列代表的内容。如果您可以访问它,它将有助于正确解释有效负载。如果您可以分享有关数据所代表内容的更多详细信息,我可以提供进一步帮助。

© www.soinside.com 2019 - 2024. All rights reserved.