I've created a test application with Bluetooth Low Energy (BLE) to perform pooling on the BLE device every 500ms, sending request and receiving response. The BLE device has a "Characteristic" with "Read, Write and Notify Descriptors". After signing in to BLE, an Subscribe is executed on that "Characteristic" via CurrentBLEDevice.SetCharacteristicNotification
. The value of "Characteristic" is read in the CurrentBLEDevice.OnCharacteristicRead
event (where OnCharacteristicRead = DidCharacteristicRead
). Everything works fine until the CurrentBLEDevice.OnCharacteristicRead
event stops responding for no reason. (Delphi 10.2.1, Android 5.0).
I have not been able to simulate the error yet and would like to know if there is any test I can do to simulate or fix error.
procedure DidCharacteristicRead(const Sender: TObject;
const ACharacteristic: TBluetoothGattCharacteristic;
AGattStatus: TBluetoothGattStatus);
var FCharactValueGet: TBytes;
begin
if AGattStatus <> TBluetoothGattStatus.Success then Exit;
FCharactValueGet:= [];
FCharactValueGet := ACharacteristic.Value;
end;