我正在尝试编写一个简单的控制组件,它将允许我通过黑板启动USRP_UHD设备。我目前的环境是Redhawk1.9.0的CentOS 6.4。
我编写的组件使用一个DigitalTuner_out端口,并且我在属性更改监听器中编写了代码,当中心频率通过我的自定义组件发生变化时,调用USRP_UHD设备上的setTunerCenterFrequency函数。我能够使用SCA资源管理器中的端口连接它们。
问题是,即使在我将update_available_usrp_seq设备中的USRP_UHD属性设置为true并让其完成加载之后,也没有分配调谐器。我知道我必须使用前端调谐器分配结构来调用USRP_UHD设备allocateCapacity函数。我已经为DeviceKind =前端添加了一个分配属性依赖项。当我使用USRP_UHD添加依赖项时,只有设备类型和设备模型在列表中显示为可用。
如何通过IDE执行对allocateCapacity函数的调用?如果这是可能的,那么如何获得已分配给控制组件使用的调谐器的ID字符串?我的猜测是,我将使用connectionID,这是UsesConnection结构的一部分,可以从通过调用DigitalTuner>connections()返回的UsesConnectionSequence中检索。
发布于 2014-02-13 20:38:48
使用USRP_UHD设备的组件将需要分配调谐器。在组件的*.spd.xml中,指定如何分配设备。IDE将通过DeviceKind将分配放到xml文件中,但是使用这个简单的属性,ApplicationFactory_Impl.cpp不会调用设备"allocateCapacity“方法。要做到这一点,您需要手动修改xml以添加一些其他参数。
例如
<usesdevice id="DCE:11bafc63-d8ce-428b-8b4e-39cb96034e8c" type="usesDevice">
<propertyref refid="DCE:cdc5ee18-7ceb-4ae6-bf4c-31f983179b4d" value="FRONTEND:TUNER"/>
<structref refid="FRONTEND::tuner_allocation">
<simpleref refid="FRONTEND::tuner_allocation::allocation_id" value="SimFE2TestSink"/>
<simpleref refid="FRONTEND::tuner_allocation::center_frequency" value="857000000.0"/>
</structref>
</usesdevice>结构部分必须手工添加。
https://stackoverflow.com/questions/21028898
复制相似问题