我在两个节点上运行两个相同的波形,并尝试在两个波形中的对等组件之间连接一对端口。本手册讨论了外部端口,但没有谈到如何连接它们,但似乎我应该在波形中将它们声明为外部。我相信即使我在域中而不是在沙箱中运行,我也可以使用手册10.2中的方法。所以我试图使用python命令来连接它们。我在IDE中启动域和波形,然后尝试使用python进行外部连接。这些域名为TxRadio和RxRadio。
我使用以下命令:
$ python
来自ossie.utils import redhawk
TxRadio = redhawk.attach(“TxRadio”)
RxRadio = redhawk.attach(“RxRadio”)
TxWaveform = TxRadio.apps [0]
RxWaveform = RxRadio.apps [0]
TxWaveform.connect(RxWaveform)
因为我在对等组件上有其他本地提供的端口具有相同的接口,这个连接是不明确的,python给我一个匹配的端口列表,所以我做
TxWaveform.connect(RxWaveform,providePortName =“TransferIn”)
我在shell中没有得到python的错误,但是我的IDE会弹出一个报告错误的窗口:
gov / redhawkl / ide.debug.impl.LocalScaWaveformImpl无法强制转换为gov.redhawk.ide.debug.LocalScaComponent
这听起来像是在尝试连接组件和波形。添加usesPortName没有帮助。它是组件上同一接口的唯一Uses端口。
我知道它正在尝试使用正确的providePortName,因为如果我拼错它会报告我的组件没有该名称的提供端口。
由于我只指定了波形而不是要连接的组件,因此它将尝试外部端口。所以我尝试指定组件。
RxWaveform.api()报告我的对等组件是组件2,所以我尝试
TxWaveform.comps [1] .connect(RxWaveform.comps [1],providePortName =“TransferIn”)
我得到同样的错误。
即使我尝试连接同一域中的端口
TxWaveform.comps [1] .connect(TxWaveform.comps [1],providePortName =“TransferIn”)
将组件上的TransferOut连接到TransferIn的同一个 组件,我得到同样的错误。
似乎如此接近。任何人都可以告诉我我做错了什么或者是什么 错误信息是指?
BTW我正在使用RedHawk 2.0.0
答案 0 :(得分:1)
听起来你采取了正确的步骤,IDE正在抛出一个虚假的错误。在这种情况下,我会忽略IDE异常,并确认连接在IDE之外工作。您是否有IDE错误的行号或堆栈跟踪?如果我没记错的话,可能已在最近的一个版本中修复过。
gov / redhawkl / ide.debug.impl.LocalScaWaveformImpl无法强制转换为gov.redhawk.ide.debug.LocalScaComponent