Как перенаправить вывод оболочки Tornado / VXWorks? - PullRequest
3 голосов
/ 20 сентября 2008

Недавно я работал над встроенным проектом C / C ++, используя оболочку в Tornado 2 для отладки того, что происходит в нашем наборе. Единственная проблема с этим подходом состоит в том, что это сложная система и, как результат, имеет довольно много продукции. Торнадо «услужливо» прокручивает окно каждый раз, когда появляется какая-то новая информация, что означает, что если вы обнаружите ошибку, она исчезнет с сайта слишком быстро, чтобы ее увидеть. Каждый раз, когда вы прокручиваете страницу вверх, система добавляет дополнительную информацию, поэтому единственный способ просмотреть ее - отключить оборудование.

Хотелось бы узнать, есть ли у кого-нибудь способ перенаправить вывод из Торнадо?

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

Есть идеи у кого-нибудь?

[Редактировать] Я должен был упомянуть, что мы работаем только на Tornado 2.1.0, и обновление до более новой версии находится вне моего контроля.

[Edit2] Соответствующее окно в Tornado - это «AfxFrameOrView42» в соответствии с WinID.

Ответы [ 4 ]

5 голосов
/ 22 сентября 2008

вот еще один потенциальный путь:

-> saveFd = open("myfile.txt",0x102, 0777 )
-> oldFd = ioGlobalStdGet(1)
-> ioGlobalStdSet(1, saveFd)
-> runmytest()
...
-> ioGlobalStdSet(1, oldFd)

перенаправит все действия stdout в файл, который вы открыли. Возможно, вам придется поиграться с именем файла open, чтобы заставить его писать на хосте (например, использовать «host: /myfile.txt» или что-то вроде этого)

3 голосов
/ 20 сентября 2008

В оболочку хоста встроена функция записи. Доступны 3 переменные среды (в 6.x - недоступно в 5.x):

ЗАПИСЬ (вкл / выкл): управляет записью оболочки
RECORD_TYPE (вход / выход / все): определяет, что вы будете записывать
RECORD_FILE: имя файла для сохранения.

вы используете команду? ShConfig для настройки переменной среды оболочки. ? shConfig сам по себе отображает переменные. Вот как я это сделал:


-> ?shConfig
...
RECORD = off
RECORD_FILE = C:/test.txt
RECORD_TYPE = output
...

-> ?shConfig RECORD_TYPE all
-> ?shConfig RECORD_FILE myData.txt
-> ?shConfig RECORD on
Started recording commands in 'myData.txt'.
1 голос
/ 20 сентября 2008

Я предполагаю, что вы используете оболочку хоста для этого.

Если вы запускаете тест, запуская его из оболочки, например, «runTest ()», вы можете использовать оператор перенаправления (>) для отправки вывода этой функции в текстовый файл на вашем хост-компьютере.

 > runTest() > mytestResults.txt

Это сохранит все выходные данные, которые генерирует runTest, в файл mytestResults.txt

Если вы хотите все время снимать на экране, мне придется больше в этом разобраться.

0 голосов
/ 20 сентября 2008

rlogin vxWorks-target | тройник redirected-output.txt

...