我們在Xynq7035 ARM COretex A9上使用帶有嵌入式Linux內核3.14的RedHawk v2.1。我們的應用是SSB Tx/Rx SDR。所以波形由3種類型組成,一種是SSB RX,兩種是SSB TX,三種是CW TX。硬件設備有6個dataFloat端口和6個dataUlong端口,每個端口共有12個端口。啓動程序如下。RedHawk v2.1設備IDL錯誤
#nodeBooter -D &
#nodeBooter -d /usr/lib/redhawk/sdr/dev/nodes/dev_trx_node/DeviceManager.dcd.xml &
#rh_start.py &
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')
連接設備和波形端口時發生錯誤。錯誤代碼是
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
錯誤出現在我的設備的所有端口和GPP的所有端口上。我的設備是使用RedHawk-IDE v2.1創建的。 GPP下載v2.1並進行交叉編譯。 GPP.scd.xml沒有改變。 scd.xml文件是否錯誤?我們在scd.xml文件中的設備端口部分如下。
<ports>
<provides repid="IDL:BULKIO/dataFloat:1.0" providesname="in_data_cw">
<porttype type="data"/>
</provides>
<uses repid="IDL:BULKIO/dataFloat:1.0" usesname="out_data_cw">
<porttype type="data"/>
</uses>
<provides repid="IDL:BULKIO/dataFloat:1.0" providesname="in_data_rx">
<porttype type="data"/>
</provides>
<uses repid="IDL:BULKIO/dataFloat:1.0" usesname="out_data_rx">
<porttype type="data"/>
</uses>
<provides repid="IDL:BULKIO/dataFloat:1.0" providesname="in_data_tx">
<porttype type="data"/>
</provides>
<uses repid="IDL:BULKIO/dataFloat:1.0" usesname="out_data_tx">
<porttype type="data"/>
</uses>
<provides repid="IDL:BULKIO/dataUlong:1.0" providesname="in_cnt_cw">
<porttype type="data"/>
</provides>
<uses repid="IDL:BULKIO/dataUlong:1.0" usesname="out_cnt_cw">
<porttype type="data"/>
</uses>
<provides repid="IDL:BULKIO/dataUlong:1.0" providesname="in_cnt_rx">
<porttype type="data"/>
</provides>
<uses repid="IDL:BULKIO/dataUlong:1.0" usesname="out_cnt_rx">
<porttype type="data"/>
</uses>
<provides repid="IDL:BULKIO/dataUlong:1.0" providesname="in_cnt_tx">
<porttype type="data"/>
</provides>
<uses repid="IDL:BULKIO/dataUlong:1.0" usesname="out_cnt_tx">
<porttype type="data"/>
</uses>
</ports>
該應用程序本身的工作,但你能告訴我們錯誤的原因和解決方法?
我們正在使用自己的SCA設備。我們的評估板是使用Zynq7035自己設計的。硬件接口驅動程序。編譯環境是YOCTO項目。 –
您是否熟悉GeonTech的工作?他們爲yocto提供[redhawk meta層](https://github.com/Geontech/meta-redhawk-sdr/)。看看[這一行](https://github.com/RedhawkSDR/framework-core/blob/master/src/base/framework/python/ossie/utils/model/__init__.py#L51)它尋找IDL lib在OSSIEHOME路徑中。這可能是問題。 –
謝謝你的建議。我錯誤地將/ usr/share中的符號鏈接誤認爲/ usr/lib/redhawk/core/share。當我做正確的鏈接,錯誤消失。非常感謝。 –