LINUX.ORG.RU

Посоветуйте где RPC over GATT подглядеть, для плюсов и жыэсов

 , gatt


0

1

Нужно приконнектить esp32 к вебне по bluetooth:

  1. Получать события (апдейты температуры)
  2. Дергать полтора метода с простыми параметрами (нагреватель включить, на уровне отправить жысон и получить ответ жысоном)

Каких-либо требований по экономии памяти и потреблению - нет. Т.е. заюзать плюсовый парсер жысона вместо тру протобафа - вообще не вопрос.

Web Bluetooth это GATT. Задуманный в стародавние времена под стародавние задачи, которые теперь не актуальны. Руками уродоваться через GATT properties - штука совсем на любителя. Хотелось бы какую-то молодёжную обертку, которая будет заботиться о нарезке длинных данных, спрячет всё говнище за смузихлёбным rpc / event emitter и т.п. Километры совместимости с версионированием протоколов - не нужны. Чем проще, тем лучше.

Посоветуйте куда копать. Пока не нашел готового решения, которое было бы понятно и нравилось.

★★★★★

которая будет заботиться о нарезке длинных данных

то есть передача условных мегабайтов через writeValueWithResponse(arrayBuffer) сама по себе не сработает и нужно нарезать этот буфер вручную?

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Там же пропертями обмен. А проперти либо 22 байта, либо [длинные] до 512.

Все что больше - юзеры сами колхозят. Вот итересуюсь кто больше всех преуспел.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Боюсь, это настолько нишевая и непопулярная штука, что хорошие готовые открытые решения вряд ли найдёшь.

static_lab ★★★★★
()

А что мешает тебе написать, аки Боженька? NodeJS под это дело супер идёт. Удобно, быстро. Почему ты завис?

Чем проще, тем лучше.
Посоветуйте куда копать

:facepalm:

Nodejs - Buffer, Binary data

masterOf
()
Последнее исправление: masterOf (всего исправлений: 1)
Ответ на: комментарий от static_lab

https://github.com/thegecko/webbluetooth

И тебя ждёт GATT, ТС, с самописным дескриптором. Тупо модуль на 20 строк по документации. https://googlechrome.github.io/samples/web-bluetooth/read-descriptors.html
https://googlechrome.github.io/samples/web-bluetooth/write-descriptor.html

Так, как железки у всех разные, то и лепит каждый сам вот этот драйвер. Один раз накорябать и всё. Делай потом, что хочешь. Уверен, что либы писать под это не будут.

masterOf
()
Ответ на: комментарий от masterOf

Бро, там реально есть чем заняться. Если получится заюзать что-то готовое - можно будет быстрее приступить к остальному. Например до сих пор нет качественной абстракции USB-PD Sink, без привязки к RTOS и т.п. Поверь, хватает чего кодить.

Vit ★★★★★
() автор топика
Последнее исправление: Vit (всего исправлений: 2)
Ответ на: комментарий от masterOf

Там всякие рюшечки, но я не нашел решения для проброса длинных блобов и чтобы наружу торчали просто функции с параметрами, которые хочется дернуть удаленно.

https://github.com/mongoose-os-libs/rpc-gatts - вот тут чего-то есть, но пока не вкурил почему они называют это RPC. Либо я фигово смотрел, либо там действительно нет слоя, который отвечает за упаковку данных и вызов функций. Есть только проброс длинных блобов.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Короче, я за тебя спросил у GPT, он ответил, что с Web bluetooth API надо писать самому, низкоуровневая хрень. Как ты выше писал, по надцать байт, склеивать…

Под Nodejs есть набор либ, где разбитие на чанки скрыто под капотом. Вот список:
Noble https://github.com/abandonware/noble
Bleno https://github.com/abandonware/bleno
node-bluetooth https://github.com/song940/node-bluetooth

Фсё.

masterOf
()
Последнее исправление: masterOf (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.