Search
Write a publication
Pull to refresh
0
0
Максим @Balldir

Пользователь

Send message
Мы в похожем случае делали workaround но на девайсе:
1. На девайсе есть характеристика CMD в которую можно писать
2. На девайсе есть характеристика RSP с notify property
3. На запись команды в CMD девайс отвечает нотификейшенами по до 20 байт. В этом случае в приложении эти пакеты необходимо склеивать, но размер ответа не ограничен.

В целом для такого советуют использовать L2CAP channel, но с этим существуют проблемы: не на всех SDK API доступно, в iOS поддержка появилась не так давно, в Android с этим бывают удивительные проблемы.
> об ограничениях размера блока, записываемого в характеристику и что делать, если нужно передать данные

Максимальный размер одного пакета ATT(Atribute protocol) для LE 23 байта (Vol3 Part G: 5.2.1). Считать характеристику можно за один пакет размером ATT_MTU-1. Записать размером ATT_MTU-3 (Vol3 Part F: 3.2.9). Есть возможность читать большую характеристику за но не больше 512 байт и bt стек спрячет все особенности этого. Есть возможность писать длинные характеристики, но за частую бт стек на стороне микроконтроллеров это не прячет (на стороне iOS не знаю). Длинная запись делается через «prepare write».

> Как делить на «пролезающие» куски

Самый простой вариант делить по ATT_MTU-3

> как контролировать целостность, как потом собирать, в каком виде передавать данные

ATT базируется на L2CAP. L2CAP гарантирует целостность и порядок(Vol3 Part A: 1.1.1), но на Anrdoid первый и последний пакеты могут потеряться.

Если надо передавать что-то большое то рекомендуют использовать L2CAP channel. API для L2CAP — стрим с контролем целостности и порядка но без формата.
Согласно спецификации (Core Specification Supplement (CSS) v6 p. 10) UUID так же может быть 16 и 32 битным.
Что б получить доступ к исходникам CSR нужно купить devkit. И даже в этом случае много чего будет библиотекой без исходников + sdk только для windows (но внутри gcc и 8051).

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity