2017-08-18 41 views
0

我試圖從一個Python腳本是新的閱讀從compent數據,紅鷹和流動的一些例子,我有以下的組件讀取數據,但預計只有一個端口如何從多個端口

from ossie.utils import redhawk, sb 
dom = redhawk.attach("REDHAWK_DEV") 
app=dom.apps[0] 
print(app) 
comp = app.comp[0] 
output_data = sb.DataSink() 
comp.connect(output_data) 

與錯誤:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/redhawk/core/lib/python/ossie/utils/model/__init__.py", line 327, in connect 
    raise RuntimeError, ret_str 
RuntimeError: Multiple ports matched interfaces on connect, must specify providesPortName or usesPortName 
Possible matches: 
    Interface: IDL:BULKIO/dataShort:1.0, component/port: rh.basic_components_demo_230_071003375_1/SigGen_sine/dataShort_out  __localDataSink_1/shortIn 
    Interface: IDL:BULKIO/dataFloat:1.0, component/port: rh.basic_components_demo_230_071003375_1/SigGen_sine/dataFloat_out  __localDataSink_1/floatIn 

的組件是從基本的波形示例項目rh.SigGen組件。

你如何從水槽讀取並輸出浮標? 我想這樣

... 
comp.connect(output_data) 
while (data=comp.read()) : 
    print("Value : "+data) 
+0

在python會話中,您可以使用幫助(comp.connect),它將提供API文檔。 –

回答

0

你的錯誤可以用類似解決:

comp.connect(output_data, usesPortName="dataFloat_out") 

爲了打印浮動的樣品,就可以實現紅鷹組件這樣做...你也可以繪圖數據使用:

sb.IDELocation("/path/to/ide/eclipse/directory") 
plot=sb.Plot() 
comp.connect(plot, usesPortName="dataFloat_out")