Data Characteristic Changed работает на одном устройстве, а не на втором идентичном - PullRequest
0 голосов
/ 12 марта 2019

У меня есть небольшая программа для отправки данных BluetoothLE в приложении Xamarin Forms.

Устройство Bluetooth представляет собой адаптер Honeywell Dex. портативные устройства - Honeywell CT60, работающий 7.1.1 сниффер порта, который я использую, - Device Monitoring Studio

Я записываю в признак и получаю данные через событие DataCharacteristicChange.

вот так я получаю характеристику записи

WriteCharacteristic = gatt.GetService(DEX_SERVICE_SPP)
                        .GetCharacteristic(DEX_CHARACTERISTIC_DATAWRITE);

тогда я делаю это

gatt.SetCharacteristicNotification(WriteCharacteristic, true)

и, наконец, это

BluetoothGattDescriptor descWrite = WriteCharacteristic.GetDescriptor (CLIENT_CHARACTERISTIC_CONFIG);

descWrite.SetValue (BluetoothGattDescriptor.EnableIndicationValue.ToArray ()); gatt.WriteDescriptor (descWrite);

это событие, которое запускается на устройстве № 1, но не на устройстве № 2

public override void OnCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic)

На устройстве № 1 это работает, я отправляю 0x05 и возвращаю 0x10 0x30. 0x10 0x30 обрабатывается в событии DataCharacteristicChanged. Я вижу это также в сниффере порта, который у меня есть.

На устройстве № 2, которое идентично # 1 (та же ОС 7.1.1, обновление и т. Д.), Та же самая операция отправляет 0x05, но я получаю 0x10 0x30 анализатору порта, но он никогда не достигает DataCharacteristicEvent в устройстве № 2.

Мой вопрос двоякий. У кого-нибудь есть идеи, что может вызвать такое поведение. Какие инструменты можно использовать для определения различий в конфигурации между двумя одинаковыми устройствами.

Спасибо

...