Распределение двухканального тюнера

У меня есть двухканальный тюнер, и я пытаюсь выделить два канала с помощью 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;

person michaelk_sw    schedule 03.10.2014    source источник


Ответы (1)


Вызов allocateCapacity должен быть сделан для каждого тюнера. Чтобы выделить два тюнера, сделайте два вызова allocateCapacity.

Под емкостью в этом контексте понимается запрос, который передается в allocateCapacity, а не емкость Устройства. Один запрос должен быть сделан за раз, то есть длина запроса должна быть 1, как вы видите.

Емкость устройства объявляется с помощью свойства последовательности структур frontend_tuner_status, которое имеет запись для каждого тюнера. Для двойного тюнера в последовательности frontend_tuner_status struct должно быть две записи. Это может быть заполнено в .prf.xml, если известно и постоянно, но чаще заполняется во время выполнения в коде устройства. Чтобы указать наличие двух тюнеров, добавьте две записи структуры в последовательность структур frontend_tuner_status (либо в prf, либо во время выполнения).

USRP_UHD — это пример устройства FEI 2.0, поддерживающего несколько тюнеров, которые вы можете использовать в качестве примера.

person jkb    schedule 11.11.2014