Flexible драйвер

Flexible драйверы устройств выступают в роли "комплекта создания драйверов". Это позволяет подключать устройства, работающие по проприетарным протоколам, при помощи глубокой настройки системы, не прибегая к разработке определенного драйвера устройства на языке программирования Java.

Применимость flexible драйвера

Flexible драйвер подходит для подключения нового устройства или источника данных, которые отвечают следующим критериям:

  • Коммуникация осуществляется через TCP, UDP или последовательный порт локальной машины

  • Устройство либо принимает соединения от AggreGate Server, либо устанавливает соединения с сервером самостоятельно

  • AggreGate Server выступает как клиент в коммуникациях (т.е. отправляет команды и получает ответы и/или получает асинхронные сообщения с устройства), а устройство выступает в роли сервера

  • Протокол устройства не использует "транзакции", т.е. цепочки отдельных сообщений, действующих как отдельный консолидированный блок данных протокола (хотя  в отдельных случаях поддержка транзакций все же реализуется)

  • Протокол устройства не предполагает парсинг потока входных данных в отдельные блоки данных протокола в зависимости от времени задержки (как иногда происходит в протоколах последовательной передачи данных)

Flexible драйвер работает в следующих случаях:

  • Протокол устройства - ASCII (текстовый) или бинарный

  • В основе протокола:

    • синхронные сообщения от устройства

    • команды сервера с последующими ответами устройства

    • одновременно синхронные команды/ответы и асинхронные сообщения от устройства (комбинированный режим)

  • Ответы устройства могут быть соотнесены с командами сервера двумя способами:

    • устройство может отвечать на команды в той же последовательности, в которой их посылает сервер

    • команды сервера и ответы устройства могут иметь ID (уникальные для каждой сессии и соотнесенные друг с другом). В этом случае устройство может отвечать на команды сервера в произвольном порядке

Flexible драйвер устройств - расширенный инструмент, который требует хорошего понимания единой модели данных платформы, понятий таблицы данных, переменные, функции, события, язык выражений, устройства, а также общей архитектуры драйверов устройств.

Информация о драйвере

ID плагина драйвера:

com.tibbo.linkserver.plugin.device.flexible

Общие настройки

Общие настройки драйвера включают Таблицу настроек, которая регулирует взаимодействие с устройствами, устанавливающими входящие соединения с AggreGate Server:

Свойство

Описание

Description

Описание поставщика/модели/типа/версии устройства, обрабатываемого данной записью.

Protocol

Протокол устройства: TCP или UDP.

Port

TCP/UDP порт для приема входящих подключений.

Input Splitter Mode

Если выбрана опция Попытка разделить на каждом байте, драйвер "подает" буфер входных данных для выполнения Выражения разделителя входного потока на каждом байте полученных от устройства данных. Если выбрана опция Попытка разделить в конце блока, Выражение разделителя входного потока вычисляется только однажды, после получения блока байтов от устройства с использованием единственной операции чтения сокета Java/OС.

Опция Попытка разделить в конце блока может повысить производительность, т.к. количество попыток анализа буфера входящих данных значительно сокращается.

Важно понимать, что входящие блоки данных, полученные из входного сокета, не связаны напрямую с блоками данных протокола (PDU). Сетевая и операционная системы (как на стороне устройства, таки и на стороне AggreGate Server) могут случайным образом разбивать или объединять блоки данных, отправленных самим устройством.

Нельзя гарантировать, что каждый PDU, отправленный устройством в одной операции, будет получен драйвером в одном блоке данных.

Input Stream Splitter Expression

Используется для извлечения команд из буфера входящих данных. Возвращает количество первых байтов в буфере, которые образуют полностью определенный блок протокола, либо null, если буфер не содержит полных блоков протокола.

Encode Expression

Осуществляет кодировку исходящей команды перед отправкой на сокет или последовательный порт. Возвращает строку с закодированной командой. Может использоваться для добавления префиксов, CRC или любого другого способа кодирования команд. Должно ссылаться на оригинальную команду через переменную среды command.

Decode Expression

Декодирует входящие команды после извлечения из потока входящих данных с помощью Выражения разделитель входного потока. Может удалять префиксы и суффиксы команд, проверять CRC или проверять целостность команды любым другим способом. Должно возвращать преобразованную команду в виде строки, либо NULL, если команда неверная и должна быть отброшена.

Device ID Detection Method Expression

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

  • Если выражение возвращает 0, ID устройства будет обнаруживаться синхронно путем отправки специальной команды по определению присвоенного устройству ID в соответствии с настройками Выражения чтения ID устройства  и Выражения результата чтения ID устройства

  • Если выражение возвращает 1, ID устройства будет обнаруживаться асинхронно из первого сообщения от устройства, которое будет проанализировано с помощью Выражения результата чтения ID устройства

Read Device ID Expression

Это выражение должно возвращать команду для отправки на устройство, чтобы получить ID этого устройства.

Device ID Processing Expression

Выражение используется, чтобы анализировать ответ устройства на Выражение чтения ID устройства и возвращать ID устройства.

Ответ доступен в виде строки, содержащейся в переменной окружения command. Выражение может ссылаться на него через ссылку {env/command}.

Encoding

Кодировка строк, используемая драйвером.

Настройки уровня пользователя

Не определены.

Свойства аккаунта устройства

Свойства соединения

Свойства соединения определяют, как AggreGate Server общается с устройством. Доступ в этим свойствам можно получить через действие Редактировать свойства аккаунта устройства контекста Device. Доступны следующие свойства соединения:

Свойство

Описание

Connection

Тип соединения: Исходящее (драйвер сам устанавливает соединение) или Входящее (одно из входящих соединений устройства будет относиться к аккаунту этого устройства).

Device ID

ID аккаунта данного устройства, используемый для соотнесения с входящим соединением устройства.

Mode

Способ связи устройств: через TCP, UDP или последовательный порт. Используется только для исходящих соединений устройства.

IP address or Host Name

Адрес устройства (для связи через TCP и UDP). Используется только для исходящих соединений устройства.

Port

Порт устройства для связи через TCP и UDP. Используется только для исходящих соединений устройства.

Baud Rate

Скорость передачи данных (для связи через последовательный порт).

Incoming Flow Control

Тип управления входящим потоком: нет, CTS/RTS или XON/XOFF (для связи через последовательный порт).

Outgoing Flow Control

Тип управления исходящим потоком: нет, CTS/RTS или XON/XOFF (для связи через последовательный порт).

Data Bits

Биты данных (для связи через последовательный порт).

Stop Bits

Стоповые биты (для связи через последовательный порт).

Parity

Четность (для связи через последовательный порт).

Timeout

Таймаут команды (по умолчанию 30 секунд). Если за это время не получен ответ, соответствующий отправленной сервером команде, команда считается "неотвеченной", и ее выполнение завершается ошибкой.

Обмен командами

Эта таблица настраивает базовые параметры обмена блоками протокольных данных с устройством.

Приведенные ниже настройки обмена командами будут применяться только для Исходящих соединений устройства.

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

Свойство

Описание

Input Stream Splitter Expression

Используется для извлечения команд из буфера входящих данных. Возвращает количество первых байтов в буфере, которые образуют полностью определенный блок протокола, либо null, если буфер не содержит полных блоков протокола.

Input Splitter Mode

Если выбрана опция Попытка разделить на каждом байте, драйвер "подает" буфер входных данных для выполнения Выражения разделителя входного потока на каждом байте полученных от устройства данных. Если выбрана опция Попытка разделить в конце блока, Выражение разделителя входного потока вычисляется только однажды, после получения блока байтов от устройства с использованием единственной операции чтения сокета Java/OС.

Опция Попытка разделить в конце блока может повысить производительность, т.к. количество попыток анализа буфера входящих данных значительно сокращается.

Важно понимать, что входящие блоки данных, полученные из входного сокета, не связаны напрямую с блоками данных протокола (PDU). Сетевая и операционная системы (как на стороне устройства, таки и на стороне AggreGate Server) могут случайным образом разбивать или объединять блоки данных, отправленных самим устройством.

Нельзя гарантировать, что каждый PDU, отправленный устройством в одной операции, будет получен драйвером в одном блоке данных.

Encode Expression

Осуществляет кодировку исходящей команды перед отправкой на сокет или последовательный порт. Возвращает строку с закодированной командой. Может использоваться для добавления префиксов, CRC или любого другого способа кодирования команд. Должно ссылаться на оригинальную команду через переменную среды command.

Decode Expression

Декодирует входящие команды после извлечения из потока входящих данных с помощью Выражения разделитель входного потока. Может удалять префиксы и суффиксы команд, проверять CRC или проверять целостность команды любым другим способом. Должно возвращать преобразованную команду в виде строки, либо NULL, если команда неверная и должна быть отброшена.

Encoding

Кодировка строк, используемая драйвером.

Операции

Таблица содержит различные выражения, которые определяют базовые операции для Flexible драйвера.

Свойство

Описание

Asynchronous Command Detector Expression

Проверяет содержимое декодированной команды и возвращает TRUE, если это асинхронное сообщение от устройства (событие, обновление значения и пр.), либо FALSE, если это синхронный ответ на предварительно отправленную сервером команду.

Event/Variable Update Qualifier Expression

Проверяет содержимое асинхронного сообщения от устройства и возвращает 0, если это событие, и 1, если это инициированное устройством обновление значения переменной.

Command ID Expression

Используется, чтобы узнать уникальный ID команды в рамках текущей сессии. Это можно сделать либо путем генерирования ID (произвольно, последовательно и пр.), либо проверкой данных Команды, доступных через переменную среды command. ID, полученный в результате этого выражения, будет позднее соотнесен с ID, полученными в результате Выражения ID ответа, чтобы найти ответ на определенную команду.

Если в коммуникационном протоколе не используются ID команды/ответа, настройте данное выражение и Выражение ID ответа на возврат какого-либо статического значения, например, "id". Это соотнесет первый полученный ответ с первой отправленной командой, и т.д.

Reply ID Expression

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

Если в коммуникационном протоколе не используются ID команды/ответа, настройте данное выражение и Выражение ID команды на возврат какого-либо статического значения, например, "id". Это соотнесет первый полученный ответ с первой отправленной командой, и т.д.

Variable Name Expression

Используется для извлечения имени измененной переменной AggreGate Server из команды, которая была классифицирована как обновление значения переменной устройством.

Variable Timestamp Expression

Используется для извлечения даты/времени изменения переменной устройства из команды, которая была классифицирована как обновление значения переменной устройством.

Variable Quality Expression

Используется для извлечения свойства нового значения из команды, которая была классифицирована как обновление значения переменной устройством.

Variable Value Expression

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

Event Name Expression

Используется для извлечения имени (типа) события AggreGate Server  из команды, которая была классифицирована как асинхронное оповещение от устройства.

Event Timestamp Expression

Используется для извлечения даты/времени события устройства из команды, которая была классифицирована как асинхронное оповещение от устройства.

Event Level Expression

Используется для извлечения уровня события AggreGate Server  из команды, которая была классифицирована как асинхронное оповещение от устройства. Должно возвращать целочисленное значение.

Event Data Expression

Используется для извлечения данных, относящихся к событию, из команды, которая была классифицирована как асинхронное оповещение от устройства. Должно возвращать таблицу данных.

Variable Definitions Expression

Выражение должно получать список доступных переменных от устройства и возвращать его как таблицу данных. Обычно ссылается на какой-либо набор правил скрипта или модели, который, в свою очередь, вызывает функцию Отправлять команду для получения частей метаданных устройства через специфичные для устройства команды.

Каждый ряд в результирующей таблице данного выражения будет затем преобразован в определение отдельной переменной, как описано в разделе Работа с динамическими метаданными.

Function Definitions Expression

Выражение должно получать список доступных функций от устройства и возвращать его как таблицу данных. Обычно ссылается на какой-либо набор правил скрипта или модели, который, в свою очередь, вызывает функцию Отправлять команду для получения частей метаданных устройства через специфичные для устройства команды.

Каждый ряд в результирующей таблице данного выражения будет затем преобразован в определение отдельной функции, как описано в разделе Работа с динамическими метаданными.

Event Definitions Expression

Выражение должно получать список доступных типов событий от устройства и возвращать его как таблицу данных. Обычно ссылается на какой-либо набор правил скрипта или модели, который, в свою очередь, вызывает функцию Отправлять команду для получения частей метаданных устройства через специфичные для устройства команды.

Каждый ряд в результирующей таблице данного выражения будет затем преобразован в определение отдельного события,  как описано в разделе Работа с динамическими метаданными.

Start Synchronization Expression

Выражение вычисляется в начале каждого цикла синхронизации устройств. Может выполнять часть инициализации контекста драйвера и/или устройства.

Результат выражения игнорируется.

Finish Synchronization Expression

Выражение вычисляется в конце каждого цикла синхронизации устройств. Может выполнять часть очистки контекста драйвера и/или устройства.

Результат выражения игнорируется.

Connect Expression

Выражение вычисляется после удачного подключения устройства. Обычно используется для реализации входа устройства в систему и других действий по аутентификации/авторизации через вызов функции Отправлять команду для обмена данными с устройством.

Результат выражения игнорируется..

Disconnect Expression

Выражение вычисляется после удачного отключения устройства.

Результат выражения игнорируется.

Статические переменные

Таблица определяет, какие переменные устройств будут доступны всегда, в дополнение в полученным от устройства во время чтения динамических метаданных.

Каждая переменная определяется следующими параметрами:

Параметр

Описание

Name

Имя переменной.

Description

Удобочитаемого для человека описание переменной

Format

Формат переменной. Более подробно см. Формат.

Readable

Флаг, показывающий, что переменная читается.

Writable

Флаг, показывающий, что переменная записывается.

Help

Подробное описание переменной.

Group

Группа переменной либо NULL, если переменная не входит ни в одну группу.

Read Request Expression

Выражение должно возвращать данные, которые буду отправлены на устройство для запроса текущего значения переменной.

Должно возвращать строку. К этой строке сначала применяют Выражение кодирования, а результат затем переводится в массив байтов и отправляется на устройство.

Преобразование из строки в массив байтов использует кодировку UTF-8.

Read Result Processing Expression

Выражение преобразует данные, вернувшиеся от устройства (полученные через сокет или последовательный порт) в таблицу данных, представляющую значение переменной устройства.

Полученные от устройства данные доступны как строка в переменной среды command. Выражение может ссылаться на нее через {env/command}.

Эта строка получается в результате Выражения раскодирования, которое преобразует необработанные данные, полученные от устройства.

Таблица данных, представляющая значение переменной, обычно создается при помощи функции языка выражений table(). Функция table() должна использовать формат переменной, который можно получить с помощью функции языка выражений variableFormat().

Write Request Expression

Выражение должно возвращать данные, которые будут отправлены на устройство для добавления нового значения переменной, измененной на стороне сервера. Фактически, эти данные содержат значение обновленной переменной, кодированные в соответствии с протоколом устройства.

Обновленное значение переменной доступно как таблица данным по умолчанию во время вычисления выражения.

Выражение должно возвращать строку. К этой строке сначала применяют Выражение кодирования, а результат затем переводится в массив байтов и отправляется на устройство.

Преобразование из строки в массив байтов использует кодировку UTF-8.

Write Result Processing Expression

Выражение анализирует данные, вернувшиеся с устройства на запрос записи переменных (полученные через сокет или последовательный порт).

Цель выражения - понять успешность операции записи.

Выражение должно возвращать текст об ошибке записи в строковом формате, либо NULL, если операция завершилась успешно.

Полученный от устройства ответ доступен как строка в переменной среды command. Выражение может ссылаться на нее через {env/command}.

Эта строка получается в результате Выражения раскодирования, которое преобразует необработанные данные, полученные от устройства.

Статические функции

Таблица определяет, какие функции устройств будут доступны всегда, в дополнение в полученным от устройства во время чтения динамических метаданных.

Каждая функция определяется следующими параметрами:

Параметр

Описание

Name

Имя функции.

Description

Удобочитаемого для человека описание функции.

Input Format

Входной формат функции. Подробнее см. Формат.

Output Format

Выходной формат функции. Подробнее см. Формат.

Help

Подробное описание функции.

Group

Группа функции либо NULL, если функция не входит ни в одну группу.

Execution Request Expression

Выражение должно возвращать данные, которые будут отправлены на устройство, чтобы выполнить операцию устройства. Фактически, эти данные содержат входные параметры операции (функции), кодированные в соответствии с протоколом устройства.

Входные параметры операции (функции) доступны как таблица данных по умолчанию во время вычисления выражения.

Выражение должно возвращать строку. К этой строке сначала применяют Выражение кодирования, а результат затем переводится в массив байтов и отправляется на устройство.

Преобразование из строки в массив байтов использует кодировку UTF-8.

Execution Result Processing Expression

Выражение преобразует выходные данные операции устройства (полученные через сокет или последовательный порт) в таблицу данных, представляющую выходные данные функции устройства на стороне сервера.

Полученные от устройства данные доступны как строка в переменной среды command. Выражение может ссылаться на нее через {env/command}.

Эта строка получается в результате Выражения раскодирования, которое преобразует необработанные данные, полученные от устройства.

Таблица данных, представляющая выходные данные функции, обычно создается при помощи функции языка выражений table(). Функция table() должна использовать формат функции контекста, который можно получить с помощью функции языка выражений functionOutputFormat().

Статические события

Таблица определяет, какие события устройства будут доступны всегда, в дополнение в полученным от устройства во время чтения динамических метаданных.

Каждое событие определяется следующими параметрами:

Параметр

Описание

Name

Имя события

Description

Удобочитаемого для человека описание события.

Format

Формат события. Подробнее см. Формат.

Help

Подробное описание события.

Level

Уровень события по умолчанию.

Group

Группа события, либо NULL, если событие не входит ни в одну группу.

Динамические переменные

Таблица определяет выражения, которые будут использоваться для извлечения параметров определения переменной из рядов результирующей таблицы Выражения определения переменных. Таким образом, она используется для преобразования каждого ряда этой таблицы в отдельное определение переменной.

Параметр

Описание

Name Expression

Выражение возвращает имя переменной.

Description Expression

Выражение возвращает удобочитаемое для человека описание переменной.

Format Expression

Выражение возвращает строковое представление формата переменной, либо null, если ее формат динамический. Более подробно см. раздел Кодирование формата таблицы.

Строка формата может использовать видимые или невидимые разделители.

Readable Expression

Выражение возвращает флаг, указывающий, что переменная читается.

Writable Expression

Выражение возвращает флаг, указывающий, что переменная пишется.

Help Expression

Выражение возвращает подробное описание переменной.

Group Expression

Выражение возвращает группу переменной либо NULL, если переменная не входит ни в одну группу.

Read Request Expression Constructor

Это выражение должно возвращать текст другого выражения.

Это другое, результирующее выражение, должно возвращать данные, которые будут отправлены на устройство для запроса текущего значения переменной.

Выражение должно возвращать строку. К этой строке сначала применяют Выражение кодирования, а результат затем переводится в массив байтов и отправляется на устройство.

Преобразование из строки в массив байтов использует кодировку UTF-8.

Read Result Processing Expression Constructor

Это выражение должно возвращать текст другого выражения.

Это другое, результирующее выражение преобразует вернувшиеся от устройства данные (полученные через сокет или последовательный порт) в таблицу данных, представляющую значение переменной устройства.

Полученные от устройства данные доступны как строка в переменной среды command. Выражение может ссылаться на нее через {env/command}.

Эта строка получается в результате Выражения раскодирования, которое преобразует необработанные данные, полученные от устройства.

Таблица данных, представляющая значение переменной, обычно создается при помощи функции языка выражений table(). Функция table() должна использовать формат, который можно получить с помощью функции языка выражений variableFormat().

Write Request Expression Constructor

Это выражение должно возвращать текст другого выражения.

Это другое, результирующее выражение должно возвращать данные, которые будут отправлены на устройство для добавления нового значения переменной, измененной на стороне сервера. Фактически, эти данные содержат значение обновленной переменной, кодированное в соответствии с протоколом устройства.

Обновленное значение переменной доступно как таблица данных по умолчанию во время вычисления выражения.

Выражение должно возвращать строку. К этой строке сначала применяют Выражение кодирования, а результат затем переводится в массив байтов и отправляется на устройство.

Преобразование из строки в массив байтов использует кодировку UTF-8.

Write Result Processing Expression Constructor

Это выражение должно возвращать текст другого выражения.

Это другое, результирующее выражение анализирует вернувшиеся с устройства данные на запрос записи переменной (полученные через сокет или последовательный порт).

Цель выражения - понять успешность операции записи.

Выражение должно возвращать текст об ошибке записи в строковом формате, либо NULL, если операция завершилась успешно.

Полученный от устройства ответ доступен как строка в переменной среды command. Выражение может ссылаться на нее через {env/command}.

Эта строка получается в результате Выражения раскодирования, которое преобразует необработанные данные, полученные от устройства.

Динамические функции

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

Параметр

Описание

Name Expression

Выражение возвращает имя функции.

Description Expression

Выражение возвращает удобочитаемое для человека описание функции.

Input Format Expression

Выражение возвращает строковое представление входного формата функции, либо null, если ее входной формат динамический. Более подробно см. раздел Кодирование формата таблицы.

Строка формата может использовать видимые или невидимые разделители.

Output Format Expression

Выражение возвращает строковое представление выходного формата функции, либо null, если ее выходной формат динамический. Более подробно см. раздел Кодирование формата таблицы.

Строка формата может использовать видимые или невидимые разделители.

Help Expression

Выражение возвращает подробное описание функции.

Group Expression

Выражение возвращает группу функции, либо NULL, если переменная не входит ни в одну группу

Execution Request Expression Constructor

Это выражение должно возвращать текст другого выражения.

Это другое, результирующее выражение, должно возвращать данные, которые будут отправлены на устройство для выполнения операции устройства. фактически, эти данные содержат входные параметры операции (функции), кодированные в соответствии с протоколом устройства.

Входные параметры операции (функции) доступны как таблица данных по умолчанию во время вычисления выражения.

Выражение должно возвращать строку. К этой строке сначала применяют Выражение кодирования, а результат затем переводится в массив байтов и отправляется на устройство.

Преобразование из строки в массив байтов использует кодировку UTF-8.

Execution Result Processing Expression Constructor

Это выражение должно возвращать текст другого выражения.

Это другое, результирующее выражение преобразует выходные данные операции устройства (полученные через сокет или последовательный порт) в таблицу данных, представляющую результат функции устройства на стороне сервера.

Полученный от устройства ответ доступен как строка в переменной среды command. Выражение может ссылаться на нее через {env/command}.

Эта строка получается в результате Выражения раскодирования, которое преобразует необработанные данные, полученные от устройства.

Таблица данных, представляющая выходные данные функции, обычно создается при помощи функции языка выражений table(). Функция table() должна использовать формат функции контекста, который можно получить с помощью функции языка выражений functionOutputFormat().

Динамические события

Таблица определяет выражения, которые будут использоваться для извлечения параметров определений событий из рядов таблицы, полученной в результате Выражение определения событий. Таким образом, она используется для преобразования каждого ряда этой таблицы в отдельное определение события.

Параметр

Описание

Name Expression

Выражение возвращает имя события.

Description Expression

Выражение возвращает удобочитаемое для человека описание события.

Format Expression

Выражение возвращает строковое представление формата события, либо null, если его формат динамический. Более подробно см. раздел Кодирование формата таблицы.

Строка формата может использовать видимые или невидимые разделители.

Help Expression

Выражение возвращает подробное описание события.

Level Expression

Выражение возвращает уровень события по умолчанию.

Group Expression

Выражение возвращает группу события, либо NULL, если событие не входит ни в одну группу

Активы device

Драйвер не поддерживает активы.

Настройки device

Аккаунт Flexible устройства предлагает комбинацию из двух наборов переменных устройств:

  • Переменные, определяемые вручную в таблице Статические переменные

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

Операции device

Аккаунт Flexible устройства предлагает комбинацию из двух наборов функций устройств:

  • Функции, определяемые вручную в таблице Статические функции

  • Функции, чьи определения динамически получаются с устройства в соответствии с правилами, описанными в разделе Работа с динамическими метаданными

События device

Аккаунт Flexible устройства предлагает комбинацию из двух наборов событий устройств:

  • События, определяемые вручную в таблице Статические события

  • События, чьи определения динамически получаются с устройства в соответствии с правилами, описанными в разделе Работа с динамическими метаданными

Подключение

Драйвер переводит устройство в режим онлайн, если:

  • TCP соединение с устройством успешно установлено (для режима TCP)

  • Последовательный порт успешно открыт (для последовательного режима)

Синхронизация

Подробно о синхронизации можно прочитать в описании flexible драйвера устройств.