Dynamic Driver: драйверы устройств

Dynamic Driver — часть U-Logic (редактор программы управления), через которую программа управляет оборудованием зала: матрицами, звуковыми процессорами, кодеками, камерами, проекторами. Программа не отправляет устройству байты сама. Она называет команду по имени («подать вход 2 на выход 1»), а драйвер переводит её на язык конкретного устройства и разбирает его ответы.

Раздел нужен двум читателям:

  • интегратору, который собирает программу зала из готовых драйверов: как подключить устройство, отправить команду и получить ответ;

  • разработчику драйвера, у которого для устройства драйвера ещё нет: как написать драйвер в редакторе или с помощью ИИ.

Как это устроено

Как эта часть связана с остальной системой — на странице «Как устроена система».

        flowchart LR
  P["Программа<br/>(кнопка панели, сценарий)"] -->|команда и параметры| C["device - command"]
  C --> D["Подключение<br/>Device Connection:<br/>драйвер + транспорт"]
  D -->|байты или запрос| U["Устройство"]
  U -->|ответ| D
  D -->|распознанный ответ| L["device - response - listener"]
  L --> V["Программа<br/>(вид на панели)"]
    
  • Драйвер — описание протокола устройства: какие у него команды, какие параметры они принимают и как понимать ответы. Драйверы хранятся на контроллере, их создают и правят в редакторе драйверов.

  • Подключение (узел-конфигурация Device Connection) соединяет драйвер с конкретным устройством. Это выбранный драйвер плюс транспорт (способ связи с устройством: TCP, UDP, HTTP, Telnet, SSH, RS-232 и другие), адрес и порт.

  • device - command отправляет через подключение команду драйвера с параметрами.

  • device - response - listener принимает разобранные драйвером ответы и раскладывает их по выходам (например, чтобы показать на панели, какой вход сейчас на экране).

Окна всех этих узлов описаны на странице «Узлы Dynamic Driver».

С чего начать

Задача

Куда идти

Драйвер для устройства уже есть — подключить устройство и управлять им из программы

«Узлы Dynamic Driver», раздел «По шагам»; затем «Команды устройствам и ответы»

Добавить готовый драйвер, посмотреть или изменить его код

«Редактор драйверов»

Проверить связь с устройством до написания драйвера

«Узлы Dynamic Driver», раздел «Тестовые узлы»

Написать драйвер с помощью ИИ по документации протокола

«Драйвер с помощью ИИ»

Написать драйвер самому

«Как написать драйвер», «Ответы устройства», «Расширенные возможности», «Примеры драйверов»

Найти в разделе

Ищете

Где

Подключить устройство: Device Connection, выбор драйвера и транспорта

Device Connection

Транспорт TCP, UDP, HTTP, Telnet, SSH, RS232, IR, WebSocket

Транспорты

Отправить команду из потока, msg.command и msg.parameters

device - command, Параметры команд из потока

Принять ответ устройства в потоке

device - response - listener

Проверить связь с устройством без драйвера

Тестовые узлы

Из чего состоит драйвер: metadata, parameters, static commands, методы команд, initialize

«Как написать драйвер»

Разбор ответов: static responses, parseResponse, publishResponse

«Ответы устройства»

Вход на устройство: auth-gate (AuthGate), requiresAuth, _authMarkReady

Вход на устройство

Драйвер отправляет команду сам: publishCommand с параметрами

Инициирование команд и publishCommand

Периодический опрос: KeepAlive

Автоматический Keep-Alive

HTTP- и веб-API-драйверы

HTTP-драйверы

Двоичные протоколы, контрольные суммы

Сложные протоколы

Несколько устройств на одном подключении

Несколько устройств

Таймеры и сокеты драйвера: onDestroy

Управление ресурсами

Память U-Logic (контекст) в драйвере и в окнах подключения

Доступ к контексту U-Logic

Параметры подключения изменились во время работы

Динамическое обновление параметров

Добавить, изменить, удалить драйвер; скачать и загрузить проект

«Редактор драйверов», «Проекты: загрузить и скачать»

Готовые драйверы для образца

«Примеры драйверов»

Учебный проект «Демо-зал» уже содержит драйверы четырёх устройств и подключения к ним. Начните знакомство с него: «Программа «Демо-зал»: обзор».