我使用Windows-Universal-Samples BluetoothLE示例作为连接Polar心率设备的起始位置,但最终我想要桌面应用程序中的功能。使用WIndows 10 SDK(10.0.15063.0),我创建了一个独立的类库来提供连接到这个Polar设备的功能,我复制了bluetoothLE Scenario2_Client.xaml.cs的部分示例代码。我可以在类库中使用所有内容,除非我尝试过,当订阅HeartRate服务的HeartRateMeasurement特性的GattCharacteristic时,我无法触发ValueChanged事件。如果我运行bluetoothLE示例代码,我可以连接到Polar设备,并可以选择该服务和特性,并按预期触发ValueChanged事件。
Windows 10 SDK 10.0.15063.0是否可能存在蓝牙API问题?在创建者版本发布之前,我可以获得valuechanged事件,但是这是使用旧版本的蓝牙api的东西,并且大部分内容在Windows创建者版本发布后停止工作,所以我不得不重写它
我认为我的代码可能存在问题,但我确实复制了很多基本连接并订阅了bluetoothle示例中的事件。唯一的区别是我正在为UI使用WPF应用程序,但蓝牙代码应该非常相似
这是我的重写代码。 HeartRateMonitor类是连接到Polar设备的基本实现,设置heartrate服务和特性并订阅事件,并启动通知。
https://github.com/kirk-quinbar/HeartRateLE/tree/rewrite
已经玩了一个星期,到目前为止无法按预期获得该特征的ValueChanged。使我抓狂。有关要检查的事项的任何想法,或欢迎任何人查看我上面的代码以获取建议。