Отправка больших сообщений в BLE

KoliK29

✩✩✩✩✩✩✩
5 Янв 2020
11
0
Собственно имею Keywish BLE Nano (гибрид Arduino Nano и BLE). Очень сильно хочу передать в неё текст длинной 1500 символов с телефона. По умолчанию видимо у BLE есть ограничение на размер пакета и более 20 символов за раз не передать. Самый логичный способ - разбить текст на 20 символов и передавать их кусками. Да, текст разбил и даже передал, но дошло менее количество символов в добавок ещё и порядок некоторых из них сбился. Собственно как можно решить проблему?

Пока вижу только 2 варианта: добавить задержку между отправкой пакетов по 20 символов или ввести контрольную сумму, которая тоже не факт что дойдёт правильно. Может кто-то предложит вариант по лучше?

ЗЫ: для разработки на телефоне использую Cordova и плагин cordova-plugin-ble-central.
 

PiratFox

★★★✩✩✩✩
13 Фев 2020
485
105
Харьков
@KoliK29, что-то я не видел в даташите на BLE каких-либо ограничений на длину пакета. Может, у Вас с программным обеспечением глюки?
 

PiratFox

★★★✩✩✩✩
13 Фев 2020
485
105
Харьков
@KoliK29, Аааа-ааа, вон оно что. Так это Андрюшке скажите спасибо. Придётся Вам его насиловать. При этом BLE не накладывает ограничений на размеры пакетов. Никаких. Видимо, придётся Вам всерьёз браться за Android Studio. Ну, или за что-то похожее.
 

KoliK29

✩✩✩✩✩✩✩
5 Янв 2020
11
0
@PiratFox, ограничение в целом слабо обходится. Пришлось бить на чанки по 20 символов и отправлять их с задержкой в 500 мс. При меньшей задержке чанки криво доходили.

Может конечно однажды я и напишу всё на Java в Android Studio, но пока Cordova.
 

PiratFox

★★★✩✩✩✩
13 Фев 2020
485
105
Харьков
@KoliK29, чем, собственно Java отличается от C кардинально - так я даже и не знаю. Я свободно пишу на С, так там разница в комилляторах только. Или я не прав?