首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REDHAWK UHD设备使用情况

REDHAWK UHD设备使用情况
EN

Stack Overflow用户
提问于 2013-05-16 00:49:18
回答 2查看 1.9K关注 0票数 1

我已经成功地将UHD设备与REDHAWK 1.8.3版一起安装。我不清楚如何将波形中的组件连接到由设备管理器管理的设备。我也不清楚IDL接口和USRP设备上的数据端口之间的相互作用。

我找不到一个简单的例子来发送和接收利用USRP设备的波形(例如,一个信号发生器组件向USRP发送一个正弦波)。有没有人对此有经验或有什么建议?

EN

回答 2

Stack Overflow用户

发布于 2013-05-17 05:30:30

在运行环境中将组件连接到设备的一种方法是通过REDHAWK python模块。它能够连接到正在运行的域,查询任何启动的应用程序,并将端口从组件连接到设备。以下是python脚本示例(请注意,两个端口的类型必须相同,才能成功连接):

代码语言:javascript
复制
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')
票数 5
EN

Stack Overflow用户

发布于 2013-05-17 23:17:03

根据您的情况,有多种方法可以实现这一点。下面是一些例子:

A.)问题:您正在IDE中调试问题,并且希望快速将设备端口连接到组件端口

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

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

解决方案:这是一个多步骤的过程,一开始并不那么直观。我建议您查看SCA规范的D-43页,了解下面步骤10及以后的其他详细信息。

  1. 在编辑器中打开组件,然后导航到“Implementations”选项卡。

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

  1. 使用Device

选择新的→

  1. 为此connection

生成(或输入)唯一的DCE ID

  1. 输入类型"usesDevice“尽管我不能100%确定该类型是否重要,但我使用了usesDevice

  1. 右击使用设备,选择新属性参考。您不会将组件X直接连接到设备Y。而是将组件X连接到满足此处设置的属性限制的设备。即。型号、类型等。

在您的设备中,在属性选项卡中,将诸如device_kind或_

  1. 的属性字段设置为您想要匹配的值。我们将以XYZ123为例。将其保存并部署到SDR根

  1. 回到我们设置属性Ref的组件中,选择浏览,然后选择您刚刚设置为匹配属性的设备上的属性。

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

  1. 现在您的波形中,您将需要手动编辑SAD文件并添加类似以下内容的内容,其中[[TEXT]]表示要更改的内容:

代码语言:javascript
复制
    <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的解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16570767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档