如何重定向Tornado / VXWorks shell输出?

时间:2008-09-19 23:51:27

标签: shell redirect embedded vxworks

我最近一直在使用Tornado 2中的shell进行嵌入式C / C ++项目,以调试我们的工具包中正在进行的操作。这种方法的唯一问题是它是一个复杂的系统,因此具有相当多的输出。每当有一些新信息到达时,龙卷风“帮助”滚动窗口,这意味着如果你发现错误,它就会在网站上消失得太快而无法看到。每次向上滚动查看时,系统都会添加更多信息,因此查看它的唯一方法是断开硬件连接。

我想知道是否有人有办法重新定向龙卷风的输出?

我希望有一种方法可以从一个小的python应用程序中记录所有内容,以便我可以对传入的信息应用过滤器。我已经尝试连接到Tornado进程,但是带有信息的窗口不是标准的CEditCtrl,因此以这种方式提取文本是一个死胡同。

任何想法?

[编辑] 我应该提到我们只运行Tornado 2.1.0并升级到更新版本是我无法控制的。

[Edit2] 根据WinID,Tornado中的相关窗口是'AfxFrameOrView42'。

4 个答案:

答案 0 :(得分:5)

这是另一种可能的方式:

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

这会将所有标准输出活动重定向到您打开的文件。 您可能必须使用open的文件名来使其在主机上写入(例如,使用“host:/myfile.txt”或类似的东西)

答案 1 :(得分:3)

主机shell内置了录制功能。 有3个环境变量可用(在6.x中 - 在5.x中不可用):

RECORD(开/关):控制外壳的记录
RECORD_TYPE(输入/输出/全部):确定要录制的内容
RECORD_FILE:保存内容的文件名。

使用?shConfig命令配置shell环境变量。 ?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'.

答案 2 :(得分:1)

我假设您正在使用主机shell来执行此操作。

如果您通过从shell运行测试来运行测试,例如“runTest()”,则可以使用重定向运算符(>)将该函数的输出发送到主机上的文本文件。

 > runTest() > mytestResults.txt

这会将runTest生成的任何输出保存到文件mytestResults.txt

如果您想一直捕捉屏幕上的所有内容,我将不得不深入研究这一点。

答案 3 :(得分:0)

rlogin vxWorks-target | tee redirected-output.txt