我是 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/序列号?
感谢帮助。
{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]}
公司标识符 (ID 89):第一个字节 (
89
) 表示制造商。您可以交叉引用该值来查找与其关联的公司名称。例如,Nordic Semiconductor 的制造商 ID 是 0x0059
(十进制 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]
可以进一步解码,每个字节或字节组将具有特定含义,具体取决于BLE设备制造商特定的协议。这是一个细分方法:
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
可以解释为传感器读数、加密数据或其他信息,具体取决于具体用例。要完全解码此内容,您需要访问设备的规范或协议文档,其中概述了每个字节或字节序列代表的内容。如果您可以访问它,它将有助于正确解释有效负载。如果您可以分享有关数据所代表内容的更多详细信息,我可以提供进一步帮助。