C#BLE读取错误(Windows)

时间:2018-02-27 14:00:01

标签: c# arduino uwp bluetooth-lowenergy uart

我正在编写一个C#应用程序来连接和读取Adafruit Feather板上的数据。

我设法在Windows 10上使用UWP API成功连接到主板。 但是,在尝试阅读Adafruit董事会提供的UART服务时,我遇到了错误。

错误如下:

enter image description here

发生在代码中的这一行:

enter image description here

这是我正在使用的代码。抱歉,如果它仍然有点乱 - 我会在它工作后清理它。

    Guid uart_uid = new Guid("6E400001-B5A3-F393-E0A9-E50E24DCCA9E");
            Guid uart_read_uid = new Guid("6E400003-B5A3-F393-E0A9-E50E24DCCA9E");

            if (eventArgs.BluetoothAddress == 221661906381440)
            {
                Console.WriteLine(String.Format("Advertisement:"));
                Console.WriteLine(String.Format("  BT_ADDR: {0}", eventArgs.BluetoothAddress));
                Console.WriteLine(String.Format("  FR_NAME: {0}", eventArgs.Advertisement.LocalName));
                Console.WriteLine();
                Console.WriteLine("Sensor found. Initiating connection...");
                Console.WriteLine();

                BluetoothLEDevice device = await BluetoothLEDevice.FromBluetoothAddressAsync(221661906381440);
                GattDeviceService gatt_uart = device.GetGattService(uart_uid);

                IReadOnlyList<GattCharacteristic> read = gatt_uart.GetCharacteristics(uart_read_uid);

                GattReadResult result = await read.First().ReadValueAsync(BluetoothCacheMode.Uncached);
                Console.WriteLine("{0}", result.Value);
            }

错误是由于我的C#代码造成的,还是因为我从主板上发送的数据格式?

这是我用来写的Adafruit代码:

  if(recording){
    ble.print("AT+BLEUARTTX=");
    ble.print("Color Temp: "); ble.print(colorTemp, DEC); ble.print(" K.");
    ble.println("\n");
    if (! ble.waitForOK() ) {
      Serial.println(F("Failed to send?"));
    }

编辑1:

我添加了一个try catch来查看异常。这就是我得到的。 enter image description here

编辑2:

这些是我分别用于C#和Adafruit板的库。

using System;
using System.Collections.Generic;
using System.Linq;
using Windows.Devices.Bluetooth.Advertisement;
using Windows.Devices.Bluetooth;
using Windows.Devices.Bluetooth.GenericAttributeProfile;

#include <Wire.h>
#include <Arduino.h>
#include <SPI.h>
#include "Adafruit_BLE.h"
#include "Adafruit_BluefruitLE_SPI.h"
#include "Adafruit_BluefruitLE_UART.h"
#include "Adafruit_TCS34725.h"
#include "BluefruitConfig.h"

感谢任何帮助, 谢谢

0 个答案:

没有答案