将USRP_UHD与IDE Chalkboard一起使用

时间:2014-01-09 19:02:19

标签: redhawksdr

我正在尝试编写一个简单的控件组件,允许我通过Chalkboard启动USRP_UHD设备。我目前的环境是CentOS 6.4和Redhawk 1.9.0。

我编写的组件使用了DigitalTuner_out端口,我在属性更改侦听器中编写代码,以便在中心频率通过我的自定义组件更改时调用USRP_UHD设备上的setTunerCenterFrequency函数。我可以使用SCA资源管理器中的端口连接它们。

问题是,即使我将USRP_UHD设备中的update_available_usrp_seq属性设置为true并让它完成加载,也没有分配调谐器。我知道我必须使用前端调谐器分配结构调用USRP_UHD设备的allocateCapacity函数。我已经为DeviceKind = FRONTEND添加了一个分配属性依赖项。当我使用USRP_UHD添加依赖项时,只有设备类型和设备模型显示在列表中可用。

如何通过IDE对allocateCapacity函数执行此调用?如果可以,那么如何获取分配给控制组件使用的调谐器的ID字符串?我的猜测是我将使用connectionID,它是UsesConnection结构的一部分,可以从调用DigitalTuner_out-> connections()返回的UsesConnectionSequence中检索。

1 个答案:

答案 0 :(得分:1)

使用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>

必须手动添加structref部分。