Не удается подключить Hololens к устройству Bluetooth с низким энергопотреблением

Для проекта, над которым я работаю, мне нужно считать данные с модуля BluetoothLE (HM-10). Мне нужно прочитать и использовать эти данные из приложения Unity. Для подключения и чтения данных я создаю плагин для Unity с помощью Visual Studio 2017. Я могу получить список устройств BluetoothLE, используя:

 string[] requestedProperties = { "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected" };

        deviceWatcher =
                    DeviceInformation.CreateWatcher(
                            BluetoothLEDevice.GetDeviceSelectorFromPairingState(false),
                            requestedProperties,
                            DeviceInformationKind.AssociationEndpoint);

Подключение к устройству тоже работает. Я использую:

  BluetoothLEDevice btDevice = await BluetoothLEDevice.FromIdAsync(device.Id);

Далее я хочу прочитать данные, которые отправляет это устройство. Я понимаю, что мне нужно собрать данные об услугах и характеристиках, прежде чем я смогу прочитать эти данные. Но я почему-то не могу дождаться услуг. Я получаю сообщение об ошибке: var gattservices = await btDevice.GetGattServicesAsync(); Ошибка гласит:

Невозможно привести объект типа «Windows.Devices.Bluetooth.BluetoothLEDevice» к типу «Windows.Devices.Bluetooth.IBluetoothLEDevice3».

Использую ли я неправильные методы для получения результатов?

Любая помощь будет оценена!


person Erik    schedule 15.06.2017    source источник
comment
Возможный дубликат UWP Bluetooth LE InvalidCastException   -  person Ryanas    schedule 15.06.2017
comment
Нет, я выполнил точно такие же шаги, как описано в ссылке, на которую вы ссылаетесь, но все равно получаю ту же ошибку.   -  person Erik    schedule 16.06.2017
comment
Привет, Эрик! Вы нашли свой ответ? На самом деле я также ищу какой-нибудь плагин, который подключит hololens к устройству Bluetooth.   -  person Nishant Anindya    schedule 01.09.2017
comment
Привет, Нишант, да, я наконец-то установил рабочее соединение между hololens и моим устройством Bluetooth LE. Я отправлю свой ответ.   -  person Erik    schedule 05.09.2017


Ответы (1)


Наконец-то я нашел, как получить все услуги и характеристики для каждой услуги. Создав GattDevice, я могу получить услуги с помощью GattDevice.GattServices. Когда я нашел правильный GattDeviceService, я могу получить характеристики с помощью:

GattService s = new GattService(GattDeviceService)
GattCharacteristic.GetCharacteristics(s)
person Erik    schedule 05.09.2017
comment
Это работает на HoloLens? Если да, не могли бы вы прислать мне пример? - person Freddy; 02.03.2018
comment
Это работает на Hololens, я не могу привести простой пример. Если вы можете получить список ближайших устройств, вы можете создать GattDevice и подключиться к службе, к которой вы хотите подключиться, используя приведенный выше код. - person Erik; 05.03.2018
comment
Да, с новым обновлением ОС на HoloLens это работает. С первой ОС HL это не работало, так как интерфейсы были, но не реализованы. - person Freddy; 06.11.2018