Могу ли я транслировать данные bluetooth low energy 20 КБ каждые 5 секунд с устройства Android / iOS?

#android #ios #bluetooth #broadcast #beacon

#Android #iOS #bluetooth #трансляция #маяк

Вопрос:

Я знаю, что есть несколько приложений-симуляторов для Android для имитации BLE-маяков, таких как iBeacon, eddystone и т. Д. … Но я думаю, что эти стандарты beacon могут передавать только 1 килобайт или около того, я прав?

Я хочу иметь возможность передавать данные в 10-20 килобайт каждые 5 секунд с двух или более смартфонов, а затем они должны иметь возможность сканировать трансляции друг друга и, таким образом, считывать данные друг друга.

Есть ли какая-либо библиотека или собственный API или что-то в этом роде?

Комментарии:

1. Вы не можете передавать столько данных. Рекламные пакеты очень маленькие. Даже одно обновление атрибута при подключении ограничено примерно 60 байтами.

2. Тогда как BLE работает с аудионаушниками? Аудио необходимо передавать со скоростью в сотни килобайт. Разве телефон не отправляет в эфир более 100 КБ в секунду, чтобы наушники могли улавливать сигнал аудиоданных? И, насколько я знаю, скорость BLE действительно может составлять 100 Кбит / с.

3. Аудиопотоки передаются по устаревшим протоколам Bluetooth, а не по BLE GATT. Кроме того, скорость передачи данных, которую вы можете достичь при подключении, отличается от той, которую может транслировать периферийное устройство. Вы также можете использовать L2Cap для увеличения пропускной способности brother.

Ответ №1:

Длина каждого пакета, передаваемого по Bluetooth, составляет 20 байт. Согласно расчетам, данные, передаваемые за 5 секунд, примерно равны 5 КБ, поэтому необходимо подать заявку на расширение MTU через Bluetooth, но это зависит от максимального расширения, поддерживаемого устройством

 mBluetoothGatt.requestMtu(512);
  

Комментарии:

1. Тогда как BLE работает с аудионаушниками? Аудио необходимо передавать со скоростью в сотни килобайт. Разве телефон не отправляет в эфир более 100 КБ в секунду, чтобы наушники могли улавливать сигнал аудиоданных? И, насколько я знаю, скорость BLE действительно может составлять 100 Кбит / с.

2. Трансляция / реклама — это особая концепция, в которой используются три рекламных канала для многократной трансляции заранее определенного сообщения, которое может получить любой «наблюдатель». Это очень ограничено, по крайней мере, в не последней спецификации Bluetooth. Однако, если вы подключитесь к устройству, вы получите соединение «точка-точка», и теперь вы можете внезапно отправлять до 1,4 Мбит / с в оптимальных случаях.

3. Да, в идеале это достижимо. Вам необходимо определить, поддерживает ли устройство скорость обработки MCU. Если вы используете аудиоформат ble , рекомендуется использовать формат ADPCM или opus для улучшения качества звука после декодирования. Конечно, вы также можете использовать HFP в A2DP для взаимодействия со звуком