Как мне перенаправить вывод оболочки Tornado / VxWorks?

StackOverflow https://stackoverflow.com/questions/106453

Вопрос

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

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

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

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

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

[Правка2] Окно, о котором идет речь в Tornado, является "AfxFrameOrView42" в соответствии с WinID.

Это было полезно?

Решение

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

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

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

Другие советы

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

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

вы используете команду ?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'.

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

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

 > runTest() > mytestResults.txt

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

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

rlogin VxWorks-цель |тройник redirected-output.txt

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top