【问题标题】:Allocation of Front End II interface compliant device前端 II 接口兼容设备的分配
【发布时间】:2014-02-28 03:20:27
【问题描述】:

我在 Centos 6.4(32 位)操作系统上使用 REDHAWK 1.9。

我有一个符合调谐器 FrontEnd(FE) II 接口的设备。 FEII 兼容设备的分配是通过结构 (frontend_tuner_allocation)。 IDE 似乎不允许在 implementations 选项卡上定义此分配。

我看了REDHAWK UHD device usage。它描述了如何进行必要的连接,但我没有看到如何通过调谐器分配结构进行分配。

我已经看到示例(离线)在哪里执行此分配,分配结构必须手动编码到 xml 文件中。我在一种情况下看到这是在组件 spd.xml 文件中完成的。我有另一个例子,它是在波形中完成的。

示例 1: 在组件 spd.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>

示例 2: 在波形spd.xml中

   <usesdevicedependencies>
    <usesdevice id="DCE:93a650f5-719f-4dc3-8143-fd438b94c19f" type="usesXX">
      <propertyref refid="DCE:cdc5ee18-7ceb-4ae6-bf4c-31f983179b4d" value="FRONTEND::TUNER"/>
      <structref refid="FRONTEND::tuner_allocation">
        <simpleref refid="FRONTEND::tuner_allocation::tuner_type" value="RX_DIGITIZER_CHANNELIZER"/>
        <simpleref refid="FRONTEND::tuner_allocation::allocation_id" value="XXDevice"/>
        <simpleref refid="FRONTEND::tuner_allocation::center_frequency" value="100000000"/>
        <simpleref refid="FRONTEND::tuner_allocation::bandwidth" value="128000"/>
        <simpleref refid="FRONTEND::tuner_allocation::sample_rate" value="256000"/>
        <simpleref refid="FRONTEND::tuner_allocation::group_id" value=""/>
        <simpleref refid="FRONTEND::tuner_allocation::rf_flow_id" value=""/>
      </structref>
    </usesdevice>
  </usesdevicedependencies>

如何分配 FrontEnd Tuner 的最佳方式?

【问题讨论】:

    标签: redhawksdr


    【解决方案1】:

    没有真正的“最佳”方式来分配前端调谐器设备。这实际上取决于哪种方式最适合您的特定场景。

    您提供的两个示例是通过 XML 分配前端调谐器的有效方法,但还有另一个选项(使用 python)可能有助于阐明幕后发生的事情。

    假设您的设备已经在运行:

    from ossie.utils import redhawk
    from ossie.cf import CF
    
    # Attach to the domain
    domain = redhawk.attach("REDHAWK_DEV")
    
    # Locate your FEI device
    myFEIDevice = None
    for device in domain.devices:
        if device.name == "myFEIDevice":
            myFEIDevice = device
    
    # Sanity check
    if not myFEIDevice:
        raise Exception("Unable to locate myFEIDevice!")
    

    此时,您的 FEI 设备应该接受allocateCapacity(tunerRequestProps) 呼叫:

    from ossie.utils import uuid
    
    # Setup tuning variables
    allocationId = str(uuid.uuid4())
    tunerType = "RX_DIGITIZER_CHANNELIZER"
    centerFreq = 100e6
    sampleRate = 48000.0
    sampleRateTol = 10.0
    bandwidth = 16000.0
    bandwidthTol = 10.0
    deviceControl = False
    groupId = ""
    rfFlowId = ""
    
    # Setup allocation request properties
    props = []
    props.append(CF.DataType("FRONTEND::tuner_allocation::tuner_type", tunerType))
    props.append(CF.DataType("FRONTEND::tuner_allocation::allocation_id", allocationId))
    props.append(CF.DataType("FRONTEND::tuner_allocation::center_frequency", centerFreq))
    props.append(CF.DataType("FRONTEND::tuner_allocation::bandwidth", bandwidth))
    props.append(CF.DataType("FRONTEND::tuner_allocation::bandwidth_tolerance", bandwidthTol))
    props.append(CF.DataType("FRONTEND::tuner_allocation::sample_rate", sampleRate))
    props.append(CF.DataType("FRONTEND::tuner_allocation::sample_rate_tolerance", sampleRateTol))
    props.append(CF.DataType("FRONTEND::tuner_allocation::device_control", deviceControl))
    props.append(CF.DataType("FRONTEND::tuner_allocation::group_id", groupId))
    props.append(CF.DataType("FRONTEND::tuner_allocation::rf_flow_id", rfFlowId))
    
    # Setup tuner request struct properties
    fe_alloc_props = {}
    fe_alloc_props["FRONTEND::tuner_allocation"] = props
    
    # Attempt to allocate your device
    allocationResult = myFEIDevice.allocateCapacity(fe_alloc_props)
    

    此时,如果分配成功,您应该会看到分配请求现在显示在设备的 frontend_tuner_status 属性中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多