Redhawk Waveform示例中没有Plot输出

时间:2013-12-05 23:14:24

标签: redhawksdr

我正在尝试文档的chapter 5中的Waveform示例,但是我没有看到Siggen端口或硬限制端口的任何输出。我将频率设置为50 MHz并将siggen的输出端口连接到hardlimit的输入端口。我试图从本地域管理器运行它,它似乎正确启动。但是,当我选择Plot Port Data时,我只得到一个空图。在Domain Manager控制台上,我在启动波形后立即看到了这一点:

   INFO:ApplicationFactory_impl - Done creating application DCE:a81037d5-98e5-4e80-9791-0364ec62018a:testWaveform_339_175951424_1 testWaveform_339_175951424
    INFO:DomainManager_impl - Uninstalling application DCE:a81037d5-98e5-4e80-9791-0364ec62018a

立即卸载应用程序是正常的,还是我只是误解?

2 个答案:

答案 0 :(得分:0)

使用REDHAWK 1.9.0从本地域启动testWaveform时,如果域管理器具有默认调试级别,则以下输出是正常的。

  

信息:DomainManager - 启动域管理器   信息:DomainManager - 启动ORB!   信息:DomainManager_impl - 安装应用程序/waveforms/testWaveform/testWaveform.sad.xml   信息:ApplicationFactory_impl - 完成创建应用程序DCE:885f9cdf-fcdd-41a6-9cfd-a0da8289eef5:testWaveform_340_084417030_1 testWaveform_340_084417030   信息:DomainManager_impl - 卸载应用程序DCE:885f9cdf-fcdd-41a6-9cfd-a0da8289eef5

确保已启动波形。这可以通过单击顶部工具栏上的绿色“开始波形”按钮,右键单击SCA资源管理器视图中的活动域中的波形并选择“开始”或右键单击SCA Explorer中的每个单独组件来完成。或波形图并选择开始。一旦组件启动,它将在块的上部发出绿光。

如果这不起作用,则以下调试步骤可帮助您跟踪此问题以及将来的问题。

  • Run&在沙箱而不是域中绘制组件。如果问题出在域/设备管理器配置中或组件内,这将有助于缩小范围。

  • 不是绘图,而是使用快照,数据列表或监控端口工具确认数据正在流经组件。如果流经组件的数据可能与绘图工具不兼容,则此方法很有用。 (这不应该是你的情况,因为你专门使用Hard limit& Siggen,它们都是BulkIO并且与绘图工具兼容)

  • 打开域和设备管理器的调试。启动域时,有一些下拉菜单可以选择域和设备管理器从Trace到Fatal输出的调试级别。如果从命令行运行nodeBooter,则可以使用标志“-debug”来设置调试输出级别。

  • 打开组件和设备的调试开关。有关如何执行此操作的详细信息,请参阅此堆栈溢出帖子。 How to log at a debug or trace level for a component that is part of a Waveform

这些下一个调试步骤稍微高级一些,主要用于调试omniORB相关问题。

  • omniORB被REDHAWK大量使用,并拥有自己的一组调试标志和工具。有关功能的完整列表(http://omniorb.sourceforge.net/docs.html),请参阅omniORB文档。您可以在/etc/omniORB.cfg文件中通过添加“traceLevel = X”来调高omniORB调试级别,其中X是跟踪级别,如下所述:
Tracing level
level 0 -  critical errors only
level 1 -  informational messages only
level 2 -  configuration information and warnings
level 5 -  the above plus report server thread creation and
           communication socket shutdown
level 10 - the above plus execution trace messages
level 25 - output trace message per send or receive giop message
level 30 - dump up to 128 bytes of a giop message
level 40 - dump the complete giop message

Valid values = (n >= 0)
  • 如果从omniORB输出或REDHAWK IDE中获取IOR,您可以使用命令行工具catior.omni将IOR解码为IP地址/ Unix管道位置。如果您没有安装catior.omni,可以在Epel存储库的omniORB-utils包中找到它。

希望您现在拥有进一步调试问题的工具!如果仍然无法使绘图工作,请使用其他详细信息和调试输出更新您的帖子。如果您确实需要绘图,请使用解决方案更新您的帖子,以防其他人遇到类似问题。

答案 1 :(得分:0)

仔细检查以确保在波形启动后通过选择工具栏中的绿色播放按钮启动波形。

如果这不起作用,请在python中尝试以下内容(假设您运行的是1.9版):

from ossie.utils import sb
gen = sb.launch('SigGen')
limit = sb.launch('HardLimit')
sink = sb.DataSink()
gen.connect(limit)
limit.connect(sink)
sb.start()
data = sink.getData()

此时,如果“data”变量包含长数组,则表示组件正常工作。然后,您可以通过以下内容继续您的python会话来绘制python中的数据(需要安装matplotlib和PyQt4):

plot = sb.LinePlot()
limit.connect(plot)
plot.start()

至于问题的第二部分,当启动Waveform时,它实际上是从XML文件创建一个Application Factory实例,而后者又可以创建一个或多个Application实例。然后,当不再需要Application Factory时,将卸载它。通过IDE启动时,在卸载之前,只会从Application Factory创建一个Application。有关应用程序和应用程序的更多信息可以在Chapter 11 of the REDHAWK Manual.

中找到