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