Espruino:Примеры/Gadgetbridge для Android: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= <syntaxhighlig...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=<ref>[ www.espruino.com - ]</ref>= | =Gadgetbridge для Android<ref>[https://www.espruino.com/Gadgetbridge www.espruino.com - Gadgetbridge for Android]</ref>= | ||
[https://gadgetbridge.org/ GadgetBridge] – это Android-приложение с функционалом для наблюдения за показателями здоровья и уведомлениями в стиле умных часов, избавляющее от необходимости использовать проприетарное приложение/сервис. | |||
Если вам нравится пользоваться GadgetBridge, здесь можно [https://liberapay.com/Gadgetbridge/donate внести пожертвование] на продолжение его разработки. | |||
В GadgetBridge теперь есть поддержка [https://www.espruino.com/Bangle.js Bangle.js], что позволяет подключать телефон к Bangle.js или любому другому Espruino-устройству с поддержкой Bluetooth. | |||
Сообщения, отправляемые на Bangle.js с телефона | |||
Сообщения обёртываются в текст "\x10" + "GB(...)\n"., и если отправить его в обычную REPL, это выполнит функцию GB() с данными, которые были заданы в её первом аргументе. | |||
Сообщения, реализованные на текущий момент: | |||
* t:"notify", id:int, src,title,subject,body,sender,tel:string – новое уведомление. | |||
* t:"notify-", id:int – удаление уведомления. | |||
* t:"alarm", d:[{h,m},...] – установка сигнала оповещения. | |||
* t:"find", n:bool – поиск устройства. | |||
* t:"vibrate", n:int – вибрация. | |||
* t:"weather", temp,hum,txt,wind,loc – сообщение о погоде. | |||
* t:"musicstate", state:"play/pause",position,shuffle,repeat – проигрывание/пауза музыки и так далее. | |||
* t:"musicinfo", artist,album,track,dur,c(track count),n(track num) – музыкальный трек, проигрываемый в данный момент. | |||
* t:"call", cmd:"accept/incoming/outgoing/reject/start/end", name: "name", number: "+491234" – вызов. | |||
* t:"act", hrm:bool, stp:bool, int:int – включение счётчика шагов в реальном времени и пульсометра в реальном времени. Здесь int – это интервал отправки данных. | |||
== Примеры == | |||
<syntaxhighlight lang="javascript" enclose="div"> | |||
GB({"t":"notify","id":1575479849,"src":"Hangouts","title":"A Name","body":"message contents"}) | |||
GB({"t":"musicstate","state":"play","position":0,"shuffle":1,"repeat":1}) | |||
GB({"t":"musicinfo","artist":"..","album":"..","track":"..","dur":241,"c":2,"n":2}) | |||
GB({"t":"call","cmd":"accept","name":"name","number":"+491234"}) | |||
</syntaxhighlight> | |||
== Сообщения от Bangle.js на телефон == | |||
Любая строчка, начинающаяся с {, будет пропарсена GadgetBridge как JSON-данные. Чтобы отправить команду, просто воспользуйтесь Bluetooth.println(JSON.stringify(json)). | |||
Доступные типы сообщений: | |||
* t:"info", msg:"..." – показать на телефоне информационное всплывающее сообщение | |||
* t:"warn", msg:"..." – показать на телефоне всплывающее сообщение с предупреждением | |||
* t:"error", msg:"..." – показать на телефоне всплывающее сообщение об ошибке | |||
* t:"status", bat:0..100, volt:float(voltage) – обновление статуса | |||
* t:"findPhone", n:bool | |||
* t:"music", n:"play/pause/next/previous/volumeup/volumedown" | |||
* t:"call", n:"ACCEPT/END/INCOMING/OUTGOING/REJECT/START/IGNORE" | |||
* t:"notify", id:int, n:"DISMISS,DISMISS_ALL/OPEN/MUTE/REPLY", | |||
** Если REPLY, то можно использовать tel:string(optional), msg:string | |||
* t:"ver", fw1:string, fw2:string – версии прошивки (отправляется в момент подключения) | |||
* t:"act", hrm:int, stp:int – данные об активности (пульс, шаги с последнего вызова) | |||
Например, вот это... | |||
<syntaxhighlight lang="javascript" enclose="div"> | <syntaxhighlight lang="javascript" enclose="div"> | ||
Bluetooth.println(JSON.stringify({t:"info", msg:"Hello World"})) | |||
</syntaxhighlight> | |||
...покажет сообщение на экране телефона. | |||
== Сборка GadgetBridge == | |||
Документацию о GadgetBridge читайте [https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Developer-Documentation тут]. | |||
Установив в систему инструменты для разработки на Android, для сборки вам останется сделать лишь следующее: | |||
<syntaxhighlight lang="javascript" enclose="div"> | |||
./gradlew assembleDebug | |||
adb install app/build/outputs/apk/debug/app-debug.apk | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия от 16:01, 25 июля 2021
Gadgetbridge для Android[1]
GadgetBridge – это Android-приложение с функционалом для наблюдения за показателями здоровья и уведомлениями в стиле умных часов, избавляющее от необходимости использовать проприетарное приложение/сервис.
Если вам нравится пользоваться GadgetBridge, здесь можно внести пожертвование на продолжение его разработки.
В GadgetBridge теперь есть поддержка Bangle.js, что позволяет подключать телефон к Bangle.js или любому другому Espruino-устройству с поддержкой Bluetooth. Сообщения, отправляемые на Bangle.js с телефона
Сообщения обёртываются в текст "\x10" + "GB(...)\n"., и если отправить его в обычную REPL, это выполнит функцию GB() с данными, которые были заданы в её первом аргументе. Сообщения, реализованные на текущий момент:
- t:"notify", id:int, src,title,subject,body,sender,tel:string – новое уведомление.
- t:"notify-", id:int – удаление уведомления.
- t:"alarm", d:[{h,m},...] – установка сигнала оповещения.
- t:"find", n:bool – поиск устройства.
- t:"vibrate", n:int – вибрация.
- t:"weather", temp,hum,txt,wind,loc – сообщение о погоде.
- t:"musicstate", state:"play/pause",position,shuffle,repeat – проигрывание/пауза музыки и так далее.
- t:"musicinfo", artist,album,track,dur,c(track count),n(track num) – музыкальный трек, проигрываемый в данный момент.
- t:"call", cmd:"accept/incoming/outgoing/reject/start/end", name: "name", number: "+491234" – вызов.
- t:"act", hrm:bool, stp:bool, int:int – включение счётчика шагов в реальном времени и пульсометра в реальном времени. Здесь int – это интервал отправки данных.
Примеры
GB({"t":"notify","id":1575479849,"src":"Hangouts","title":"A Name","body":"message contents"})
GB({"t":"musicstate","state":"play","position":0,"shuffle":1,"repeat":1})
GB({"t":"musicinfo","artist":"..","album":"..","track":"..","dur":241,"c":2,"n":2})
GB({"t":"call","cmd":"accept","name":"name","number":"+491234"})
Сообщения от Bangle.js на телефон
Любая строчка, начинающаяся с {, будет пропарсена GadgetBridge как JSON-данные. Чтобы отправить команду, просто воспользуйтесь Bluetooth.println(JSON.stringify(json)).
Доступные типы сообщений:
- t:"info", msg:"..." – показать на телефоне информационное всплывающее сообщение
- t:"warn", msg:"..." – показать на телефоне всплывающее сообщение с предупреждением
- t:"error", msg:"..." – показать на телефоне всплывающее сообщение об ошибке
- t:"status", bat:0..100, volt:float(voltage) – обновление статуса
- t:"findPhone", n:bool
- t:"music", n:"play/pause/next/previous/volumeup/volumedown"
- t:"call", n:"ACCEPT/END/INCOMING/OUTGOING/REJECT/START/IGNORE"
- t:"notify", id:int, n:"DISMISS,DISMISS_ALL/OPEN/MUTE/REPLY",
- Если REPLY, то можно использовать tel:string(optional), msg:string
- t:"ver", fw1:string, fw2:string – версии прошивки (отправляется в момент подключения)
- t:"act", hrm:int, stp:int – данные об активности (пульс, шаги с последнего вызова)
Например, вот это...
Bluetooth.println(JSON.stringify({t:"info", msg:"Hello World"}))
...покажет сообщение на экране телефона.
Сборка GadgetBridge
Документацию о GadgetBridge читайте тут.
Установив в систему инструменты для разработки на Android, для сборки вам останется сделать лишь следующее:
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk
См.также
Внешние ссылки