RedHawk v2.1设备IDL错误

时间:2017-10-16 11:56:56

标签: redhawksdr

我们在Xynq7035 ARM COretex A9上使用RedHawk v2.1和嵌入式Linux内核3.14。我们的应用是SSB Tx / Rx SDR。因此波形由3种类型组成,一种是SSB RX,两种是SSB TX,三种是CW TX。硬件设备有6个dataFloat端口和6个dataUlong端口,每个端口共有12个端口。启动程序如下。

switch

rh_start.py代码如下。

#nodeBooter -D &
#nodeBooter -d /usr/lib/redhawk/sdr/dev/nodes/dev_trx_node/DeviceManager.dcd.xml &
#rh_start.py &

连接设备和波形端口时出现错误。错误代码是

from ossie.utils import redhawk
import logging
logging.basicConfig()
domain_list = redhawk.scan()
dom = redhawk.attach(domain_list[0])
wave0 = dom.createApplication("/waveforms/rx_waveform/rx_waveform.sad.xml")
dom.devices[1].connect(wave0.comps[0], usesPortName='out_data_rx', providesPortName='in_data' )

错误发生在我的设备的所有端口和GPP的所有端口上。我的设备是使用RedHawk-IDE v2.1创建的。 GPP下载v2.1并交叉编译。 GPP.scd.xml没有更改。 scd.xml文件错了吗?我们在scd.xml文件中的设备端口部分如下所示。

ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataFloat:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataFloat:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataFloat:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataUlong:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataUlong:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataUlong:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataFloat:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataFloat:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataFloat:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataUlong:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataUlong:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:BULKIO/dataUlong:1.0
ERROR:ossie.utils.model:Unable to find port description for IDL:CF/Port:1.0
ERROR:ossie.utils.model:Invalid port descriptor in scd for IDL:ExtendedEvent/MessageEvent:1.0enter code here

应用程序本身有效,但您能告诉我们错误的原因和解决方法吗?

2 个答案:

答案 0 :(得分:0)

根据行1266 of model module init,IDL库中似乎没有IDL:BULKIO/dataFloat:1.0。检查路径中是否存在IDL库:$OSSIEHOME/share/idl。还要检查你的scd文件是否包含:

<interface name="ProvidesPortStatisticsProvider" repid="IDL:BULKIO/ProvidesPortStatisticsProvider:1.0"/>
    <interface name="updateSRI" repid="IDL:BULKIO/updateSRI:1.0"/>
    <interface name="dataFloat" repid="IDL:BULKIO/dataFloat:1.0">
      <inheritsinterface repid="IDL:BULKIO/ProvidesPortStatisticsProvider:1.0"/>
      <inheritsinterface repid="IDL:BULKIO/updateSRI:1.0"/>
    </interface>

在接口标签内。

小贴士:端口可以使用核心框架IDL,除IDL:BULKIO外,您可以使用IDL:CF/Resource来控制组件,IDL:CF/Device来控制设备。您甚至可以使用端口获取域的引用。这样,您可以为SSB(TX和RX)创建单个波形,从而实现适当的装配控制器,以指示波形的工作方式。

您使用的是ADRV9361(picozed sdr)吗?如果是这样......你可以评估我的FrontEnd设备AD936X_LIBIIO ...你是如何在Zynq REDHAWK中嵌入(交叉编译)的?

答案 1 :(得分:0)

IDL库存在于/ usr / share / idl / ossie / BULKIO中不是$ OSSIEHOME / share / idl,但bio_daraUlog_idl.py和bio_dataFloat_idl.py位于$ OSSIEHOME / lib / python / bulkio / bulkioInterface中。我很遗憾忘记从bulkio.bulkioInterface导入BULKIO&#34;&#34; 。但是如果没有此导入描述,则会出现上述错误。 我的scd文件的界面标签是:

<interfaces>
...............
    <interface name="dataFloat" repid="IDL:BULKIO/dataFloat:1.0">
      <inheritsinterface repid="IDL:BULKIO/ProvidesPortStatisticsProvider:1.0"/>
      <inheritsinterface repid="IDL:BULKIO/updateSRI:1.0"/>
    </interface>
    <interface name="ProvidesPortStatisticsProvider" repid="IDL:BULKIO/ProvidesPortStatisticsProvider:1.0"/>
    <interface name="updateSRI" repid="IDL:BULKIO/updateSRI:1.0"/>
    <interface name="dataUlong" repid="IDL:BULKIO/dataUlong:1.0">
      <inheritsinterface repid="IDL:BULKIO/ProvidesPortStatisticsProvider:1.0"/>
      <inheritsinterface repid="IDL:BULKIO/updateSRI:1.0"/>
    </interface>
</interfaces>

我认为包括你的指出。