我已经成功地将UHD设备与REDHAWK 1.8.3版一起安装。我不清楚如何将波形中的组件连接到由设备管理器管理的设备。我也不清楚IDL接口和USRP设备上的数据端口之间的相互作用。
我找不到一个简单的例子来发送和接收利用USRP设备的波形(例如,一个信号发生器组件向USRP发送一个正弦波)。有没有人对此有经验或有什么建议?
发布于 2013-05-17 05:30:30
在运行环境中将组件连接到设备的一种方法是通过REDHAWK python模块。它能够连接到正在运行的域,查询任何启动的应用程序,并将端口从组件连接到设备。以下是python脚本示例(请注意,两个端口的类型必须相同,才能成功连接):
from ossie.utils import redhawk
from ossie.cf import CF
# Connect to the running domain
domain = redhawk.attach("REDHAWK_DEV")
# Gets a reference to the running application
for app in domain.apps:
# Find desired application
if app.name == 'desired_name':
application = app
# Gets the component from the application
for comp in application.comps:
# Find desired component
if comp.name == 'desired_name':
component = comp
# Gets the device to connect
for devMgr in domain.devMgrs:
for dev in devMgr.devs:
# Find desired device
if dev.name = 'desired_name':
device = dev
# Gets the references to the input and output ports
comp_port = component.getPort('port_name')._narrow(CF.Port)
dev_port = device.getPort('port_name')
# Makes the actual connection
comp_port.connectPort(dev_port, 'ConnectionID')
# Make sure device is started
device.start()
# Start application
application.start()
# To disconnect:
# Stop device and application
application.stop()
device.stop()
comp_port.disconnectPort('ConnectionID')发布于 2013-05-17 23:17:03
根据您的情况,有多种方法可以实现这一点。下面是一些例子:
A.)问题:您正在IDE中调试问题,并且希望快速将设备端口连接到组件端口
解决方案:当组件和设备都在域或沙箱中运行时,在SCA Explorer视图中展开组件和设备以显示端口。单击输出端口,然后对要连接的输入端口执行ctrl+click操作。在两个端口都突出显示的情况下,现在可以右键单击并选择Connect。
B.)问题:您需要一种通用的方法来将组件输入端口连接到特定类型的设备输出端口,而不管实现语言是什么。
解决方案:这是一个多步骤的过程,一开始并不那么直观。我建议您查看SCA规范的D-43页,了解下面步骤10及以后的其他详细信息。
选择新的→
生成(或输入)唯一的DCE ID
在您的设备中,在属性选项卡中,将诸如device_kind或_
[[TEXT]]表示要更改的内容: <connections>
<connectinterface id="[[Connection_Name]]">
<usesport>
<usesidentifier>[[Output Port Name]]</usesidentifier>
<deviceusedbythiscomponentref refid="[[DCE matching the componentinstantiationID]]" usesrefid="[[DCE matching the generated ID from step 4]]"/>
</usesport>
<providesport>
<providesidentifier>[[Input Port Name]]</providesidentifier>
<componentinstantiationref refid="[[DCE matching the componentinstantiationID]]"/>
</providesport>
</connectinterface>
</connections>我建议您在SAD编辑器中添加一个虚拟组件,并将虚拟组件连接到实际组件,这样您的SAD文件就会填充有connectinterface块,您就可以看到连接的示例。
进行这些更改后,IDE可能会告诉您SAD文件中存在错误,但仍要保存,关闭SAD编辑器并重新打开。如果没有显示错误,那么您的语法是正确的。部署波形并照常启动。
C.)问题:您希望通过REDHAWK外部的python脚本或通过波形中的python组件连接到设备。
解决方案:请参阅Adam的解决方案。
https://stackoverflow.com/questions/16570767
复制相似问题