Какой инструмент выбрать для автоматизации работы с VT100?

Доступ к оборудованию организован через интерфейс VT100. Требуется автоматизировать работу с эмулятором терминала.
Из особенностей задачи нужно отметить возможность контролировать заданный участок экрана, т.к. этот момент очень важен. Это необходимо для реагирования при появлении информации об аварии, а также считывания информации для получения данных. В каком-то смысле это попытка заменить человека перед терминалом для выполнения рутинных операций.
Вижу два варианта:
1) использовать программу-терминал с возможностью написания скриптов.
2) доработать open source эмулятор терминала под свои нужды.
Больше склоняюсь ко второму варианту, т.к. по сути в нем нет потенциальных ограничений. Работа будет вестись в Windows. Программировать могу под C/C++/Qt, PHP, Python.
Возможно есть инстумент, который при скармиливании ему потока данных VT100 строит картинку, которую можно считать. Обращаюсь к коллективному опыту, т.к. подходящего инструмента не нашел. Есть ли такие? Или на базе чего быстрее создать собственный инструмент? Предлагаю обсудить.
Если уж совсем помечтать, то желательно расширять логику работы автомата в скриптовом виде, т.к. перекомпилировать проект для изменения алгоритма не лучший вариант.
  • Вопрос задан
  • 391 просмотр
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Bombus, сначала вы делаете библиотеку, чтобы выдавать команды VT100 (это со стороны контроллера), а затем ищете решение отрендерить посылки VT100 в картинку и отслеживать изменения областей экрана. Я правильно понимаю?! Что-то это мне напоминает...

Если по хорошему, сделайте со стороны контроллера переключение режимов - данные/визуальный.
В визуальном режиме работайте посылками VT100 - красиво, наглядно, можно подключиться терминалом... В режиме данных обменивайтесь данными, хоть по modbus - надежно, машиночитаемо и т.д.
Для переключения режимов можно использовать какую нибудь текстовую последовательность, например ++++====++++=1 переход в визуальный режим, и ++++====++++=2 переход в режим данных.
Если режим данных у нас не основной, то из него можно выходить по какому нибудь таймауту, например после 5 минут без ответа на посылки. Ну и наоборот тоже...

И да, многие старые программы типа kermit подобным образом и переключали режимы работы...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы