I have a small program to send BluetoothLE data on a Xamarin Forms application.
the bluetoothle device is a Honeywell Dex Adapter. the handheld devices are Honeywell CT60 running 7.1.1 the port sniffer i use is Device Monitoring Studio
I write to a characteristic and receive data through the DataCharacteristicChange event.
this is how i get the write characteristic
WriteCharacteristic = gatt.GetService(DEX_SERVICE_SPP)
.GetCharacteristic(DEX_CHARACTERISTIC_DATAWRITE);
then i do this
gatt.SetCharacteristicNotification(WriteCharacteristic, true)
and finally this
BluetoothGattDescriptor descWrite = WriteCharacteristic.GetDescriptor(CLIENT_CHARACTERISTIC_CONFIG);
descWrite.SetValue(BluetoothGattDescriptor.EnableIndicationValue.ToArray()); gatt.WriteDescriptor(descWrite);
this is the event that is fired on device #1, but not device #2
public override void OnCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic)
On Device #1, it works, i send 0x05 and get back 0x10 0x30. The 0x10 0x30 is handled in the DataCharacteristicChanged event. I see it also in the port sniffer i have.
On Device #2, which is identical to #1 (same OS 7.1.1, upgrade, etc..), the same operation sends the 0x05 but and i get the 0x10 0x30 to the port sniffer but it never gets to the DataCharacteristicEvent in the Device #2.
My question is two-fold. Does anyone have any idea what could cause this behavior. What tools could I use to detect difference in configuration between 2 identical devices.
Thanks