Разработчикам / Структура конфигурационного файла драйвера
В ряде случаев необходимо отправлять автоматические ответы при получении данных.
Пример: отправка 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
.