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

时间:2020-03-06 14:28:18  来源:igfitidea点击:

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

我想知道是否有人可以重定向龙卷风的输出?

我希望有一种方法可以通过一个小型python应用程序将其全部记录下来,以便可以将过滤器应用于传入的信息。我尝试连接到Tornado进程,但是包含信息的窗口不是标准的CEditCtrl,因此以这种方式提取文本是死路一条。

有任何想法吗?

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

[Edit2]根据WinID,在Tornado中讨论的窗口是'AfxFrameOrView42'。

解决方案

我假设我们正在使用主机外壳执行此操作。

如果通过从外壳启动测试(例如" runTest()")来运行测试,则可以使用重定向运算符(>)将功能的输出发送到主机上的文本文件。

> runTest() > mytestResults.txt

这会将runTest生成的所有输出保存到文件mytestResults.txt中

如果我们想一直捕获屏幕上的所有内容,我将不得不对其进行更多的研究。

主机外壳具有内置的录制功能。
有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'.

rlogin vxWorks目标tee重定向输出.txt

这是另一种可能的方式:

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

这会将所有stdout活动重定向到我们打开的文件。
我们可能需要使用open的文件名来使其在主机上写入(例如,使用" host:/myfile.txt"或者类似的名称)