Я создал тестовое приложение с Bluetooth Low Energy (BLE) для выполнения пулов на устройстве BLE каждые 500 мс, отправки запроса и получения ответа.Устройство BLE имеет «Характеристику» с «Дескрипторами чтения, записи и уведомления».После входа в BLE на этой «характеристике» выполняется подписка через CurrentBLEDevice.SetCharacteristicNotification
.Значение «Характеристика» читается в событии CurrentBLEDevice.OnCharacteristicRead
(где OnCharacteristicRead = DidCharacteristicRead
).Все работает нормально, пока событие CurrentBLEDevice.OnCharacteristicRead
перестает отвечать без причины.(Delphi 10.2.1, Android 5.0).
Я пока не смог смоделировать ошибку и хотел бы узнать, есть ли какой-нибудь тест, который я могу сделать, чтобы смоделировать или исправить ошибку.
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;