Раздел «Автоматические ответы» (replies)

Раздел «Автоматические ответы» (replies)

Разработчикам / Структура конфигурационного файла драйвера

В ряде случаев необходимо отправлять автоматические ответы при получении данных. Пример: отправка heartbeat в ответ на запрос от устройства или осуществление логина. Это реализуется при помощи автоматических ответов.

Структура:

MyDriver:
  replies:
    - template: <строка или массив данных>
      channel: <имя канала>
      feedback: <имя обратной связи>
      value: <значение>
      commands: <команды преобразования>
      map: <карта значений>

При получении данных, которые подпадают под template, сервер BOOCO отправляет команду и/или устанавливает обратную связь.

MyDriver:
 channels:
 - $heartbeat: none
   data: [0x27, 0x70, 0x44, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00]
 replies:
   - template: [0x27, 0x70, 0x44, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00]
     channel: heartbeat

В данном примере при получении строки, указанной в template, будет выполнена команда heartbeat и будет отправлен ответ.

Пример реализации авторизации по логину и паролю:

MyDriver:
 username: # определяем свойство, значение задается через веб-интерфейс 
 password: # определяем свойство, значение задается через веб-интерфейс 
 feedbacks:
 - logged: bool
   value: false
 channels:
   - $loginUser:
     data: '{username}' # Будет подставлено значение свойства username
   - $loginPassword:
     data: '{password}' # Будет подставлено значение свойства password
 replies:
   - template: /login:/
     channel: loginUser
   - template: /password:/
     channel: loginPassword
   - template: /QNET/
     value: true
     feedback: logged

В данном примере при отображении строчек login: и password: будут отправлены значения полей username и password соответственно (за это отвечают команды loginUser и loginPassword). Когда будет выведен текст QNET, значение обратной связи logged будет установлено в true.