Shell 如何重定向Tornado/VXWorks外壳输出?

Shell 如何重定向Tornado/VXWorks外壳输出?,shell,redirect,embedded,vxworks,Shell,Redirect,Embedded,Vxworks,我最近一直在做一个嵌入式C/C++项目,使用Tornado 2中的shell来调试我们工具包中正在发生的事情。这种方法的唯一问题是,它是一个复杂的系统,因此有相当多的输出。每次有新信息出现时,Tornado都会“有用地”滚动窗口,这意味着如果您发现错误,它会很快消失在网站之外,无法看到。每次向上滚动查看时,系统会添加更多信息,因此查看的唯一方法是断开硬件连接 我想知道是否有人有办法重定向龙卷风的输出 我希望有一种方法可以从一个小型python应用程序中记录所有信息,这样我就可以对传入的信息应用过

我最近一直在做一个嵌入式C/C++项目,使用Tornado 2中的shell来调试我们工具包中正在发生的事情。这种方法的唯一问题是,它是一个复杂的系统,因此有相当多的输出。每次有新信息出现时,Tornado都会“有用地”滚动窗口,这意味着如果您发现错误,它会很快消失在网站之外,无法看到。每次向上滚动查看时,系统会添加更多信息,因此查看的唯一方法是断开硬件连接

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

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

有什么想法吗

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


[Edit2]根据WinID,Tornado中讨论的窗口是一个“AfxFrameOrView42”。

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

如果通过类似“runTest()”的shell启动测试来运行测试,则可以使用重定向操作符(>)将该函数的输出发送到主机上的文本文件

> runTest() > mytestResults.txt >runTest()>mytestResults.txt 这将把runTest生成的任何输出保存到文件mytestResults.txt中


如果您想一直捕获屏幕上的所有内容,我必须对此进行深入研究。

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

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

您可以使用?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 target | tee redirected output.txt

以下是另一种可能的方式:

-> saveFd = open("myfile.txt",0x102, 0777 ) -> oldFd = ioGlobalStdGet(1) -> ioGlobalStdSet(1, saveFd) -> runmytest() ... -> ioGlobalStdSet(1, oldFd) ->saveFd=open(“myfile.txt”,0x1020777) ->oldFd=ioGlobalStdGet(1) ->ioGlobalStdSet(1,saveFd) ->runmytest() ... ->ioGlobalStdSet(1,oldFd) 这会将所有标准输出活动重定向到您打开的文件。
您可能需要修改open的文件名才能将其写入主机(例如,使用“host:/myfile.txt”或类似的东西)

我尝试了一下,但是我们用来启动系统的命令启动了一个新任务,因此,我们看不到任何感兴趣的输出。我认为我们需要捕获所有信息,以使解决方案真正起作用。主机外壳中是否显示了丢失的输出?或者它显示在串行端口上(即内核外壳)?我与本地机器上Tornado的外壳远程连接,我可以看到该外壳上的所有输出。如果我检查日志文件,尽管它只包含来自我启动的函数(而不是衍生任务)的数据。是的,我尝试过,但因为我使用的是Tornado 2.1.0,所以这些选项无效。我认为它们是在更高版本(?)中引入的。我相信这里的假设是vxWorks本身启用了rsh组件。这在主机外壳中不起作用。虽然这不是一个我所希望的整洁的解决方案,但这似乎是目前最好的选择。谢谢你的建议Benoit:-)这可能不是“最整洁”的解决方案,但这是我在过去几年中使用过的解决方案,我知道它是有效的。较新的工作台(3.x)更好地支持这类东西,但这可能对您没有帮助。我不认为这些是5.x的一部分。