1

デュアル チャンネル チューナーがあり、Frontend 2.0 を使用して 2 つのチャンネルを割り当てようとしています。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各チューナーに対して呼び出しを行う必要があります。2 つのチューナーを割り当てるには、 を 2 回呼び出しますallocateCapacity

このコンテキストの容量allocateCapacityは、デバイスの容量ではなく、 に渡される要求を参照しています。一度に 1 つのリクエストを行う必要があります。つまり、ご覧のとおり、リクエストの長さは 1 にする必要があります。

デバイスの容量は、frontend_tuner_status各チューナーのエントリを持つ構造体シーケンス プロパティを使用してアドバタイズされます。デュアル チューナーの場合、frontend_tuner_status structシーケンスには 2 つのエントリが必要です。これは、既知で一定の場合に設定できますが.prf.xml、実行時にデバイス コードに設定する方が一般的です。チューナーが 2 つあることを指定するには、frontend_tuner_status構造体シーケンスに 2 つの構造体エントリを追加します (prf または実行時に)。

USRP_UHD は、例として使用できる複数のチューナーをサポートする FEI 2.0 デバイスの例です。

于 2014-11-11T17:24:18.427 に答える