Почему я не могу выполнить сопряжение моего устройства BLE? - PullRequest
0 голосов
/ 22 мая 2018

Это мой код для сопряжения.

var Name = listBox1.SelectedItem as BluetoothLEDeviceDisplay;
          DevicePairingResult result = await Name.DeviceInformation.Pairing.PairAsync();
          updateUI("Paired.");

Я устанавливаю свое «Имя» для обнаружения своих устройств.

private void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
    {

      Name = eventArgs.Advertisement.LocalName;
      if (items.Contains(Name) == false)
      {
        items.Add(Name);
      }

    }

Когда я пытаюсь выполнить сопряжение устройства BLE (rfduino)).Я получаю ошибку "<Name>5_1 is null".Как мне это решить?

1 Ответ

0 голосов
/ 23 мая 2018

Я уверен, что вам не нужно подключать устройство.Большинство, если не все устройства Ble не нуждаются в сопряжении, если только вы не хотите диалоговое окно сопряжения для ввода пин-номера.

Ваш код не имеет никакого смысла.
BluetoothLEDeviceDisplay - это отдельный класс, содержащий объектыи перечисления для удобства отображения, используемые в некоторых примерах UWP.
Это не ваше Ble-устройство!
Поэтому имя выбранного элемента всегда будет нулевым.
Если вы добавили этот класс в свой проект, используйтеПользовательское соединение:

DeviceInformationCustomPairing customPairing = bleDeviceDisplay.DeviceInformation.Pairing.Custom;
                DevicePairingKinds ceremoniesSelected = DevicePairingKinds.None | DevicePairingKinds.ProvidePin;
                DevicePairingProtectionLevel protectionLevel = DevicePairingProtectionLevel.None;
                customPairing.PairingRequested += new TypedEventHandler<DeviceInformationCustomPairing,
                                                      DevicePairingRequestedEventArgs>(CustomPairing_PairingRequested);
                DevicePairingResult result = await customPairing.PairAsync(ceremoniesSelected,
                                                   protectionLevel);                


        private void CustomPairing_PairingRequested(DeviceInformationCustomPairing sender, DevicePairingRequestedEventArgs args)
        {
            //this is where your pin goes.
            //windows requires at least a "0".
            args.Accept("000000");//123456
        }

Я использовал это до обновления создателей Windows 10, но после этого никогда больше.Взгляните на мой пример Github, чтобы вы могли работать без пары: https://github.com/GrooverFromHolland/SimpleBleExample_by_Devicename

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...