Транспортная система сообщений
Транспортная система сообщений позволяет приборам обмениваться информацией между собой через каналы сотовой связи. Это даёт распределённое управление процессом, в котором участвует несколько машин.
Пример: комбайн выгрузил зерно в опознанный по метке грузовик; прибор на комбайне отправляет метку и массу выгрузки прибору на элеваторе, и там при взвешивании выполняется сверка. Расхождение видно сразу, а не в конце смены.
Функционал доступен на Galileosky 7x с прошивки 45.0 и на Galileosky 10 с прошивки 1.0.
Что нужно
Заголовок раздела «Что нужно»- Все обменивающиеся приборы зарегистрированы под одной учётной записью, и она для них владелец. Приборы в совместном использовании по шине работать не смогут.
- На приборах загружены алгоритмы EasyLogic с блоками «Выполнить событие» и «Получить событие».
⚙ Открыть EasyLogic
Регистрация приборов и проверка владельца — в удалённом доступе, см. «Удалённое конфигурирование».
Подключение к серверу событий
Заголовок раздела «Подключение к серверу событий»Настраивать подключение вручную не нужно. Адрес сервера событий (
c.7gis.ru, порт32422), публичный токен доступа и секретный ключ уже прошиты в приборе по умолчанию. Шина начинает работать, как только у прибора появляется интернет и корректный IMEI, — отдельного выключателя нет. ВводитьBROKERURL,BROKERJWT0…2иBROKERSEEDпри обычной работе не надо: команды ниже нужны только тем, кто поднимает собственный сервер событий или работает с выделенной учётной записью.
| Команда | Назначение |
|---|---|
BROKERURL <host>:<port>[,<user>,<pass>] | адрес и порт сервера событий, при необходимости — учётные данные |
BROKERJWT0, BROKERJWT1, BROKERJWT2 | три части JWT-токена доступа, до 255 символов каждая |
BROKERSEED <seed> | секретный ключ, до 64 символов |
BROKERURLBROKERURL=c.7gis.ru:32422Токен не помещается в одну команду, поэтому разрезан на три части: отправьте
BROKERJWT0, BROKERJWT1 и BROKERJWT2 подряд — прибор склеит их сам.
Изменение адреса или ключа вызывает переподключение к серверу.
Все команды должны быть выполнены на всех приборах одной группы проектов.
⚙ Открыть команды
Изменение относительно старой документации. Старая дока предписывает выполнить
BROKERURL c.7gis.ru,32422и вручную прописать публичный токен и ключ. В прошивке 48.28 адрес, порт, публичный токен и ключ уже заданы по умолчанию — вручную их задавать не нужно. Кроме того, порт отделяется двоеточием, а не запятой: после запятых команда ждёт логин и пароль.
Описание события
Заголовок раздела «Описание события»В блоке «Выполнить событие» заполняются все поля:
| Поле | Что задаёт |
|---|---|
| Группа | наименование группы проектов, в рамках которой выполняется событие |
| Проект | наименование проекта |
| Имя события | по нему получатель подписывается на событие |
| Область видимости | «Внешнее» — передача события в рамках проекта |
| Время жизни, мс | сколько сообщение живёт в транспортной системе |
| Способ доставки | Publish/Subscribe или Request/Response |
Разделение на группы и проекты — это гибкость адресации, а не изоляция: приборы из разных проектов одной группы могут обмениваться событиями. Например, проект 1 — управление освещением, проект 2 — вентиляция; обе группы устройств функционально изолированы, но общаются в рамках общей группы проектов.
Способы доставки
Заголовок раздела «Способы доставки»Publish/Subscribe — «публикация-подписка». Прибор выполняет событие, а те, кому оно нужно, подписаны на него по имени; подписки хранятся на сервере событий. Выход блока идёт по ветке Верно, если информация о событии доставлена на сервер в течение времени жизни, иначе — Ложно.
Request/Response — «запрос-ответ». После выполнения события прибор отправляет его на сервер, тот сразу пересылает ожидающему прибору, и ответное сообщение возвращается по цепочке инициатору. Ответ пришёл в течение времени жизни — ветка Верно, не пришёл — Ложно.
Publish/Subscribe подтверждает только доставку до сервера, Request/Response — доставку до конкретного получателя. Если важно знать, что вторая машина приняла данные, берите Request/Response.
Приём события
Заголовок раздела «Приём события»На приборе-получателе алгоритм строится вокруг блока «Получить событие» с тем же именем события, группой и проектом. Дальше событие обрабатывается обычными блоками EasyLogic — записать точку, включить выход, отправить тег на сервер.
Проверка
Заголовок раздела «Проверка»- Убедитесь, что оба прибора зарегистрированы под одной учётной записью и она для них владелец.
- Выполните
BROKERURLбез параметров на обоих приборах — адрес и порт должны совпадать. - Запустите алгоритм-отправитель и посмотрите, по какой ветке пошёл блок «Выполнить событие»: ветка «Ложно» означает, что событие не доставлено в отведённое время — проверьте связь и время жизни сообщения.
См. также: Вкладка «EasyLogic» · Удалённое конфигурирование прибора · Менеджер устройств