Вопрос по shell, embedded, vxworks, redirect – Как перенаправить вывод оболочки Tornado / VXWorks?
Я недавно работал над встроенным проектом C / C ++, используя оболочку в Tornado 2 для отладки того, что происходит в нашем наборе. Единственная проблема с этим подходом состоит в том, что это сложная система и, как результат, имеет значительный объем выходной информации. Торнадо "услужливо" прокручивает окно каждый раз, когда поступает какая-то новая информация, что означает, что если вы обнаружите ошибку, она слишком быстро исчезнет с сайта, чтобы ее увидеть. Каждый раз, когда вы прокручиваете страницу вверх, система добавляет дополнительную информацию, поэтому единственный способ просмотреть ее - отключить оборудование.
Я хотел бы знать, есть ли у кого-нибудь способ перенаправить вывод из Торнадо?
Я надеялся, что мог бы быть способ записать все это из небольшого приложения на Python, чтобы я мог применить фильтры к входящей информации. Я пытался подключиться к процессу Tornado, но окно с информацией не является стандартным CEditCtrl, поэтому извлечение текста таким образом было тупиком.
Любые идеи кто-нибудь?
[Edit] Я должен был упомянуть, что мы работаем только с Tornado 2.1.0, и обновление до более новой версии находится вне моего контроля.
[Edit2] Рассматриваемое окно в Tornado представляет собой «AfxFrameOrView42». согласно WinID.
Если вы запускаете тест, запуская его из оболочки, например & quot; runTest () & quot ;, вы можете использовать оператор перенаправления (& gt;) для отправки вывода этой функции в текстовый файл на вашем хост-компьютере.
> runTest() > mytestResults.txt
Это сохранит все выходные данные, которые генерирует runTest, в файл mytestResults.txt.
Если вы хотите все время снимать на экране, мне нужно больше в этом разобраться.
-> saveFd = open("myfile.txt",0x102, 0777 ) -> oldFd = ioGlobalStdGet(1) -> ioGlobalStdSet(1, saveFd) -> runmytest() ... -> ioGlobalStdSet(1, oldFd)
это перенаправитall стандартный вывод файла, который вы открыли. Возможно, вам придется поиграться с именем файла open, чтобы заставить его писать на хосте (например, используйте & quot; host: /myfile.txt" или что-то вроде этого)
Доступны 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'.