Работа с потоками данных

Обычно Flexible драйвер работает с двумя потоками данных:

  • Исходящий поток данных (данные, исходящие через TCP соединение, последовательность отправленных UDP датаграмм или данные, отправленные через порт последовательного подключения)
  • Входящий поток данных (данные, входящие  через TCP соединение, последовательность входящих UDP датаграмм или данные, полученные через порт последовательного подключения)

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

После успешного завершения стадии подключения, драйвер выполняет два параллельных действия:

  • Запись данных в исходящий поток об:
    • Операциях чтения/записи переменных устройства
    • Операциях выполнения функций
    • Других стадиях цикла синхронизации (чтение метаданных, синхронизация старта/остановки и пр.)
  • Чтение данных из входящего потока, расщепление их на протокольные блоки и соотнесение этих блоков с:
    • Ответами на ранее отправленные команды (команды чтения/записи переменных, команды выполнения функций, команды, отправленные на других стадиях синхронизации, например, чтение метаданных)
    • Асинхронными уведомлениями устройств, которые преобразуются в события устройства