Data Characteristic Changed работает на одном устройстве, а не на втором идентичном
У меня есть небольшая программа для отправки данных 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.
У меня вопрос двоякий. У кого-нибудь есть идеи, что может вызвать такое поведение. Какие инструменты я могу использовать, чтобы обнаружить разницу в конфигурации между двумя одинаковыми устройствами.
Спасибо