4.1.4.5.14.4. Настройка обмена данными

 
Для настройки обмена данными между модулем MQTT Client и брокером необходимы следующие исходные данные:
 
1. Информация о брокере:
IP-адрес брокера;
номер TCP порта;
версия протокола MQTT;
имя пользователя и пароль.
 
2. Информация о данных, которых требуется получать от брокера или публиковать на брокер:
топик данных, по которому будет выполняться подписка;
тип данных.
 

Добавление ссылки на модуль MQTT

 
Чтобы добавить в проект таблицу описания топиков подписки, необходимую для описания топиков, подписка на которые выполняется на брокере:
 
Добавьте в проект ссылку на модуль MQTT.
 
 
Нажмите кнопку (Обновить) на панели инструментов или клавишу «F5» на клавиатуре. После чего в панели элементов отобразится таблица описания топиков подписки - TopicDescriptionTable.
 
 

Добавление и заполнение таблицы описания топиков подписки

 
Чтобы описать топики, подписка на которые выполняется на брокере, добавьте и заполните таблицу описания топиков подписки.
 
Таблицу описания топиков подписки можно заполнять как в Astra.AStudio, так и с помощью редакторов файлов формата *.csv
 
Чтобы описать топики подписки, выполните следующие действия:
 
1. Добавьте в проект таблицу TopicDescriptionTable.
 
2. На элементе TopicDescriptionTable нажмите кнопку .  В открывшемся окне укажите место хранения таблицы описания топиков подписки на диске, задайте имя таблицы описания топиков подписки, нажмите кнопку Открыть.
 
 
Таблица описания топиков подписки в формате *.csv будет создана. Если требуется открыть существующую таблицу описания топиков подписки, то выберите файл таблицы описания топиков подписки на диске и нажмите кнопку Открыть.
 
3. Перейдите в таблицу описания топиков подписки и для каждого топика подписки брокера заполните поля таблицы:
Поле
Значение
Идентификатор
Уникальный строковый идентификатор топика в таблице. Укажите произвольный идентификатор. В дальнейшем идентификатор будет использоваться при конфигурировании брокера.
Описание
Вспомогательный столбец, в который можно вносить любую информацию о топике.
Не используется модулем
Топик
Tопик брокера, на который будет выполняться подписка.
Качество обслуживания
Качество обслуживания, устанавливаемое публикациям:
«At most once» - брокер получит сообщение максимум один раз - доставка сообщения не гарантируется.
«At least once» - брокер получит сообщение минимум один раз - сообщения будут посылаться брокеру, пока MQTT Client не получит подтверждения доставки.
«Exactly once» - брокер получит сообщение гарантировано один раз

Настройка брокера

 
Чтобы настроить брокер, с которым требуется обмениваться данными:
 
1.В устройстве, в котором будет находится брокер. Должна быть предварительно настроена связь между устройством брокера и устройством клиента MQTT, в EthernerAdapter указаны ip адреса и принадлежность к сети.
 
 
2. В приложении устройства должны быть размещены типы с сигналами для передачи MQTT.
 
Для упрощения заполнения карты адресов модуля MQTT можно воспользоваться следующими  атрибутами:
Идентификатор топика подписки MQTT;
Протокольный тип MQTT;
Топик MQTT.
Во вкладке Атрибуты  вызовите контекстное меню и выберите пункт "Добавить новые атрибуты".
 
 
В появившемся окне выберите тип атрибута Протокольный тип MQTT и Топик MQTT.
 
 
Заполните атрибуты соответствующими значениями:
 
 
3. На элементе Карта адресов MQTT нажмите кнопку .В открывшемся окне укажите место хранения карты адресов на диске, задайте имя карты адресов, нажмите кнопку Открыть.
 
 
Карта адресов будет создана. Если требуется открыть существующую карту адресов, то выберите файл карты адресов на диске и нажмите кнопку Открыть. Заполните карту адресов.
 
4. В свойствах Карты адресов MQTT укажите:
 
 
Если все топики брокера имеют постоянную часть, то её можно указать в свойстве Префикс топика, а не прописывать в таблице описания топиков подписки. При указании Префикса топика данная строка будет добавлена ко всем топикам, которые определены в карте адресов. Например, Префикса топика имеет значение «Sensors.». Тогда подписка будет выполнена на топики брокера «Sensors.Temperature.Cmd», «Sensors.Pressure.Cmd» и т.д.
 
5. Перейдите в Карту адресов MQTT и настройте параметры адресов сигналов:
 
Параметр
Значение
Привязка
«непосредственно».
Идентификатор топика подписки
Идентификатор топика из таблицы описания топиков подписки
Топик
Переменная часть топика подписки.
Протокольный тип
Протокольный тип передаваемых данных.
 
6. Вернитесь в Устройство и добавьте Брокер MQTT.
 
 
7. В свойствах Брокера MQTT укажите:
 
Свойство
Значение
Карта адресов
Карта адресов, добавленная в Приложение устройства.
Номер TCP порта
Порт брокера.