REDHAWK超高清设备使用情况



我已经成功安装了UHD设备以及REDHAWK 1.8.3版本。对我来说,如何将波形中的组件连接到由设备管理器管理的设备并不明显。我也不清楚IDL接口和USRP设备上的数据端口之间的相互作用。

我找不到一个简单的例子来发送和接收利用USRP设备的波形(例如,信号发生器组件向USRP发送正弦波)。有谁有过这样的经历或者有什么建议吗?

在运行环境中连接组件和设备的一种方法是通过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')

根据您的情况,有多种方法可以完成此操作。以下是一些:

a。)问题:您正在IDE中调试一个问题,并快速想要将设备端口连接到组件端口

解决方案:当组件和设备同时运行在域中或沙箱中时,在SCA Explorer视图中展开组件和设备以公开端口。单击输出端口,然后按ctrl+单击要连接的输入端口。两个端口都突出显示,您现在可以右键单击并选择连接。

b)问题:您需要一种通用的方式将组件输入端口连接到特定类型的设备输出端口,而不管实现语言是什么。

解决方案:这是一个多步骤的过程,一开始并不那么直观。我建议您查看SCA规范页D-43,了解步骤10及后续步骤的更多细节。

  1. 在编辑器中打开组件并导航到Implementations选项卡。

  2. 右键单击要用于此连接的实现(例如python)

  3. 选择新建→使用设备

  4. 为此连接生成(或输入)唯一的DCE ID

  5. 输入类型"usesDevice"虽然我不能100%确定类型是否重要,但我使用了usesDevice

  6. 右键单击Uses Device选择new Property Ref.你不会直接将组件X连接到设备Y.相反,你将组件X连接到满足这里设置的属性限制的设备。ie。型号、类型等

  7. 在你的设备中,在属性选项卡中,设置一个属性,如device_kind或device_model的Name字段为你想要匹配的东西。我们以XYZ123为例。保存并部署到SDR ROOT

  8. 回到我们设置属性Ref的组件,选择browse并选择您刚刚设置为匹配属性的设备上的属性。

  9. 设置值为您设置的值ex XYZ123。保存并部署组件

  10. 现在在您的波形中,您需要手动编辑SAD文件并添加如下内容,其中[[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脚本,REDHAWK内部的python服务,或者通过波形中的python组件连接到设备。

解决方案:参见Adam的解决方案

相关内容

  • 没有找到相关文章

最新更新