如何解决从蓝牙 BLE 设备检索值
在我的 windows 窗体应用程序中,我开始枚举设备列表,如下所示:
DeviceWatcher deviceWatcher =
Deviceinformation.CreateWatcher(
BluetoothLEDevice.GetDeviceSelectorFromPairingState(false),requestedProperties,DeviceinformationKind.AssociationEndpoint);
// Register event handlers before starting the watcher.
// Added,Updated and Removed are required to get all nearby devices
deviceWatcher.Added += DeviceWatcher_Added;
// EnumerationCompleted and Stopped are optional to implement.
deviceWatcher.EnumerationCompleted += DeviceWatcher_EnumerationCompleted;
deviceWatcher.Stopped += DeviceWatcher_Stopped;
// Start the watcher.
deviceWatcher.Start();
找到设备后,我将按如下方式检索服务和特征:
BluetoothLEDevice btdev;
List<Deviceinformation> lst = new List<Deviceinformation>();
GattCharacteristic ch;
private async void DeviceWatcher_Added(DeviceWatcher sender,Deviceinformation args)
{
if (args.Name == "Bluno")
{
btdev = await BluetoothLEDevice.FromIdAsync(args.Id);
GattDeviceServicesResult result = await btdev.GetGattServicesAsync();
Guid customGuid = new Guid("0000dfb0-0000-1000-8000-00805f9b34fb");
foreach (GattDeviceService service in result.Services)
{
if (customGuid == service.Uuid)
{
GattcharacteristicsResult cresult = await service.GetcharacteristicsAsync();
ch = cresult.characteristics.Where(x => x.Uuid == new Guid("0000dfb1-0000-1000-8000-00805f9b34fb")).FirstOrDefault();
ch.ValueChanged += Ch_ValueChanged;
}
}
}
}
问题在于,即使 BLE 设备每秒持续发送多个值,它也不会触发 ValueChanged
事件。
感谢帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。