Переполнение буферов и потеря данных
Событие on_bt_overrun генерируется при переполнении буфера RX. Это означает, что данные поступали быстрее, чем их обрабатывало приложение, и часть данных потеряна. Этот фрагмент включает мигание красного светодиода при переполнении:
sub on_bt_overrun()
pat.play("-R*~",PL_PAT_CANINT)
end sub
Переполнение буферов TX невозможно. Его не следует путать с усечением данных - оно происходит, когда вы пытаетесь записать больше данных, чем буфер TX может вместить в данный момент.
Даже если запись данных в буфер TX выполнена правильно, данные всё равно могут потеряться на пути к центральному устройству. Теоретически, пока соединение BLE стабильно, данные TX потеряться не должны. На практике часть данных может ускользнуть, особенно при нестабильном соединении. В этом отношении соединения BLE не обладают надёжностью последовательных каналов с управлением потоком или соединений TCP.