I'm trying to interact with a custom BLE device that uses notifications. When the notifications are received in Delphi, using the following in Characteristic read
procedure TForm1.BLECharacteristicRead(const Sender: TObject;
const ACharacteristic: TBluetoothGattCharacteristic;
AGattStatus: TBluetoothGattStatus);
...
L:=length(ACharacteristic.GetValue);
HexStr:=' =';
for I := 0 to L-1
do begin
HexStr:=HexStr+inttohex(ACharacteristic.GetValueAsInt8(I),2);
end;
LogList.Lines.Add(HexStr);
the data I see is
=010000010100FFFFFF8002000000FFFFFFC0FFFFFF8E00000000000000
=020000010200037F000000FFFFFF8022000000FFFFFF80510100
=2100000121000F00000000FFFFFF8000FFFFFF80000000000000
=2200000122000F00010000FFFFFF8000FFFFFF80000000000000
=2300000123000F00020000FFFFFF8000FFFFFF80000000000000
=2400000124000F00030000FFFFFF8000FFFFFF80000000000000
but when I use the BLE tool nRF Connect, I get
Notification received from 15db2002-a532-4c8e-978a-49b768439405, value: (0x) 01-00-00-01-01-00-80-02-00-00-00-C0-8E-00-00-00-00-00-00-00
Notification received from 15db2002-a532-4c8e-978a-49b768439405, value: (0x) 02-00-00-01-02-00-03-7F-00-00-00-80-22-00-00-00-80-51-01-00
Notification received from 15db2002-a532-4c8e-978a-49b768439405, value: (0x) 21-00-00-01-21-00-0F-00-00-00-00-80-00-80-00-00-00-00-00-00
Notification received from 15db2002-a532-4c8e-978a-49b768439405, value: (0x) 22-00-00-01-22-00-0F-00-01-00-00-80-00-80-00-00-00-00-00-00
Notification received from 15db2002-a532-4c8e-978a-49b768439405, value: (0x) 23-00-00-01-23-00-0F-00-02-00-00-80-00-80-00-00-00-00-00-00
Notification received from 15db2002-a532-4c8e-978a-49b768439405, value: (0x) 24-00-00-01-24-00-0F-00-03-00-00-80-00-80-00-00-00-00-00-00
Since I have access to the device firmware, i've been able to confirm that the nRF Connect matches what the device is sending .
What would cause the ACharacteristic to be corrupted?