我在REDHAWKSDR IDE(版本2.0.2)中创建了一个包含USRP_UHD设备和DataConverter的波形。我仔细遵循了第7.2节和第34节;将波形与FEI设备相关联"在手册中使用"使用前端调谐器设备"工件定义设备端口和与DataConverter的连接。端口和连接在图上呈现。我保存了波形并将其导出到SDR。
我创建了一个USRP节点,将UHD_USRP设备添加到节点,并设置IP地址。我可以启动节点的DeviceManager,手动分配UHD_USRP前端调谐器,并在NextMidas图上确认数据流。
当我在REDHAWK_DEV域管理器中启动波形时,波形图中的UHD_USRP设备缺少端口和连接。 REDHAWK Explorer显示UHD_USRP设备已分配,但输出端口显示未知的" Connection_1"并且DataConverter输入端口不显示连接。我使用" Connect"手动重新创建了连接。菜单,但我没有数据流。
这个基本的USRP连接应该非常简单,但我发现在这个论坛或其他地方没有有用的讨论。一个观察:我可以使用以下命令在python中获取连接:
来自ossie.utils import sb
导入前端
sb.catalog(OBJTYPE ='装置&#39)
usrp = sb.launch(' rh.USRP_UHD')
usrp.target_device.ip_address =' 192.168.10.2'
alloc = frontend.createTunerAllocation(" RX_DIGITIZER", allocation_id =" testing",center_frequency = 925.0e6,sample_rate = 20.0e6,sample_rate_tolerance = 20.0)
usrp.allocateCapacity(ALLOC)
alloc1 = frontend.createTunerListenerAllocation(" testing"," listener1")
usrp.allocateCapacity(alloc1)
converter = sb.launch(' rh.DataConverter')
converter.maxTransferSize = 262144
usrp.connect(converter,usesPortName =" dataShort_out",providePortName =" dataShort",connectionId =' listener1')
plot2 = sb.RasterPSD(nfft = 8192,frameSize = 8192)
converter.connect(plot2,usesPortName =" dataFloat_out",providePortName =" FloatIn")
sb.start()
答案 0 :(得分:0)
此答案基于旧笔记,因此可能无效。这些天我们通过python动态地完成大部分连接。我手边没有USRP来测试。
我按照您描述的方式生成了一个快速波形,并在.sad.xml文件中生成了以下XML:
<connections>
<connectinterface id="connection_1">
<usesport>
<usesidentifier>dataShort_out</usesidentifier>
<deviceusedbyapplication usesrefid="rh.USRP_UHD_1"/>
</usesport>
<providesport>
<providesidentifier>dataShort</providesidentifier>
<componentinstantiationref refid="DataConverter_1"/>
</providesport>
</connectinterface>
</connections>
<usesdevicedependencies>
<usesdevice id="rh.USRP_UHD_1">
<propertyref refid="DCE:cdc5ee18-7ceb-4ae6-bf4c-31f983179b4d" value="FRONTEND::TUNER"/>
<propertyref refid="DCE:0f99b2e4-9903-4631-9846-ff349d18ecfb" value="USRP"/>
<structref refid="FRONTEND::tuner_allocation">
<simpleref refid="FRONTEND::tuner_allocation::tuner_type" value="RX_DIGITIZER"/>
<simpleref refid="FRONTEND::tuner_allocation::allocation_id" value="devuser:6e463f2c-fe8f-4997-98e9-39bf1364c861"/>
<simpleref refid="FRONTEND::tuner_allocation::center_frequency" value="9.0E8"/>
<simpleref refid="FRONTEND::tuner_allocation::bandwidth" value="0.0"/>
<simpleref refid="FRONTEND::tuner_allocation::bandwidth_tolerance" value="20.0"/>
<simpleref refid="FRONTEND::tuner_allocation::sample_rate" value="0.0"/>
<simpleref refid="FRONTEND::tuner_allocation::sample_rate_tolerance" value="20.0"/>
<simpleref refid="FRONTEND::tuner_allocation::device_control" value="true"/>
<simpleref refid="FRONTEND::tuner_allocation::group_id" value=""/>
<simpleref refid="FRONTEND::tuner_allocation::rf_flow_id" value=""/>
</structref>
</usesdevice>
</usesdevicedependencies>
connectinterface元素中的id曾经与设备的allocation_id相同。
<connectinterface id="connection_1">
应该是
<connectinterface id="devuser:6e463f2c-fe8f-4997-98e9-39bf1364c861">
在上面生成的代码中,而不是“connection_1”。将“devuser:6e463f2c-fe8f-4997-98e9-39bf1364c861”字符串替换为为您的分配生成的任何内容。