Я пишу сценарий автоматизации, который работает во встроенной цели Linux.Практическое руководство. Имитация ввода клавиш в оболочке приложения, запущенного во встроенной цели.
Часть скрипта включает запуск приложения на цель и получение некоторых данных со стандартного вывода. Stdout - это соединение терминала ssh, которое у меня есть для цели.
Однако эти данные доступны на стандартном выводе только в том случае, если нажаты некоторые клавиши, и нажатие клавиши должно выполняться на клавиатуре, подключенной к встроенной цели, а не на хост-системе, из которой у меня есть ssh'd цель. Есть ли способ имитировать это?
Edit: Уточняя, что мне нужно -
У меня есть OpenGL приложение, которое я бегу на встраиваемом Linux (работает как обычный Linux) цели. Это отображает некоторые графики на устройстве отображения встроенной системы. Нажатие f на клавиатуре, подключенной к цели, выводит данные fps на терминал ssh, из которого я управляю цели.
Поскольку я автоматизирую процесс запуска этого приложения OpenGL и получения баллов fps, я не могу ожидать, что клавиатура будет подключена к цели, а тем более ожидать, что пользователь вводит нажатие клавиши на встроенной целевой клавиатуре. Как мне это сделать?
Редактировать 2: Ожидание не работает, так как ожидать может выдавать штрихи только на терминал ssh. Ключ, который мне нужно отправить в приложение, должен поступать с клавиатуры, подключенной к цели (это та часть, которая нуждается в моделировании, не имея при этом подключенной к ней клавиатуры).
Спасибо.
Не было бы проще (и более портативными) просто отправить сообщение в программу, а затем сделать это вместо того, чтобы это в нажатие клавиши? – Nitrodist
Как так? У меня нет доступа к коду этого двоичного файла OGL. – fzkl
Потому что попытка связи с программой - именно то, почему в linux есть сокеты или каналы. Этот SO тоже может быть полезен: http://stackoverflow.com/questions/1262310/simulate-keypress-in-a-linux-c-console-application – Nitrodist