【发布时间】:2020-11-30 18:19:16
【问题描述】:
我一直在尝试将 esp 设置为 BLE 放大器。我正在尝试获取传感器信标的广播/广告数据(在服务下发送)并在短时间内广告相同的数据。整个过程应该在没有连接到客户端的情况下工作。
问题是我无法正确读取传感器信标(客户端)的数据。我正在 Rpi3 上运行扫描仪,可以检查,这里一切都按预期工作。高贵的输出
noble.on('discover', async function(bleResult) {
if(bleResult.advertisement.localName
&& bleResult.advertisement.localName.localeCompare("RDL52832") == 0 {
console.log(bleResult.advertisement.serviceData);
}
...
是
[ { uuid: '0318',
data: <Buffer 13 1b 2e 2f 01 00 00 02 00 00 00 01 00 00 09 07> } ]
在 ESP32 上获取相同数据的代码如下所示
BLEScanResults foundDevices = pBLEScan->start(scanTime, true);
for (uint32_t i = 0; i < foundDevices.getCount(); i++) {
if (foundDevices.getDevice(i).getName() == ("RDL52832")) {
Serial.printf("\nAddress: %s \n", foundDevices.getDevice(i).getAddress().toString().c_str());
Serial.printf("ServiceData as Hex: %X \n", foundDevices.getDevice(i).getServiceData().c_str());
startServerWithCharacteristics(foundDevices.getDevice(i).getServiceData(), "ant_node");
};
}
这段代码的输出是
Address: e9:81:f5:86:63:a5
ServiceData as Hex: 3FFE7514
Try Broadcasting ant_node
如何从 ESP32 的信标中获取广告数据? 我的错在哪里?
提前致谢!
【问题讨论】:
标签: c++ bluetooth-lowenergy esp32 arduino-ide