0

我正在使用 Nordic Thingy:52 在 UWP 应用程序中记录环境数据,并按照 Windows 通用示例应用程序中的示例连接到 BT LE 设备。

到目前为止,我已经能够连接到设备以检索服务和特征信息,但是当从传感器接收实际数据时,我无法将字节数组转换为可用数据。

async void Characteristic_ValueChanged(GattCharacteristic sender, GattValueChangedEventArgs args)
{
    // An Indicate or Notify reported that the value has changed.
    var reader = DataReader.FromBuffer(args.CharacteristicValue);
    byte[] input = new byte[reader.UnconsumedBufferLength];
    reader.ReadBytes(input);
}

检查字节数组的内容时,您可以看到已收到某些内容,但在知道如何将此数组转换为有用数据时,我感到很困惑。

读取字节数组的代码

设备发送数据的数据规范

4

1 回答 1

0

文档中我们可以看到压力数据的定义:

在此处输入图像描述

5 个字节包含一个用于整数部分的 int32 和一个用于小数部分的 uint8。单位是 hPa。

你得到一个这样的字符串:

        Int32 pressureInteger = BitConverter.ToInt32(input, 0); //252-3-0-0
        string pressureString = pressureInteger.ToString() + "." + input[4].ToString() + "hPa";

字符串将为“1020.28hPa”

更多参考“ BitConverter Class ”并注意 little-endian/big-endian。

于 2018-12-05T02:53:17.460 回答