【发布时间】:2017-02-17 08:51:34
【问题描述】:
我目前正在尝试从 Windows 10 中的蓝牙 LE 获取广告数据包。
我正在开发一个通用 Windows 应用程序,因此我使用带有以下代码的 JavaScript:
// Create and initialize a new watcher instance.
var watcher = new Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher();
watcher.signalStrengthFilter.inRangeThresholdInDBm = -126;
watcher.signalStrengthFilter.outOfRangeThresholdInDBm = -126;
watcher.signalStrengthFilter.outOfRangeTimeout = 60000;
watcher.signalStrengthFilter.samplingInterval = 0;
watcher.scanningMode = 1;
watcher.addEventListener("received", onAdvertisementReceived, false);
这些是我获得最多 BLE ADV 数据包的设置。
在我的场景中,我有一个 BLE 转发器每秒发送一个 ADV 数据包,我可以使用 WireShark 在 linux 机器上进行验证。
奇怪的是,我没有通过 Windows 应用程序获得所有这些 ADV 数据包。
我会收到大约 15-20 个数据包,然后在收到其他数据包之前有 30-60 秒的暂停。
所有设备(windows-machine、linux-machine 和 ble-transponder)都在 1m 半径范围内。所以我认为我应该在 windows 机器上得到与 linux 机器上相同的数据包,但我没有。这是为什么?是我的设置错误还是有更好的方法来获取 ADV 数据包?
提前谢谢你。
【问题讨论】:
标签: windows bluetooth win-universal-app bluetooth-lowenergy windows-mobile