我们在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
应用程序本身有效,但您能告诉我们错误的原因和解决方法吗?
答案 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>
我认为包括你的指出。