Перейти к содержимому
Черновик: материал сгенерирован и ещё не вычитан.

Транспортная система сообщений

Транспортная система сообщений позволяет приборам обмениваться информацией между собой через каналы сотовой связи. Это даёт распределённое управление процессом, в котором участвует несколько машин.

Пример: комбайн выгрузил зерно в опознанный по метке грузовик; прибор на комбайне отправляет метку и массу выгрузки прибору на элеваторе, и там при взвешивании выполняется сверка. Расхождение видно сразу, а не в конце смены.

Функционал доступен на 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 символов
BROKERURL
BROKERURL=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 — записать точку, включить выход, отправить тег на сервер.

  1. Убедитесь, что оба прибора зарегистрированы под одной учётной записью и она для них владелец.
  2. Выполните BROKERURL без параметров на обоих приборах — адрес и порт должны совпадать.
  3. Запустите алгоритм-отправитель и посмотрите, по какой ветке пошёл блок «Выполнить событие»: ветка «Ложно» означает, что событие не доставлено в отведённое время — проверьте связь и время жизни сообщения.

См. также: Вкладка «EasyLogic» · Удалённое конфигурирование прибора · Менеджер устройств