1

我有一个双通道调谐器,正在尝试使用 Frontend 2.0 分配两个通道。我正在使用 Redhawk 1.9 安装。当调用 allocateCapacity 时,它表示容量长度为 1。对于双通道调谐器,这应该是 2 吗?我以为我读到了 .prf.xml 文件中指定了调谐器的数量,但我看不到在哪里指定了调谐器的数量。这是正确的方法吗?

CORBA::Boolean DEVICE_i::allocateCapacity(const CF::Properties & capacities)
throw (CORBA::SystemException, CF::Device::InvalidCapacity, CF::Device::InvalidState) {
        std::cout << "In DEVICE_i::allocateCapacity...capacities length = " << capacities.length() << std::endl;
4

1 回答 1

1

allocateCapacity应该为每个调谐器进行调用。要分配两个调谐器,请两次调用allocateCapacity.

此上下文中的容量是指传递给 的请求,allocateCapacity而不是设备容量。如您所见,一次应发出一个请求,这意味着请求的长度应为 1。

设备的容量使用frontend_tuner_statusstruct sequence 属性进行通告,每个调谐器都有一个条目。frontend_tuner_status struct对于双调谐器,序列中应该有两个条目。这可以在.prf.xml已知和常量中填充,但更常见的是在运行时填充到设备代码中。要指定有两个调谐器,请将两个结构条目添加到frontend_tuner_status结构序列(在 prf 中或在运行时)。

USRP_UHD 是支持多个调谐器的 FEI 2.0 设备示例,您可以将其用作示例。

于 2014-11-11T17:24:18.427 回答