No Plot output from Redhawk Waveform Example

一世执手 提交于 2019-12-11 20:26:44

问题


I am trying the Waveform example from chapter 5 of the documentation, but I do not see any output from the Siggen port or from the hard limit port. I set the frequency down to 50 MHz and connected the out port of the siggen to the in port of the hardlimit. I am trying to run it from a local domain manager, and it appears to start correctly. But, when I select Plot Port Data I just get an empty plot. On the Domain Manager console I see this right after starting the waveform:

   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

Is it normal for it to uninstall the application right away, or am I just misunderstanding?


回答1:


When launching the testWaveform from a local domain using REDHAWK 1.9.0 the following output is normal when your domain manager has the default debug level.

INFO:DomainManager - Starting Domain Manager INFO:DomainManager - Starting ORB! INFO:DomainManager_impl - Installing application /waveforms/testWaveform/testWaveform.sad.xml INFO:ApplicationFactory_impl - Done creating application DCE:885f9cdf-fcdd-41a6-9cfd-a0da8289eef5:testWaveform_340_084417030_1 testWaveform_340_084417030 INFO:DomainManager_impl - Uninstalling application DCE:885f9cdf-fcdd-41a6-9cfd-a0da8289eef5

Make sure that you have started the waveform. This may be done by either clicking the green "Start Waveform" button at the top toolbar, by right clicking the waveform in the Active Domain from the SCA Explorer View and selecting "Start" or by right clicking each individual component in either the SCA Explorer or Waveform Diagram and selecting Start. Once a component is started, it will have a green glow in the upper portion of the block.

If this doesn't work, the following debugging steps may help you track down this, and future issues.

  • Run & Plot the components in the Sandbox rather than in a domain. This will help narrow down if the problem is in the Domain / Device manager configuration or within the components.

  • Rather than plot, confirm that data is flowing through the component by using either the snapshot, datalist, or monitor ports tool. This is helpful if the data flowing through the components may not be of a type compatible with the plotting tools. (This should not be the case for you since you are specifically using Hard limit & Siggen which are both BulkIO and compatible with the plotting tools)

  • Turn up the debugging on the domain and device manager. When launching the domain, there are drop downs to select the level of debugging outputted by the domain and device managers from Trace to Fatal. If running nodeBooter from the command line, the flag "-debug" can be used to set the debug output level.

  • Turn up the debugging on your components and devices. See this stack overflow post for details on how to do this. How to log at a debug or trace level for a component that is part of a Waveform

These next debugging steps are a bit more advanced and are primarily for debugging omniORB related issues.

  • omniORB is heavily used by REDHAWK and has its own set of debugging flags and tools. See the omniORB documentation for a full list of features (http://omniorb.sourceforge.net/docs.html). You may turn up the omniORB debugging level in your /etc/omniORB.cfg file by adding "traceLevel = X" Where X is a trace level as described below:
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)
  • If given an IOR from the omniORB output, or REDHAWK IDE, you can use the command line tool catior.omni to decode the IOR into an IP address / Unix pipe location. If you do not have catior.omni installed it is found in the omniORB-utils package within the Epel repository.

Hopefully you now have the tools to further debug your issue! Update your post with additional detail and debug output if you still cannot get the plotting to work. If you do get plotting to work, update your post with the solution in case others have a similar issue.




回答2:


Double check to make sure that you started the Waveform by selecting the green play button in the toolbar after the Waveform has been launched.

If that doesn't work try the following in python (Assuming you are running Version 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()

At this point if the "data" variable contains a long array, your components are working properly. You can then plot the data from python (requires matplotlib and PyQt4 to be installed) by continuing your python session with the following:

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

As for the second part of your question, when a Waveform is launched it is actually creating an Application Factory instance from the XML files which in turn can create 1 or more Application instances. Then, when the Application Factory is no longer needed, it is uninstalled. When launched through the IDE, only a single Application is created from the Application Factory before it is uninstalled. More on Applications and Application Factories can be found in Chapter 11 of the REDHAWK Manual.



来源:https://stackoverflow.com/questions/20412781/no-plot-output-from-redhawk-waveform-example

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!