Как известно, существуют 2 основных способа передачи данных через Bluetooth-соединение - ACL и SCO.
ACL всем хорош, но данные добираются до другого "берега" беспроводного линка с приличной задержкой, от 3 до 30 мс, что губительно для моей задачи. Настройка QoS (Quality of Service) существенно улучшает ситуацию до 5-7 мс, но периодически, очень редко задержка всё равно достигает 25-30 мс и вся идея теряет смысл.
SCO является синхронным каналом с гарантированной полосой и минимальными задержками и вписался бы замечательно в моё решение, но он предназначен для передачи звука. При открытии канала и передаче данных через него я вижу на приемной стороне не точную копию входного бинарного потока, а некоторую "пародию" на него. Дело в том, что SCO-канал целиком и полностью ориентирован на звук, и перед передачей он аппаратно обрабатывается некими алгоритмами (кодеками), которые далеко не lossless. Таким образом, бинарный поток несколько видоизменяется, что приемлемо для звука, но неприемлемо для данных.
Может, подскажет кто - неужели нельзя использовать SCO-канал для передачи данных?