【发布时间】:2017-09-30 16:41:45
【问题描述】:
我有一个 Adafruit Bluefruit UART Friend 模块 (https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend/introduction),我正在尝试制作一个通用 Windows 应用程序,我可以从中读取蓝牙数据。我按照微软页面上显示的步骤成功连接到设备,但是当尝试从特定 RX 特征读取数据时,我在控制台中得到 System.ArgumentException。我检查了特征上的标志,看起来 READ 标志返回 false,只有 NOTIFY 标志为 true。是否有可能我没有阅读正确的特征?我从 Adafruit 网站获得了 UUID:https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend/uart-service 这是我的 C# 代码示例:`
public static async Task connectToAddress() {
Guid guid = new Guid("6e400001b5a3f393e0a9e50e24dcca9e"); // Base UUID for UART service
Guid charachID = new Guid("6e400003b5a3f393e0a9e50e24dcca9e"); // RX characteristic UUID
deviceReference = await BluetoothLEDevice.FromBluetoothAddressAsync(_deviceAddress);
GattDeviceServicesResult result = await deviceReference.GetGattServicesAsync();
var characs = await result.Services.Single(s => s.Uuid == guid).GetCharacteristicsAsync();
var charac = characs.Characteristics.Single(c => c.Uuid == charachID);
GattCharacteristicProperties properties = charac.CharacteristicProperties;
if (properties.HasFlag(GattCharacteristicProperties.Read))
{
Debug.Write("This characteristic supports reading from it.");
}
if (properties.HasFlag(GattCharacteristicProperties.Write))
{
Debug.Write("This characteristic supports writing.");
}
if (properties.HasFlag(GattCharacteristicProperties.Notify))
{
Debug.Write("This characteristic supports subscribing to notifications.");
}
GattReadResult data = await charac.ReadValueAsync();
Debug.WriteLine("DATA: " + data.ToString());
charac.ValueChanged += Characteristic_ValueChanged;
}`
【问题讨论】:
-
在您的调试中。写你使用相同的行进行读取和写入(“此特性支持从中读取。”。首先修复此问题。
-
谢谢,但我仍然无法读取特征。
标签: c# bluetooth win-universal-app bluetooth-lowenergy