1

Ettus x310 で、以前は機能していた単純な C++ テスト プログラムを使用していますが、現在は機能していません。単一の USRP の 2 つのチャネルの 2 つの中心周波数を単純に設定しようとしています。2 番目のチャネルに何かを設定しようとすると、上記の範囲外エラーが発生します。

Channel out of range エラーでクラッシュします。

    $ ./t2j.out
    linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.009.001-0-gf7a15853

    -- X300 initialization sequence...
    -- Determining maximum frame size... 1472 bytes.
    -- Setup basic communication...
    -- Loading values from EEPROM...
    -- Setup RF frontend clocking...
    -- Radio 1x clock:200
    -- Initialize Radio0 control...
    -- Performing register loopback test... pass
    -- Initialize Radio1 control...
    -- Performing register loopback test... pass
    terminate called after throwing an instance of 'uhd::index_error'
      what():  LookupError: IndexError: multi_usrp: RX channel 140445275195320 out of range for configured RX frontends
    Aborted (core dumped)

ここに私のテストプログラムがあります:

int main( void )
{
// sources
gr::uhd::usrp_source::sptr  usrp1;

const std::string           usrp_addr = std::string( "addr=192.168.10.30" );
uhd::stream_args_t          usrp_args = uhd::stream_args_t( "fc32" );
usrp_args.channels = std::vector<size_t> ( 0, 1 );
usrp1 = gr::uhd::usrp_source::make( usrp_addr, usrp_args );
usrp1->set_subdev_spec( std::string( "A:AB B:AB" ), 0 );
usrp1->set_clock_source( "external" );
usrp1->set_samp_rate( 5.0e6 );

usrp1->set_center_freq( 70e6, 0 );    // this is OK
usrp1->set_center_freq( 70e6, 1 );   // crashes here With RX Chan out of Range Error!

printf( "test Done!\n" );

return 0;
}

これまでに検索で見つけた唯一のことは、PYTHONPATHが正しく設定されていることを確認することです(そして、それがsite_packagesを指していることを確認しました)が、これもC ++ではなくGRCに関連しているようです.

Ubuntu 14.04.4 と UHD 3.9.1 を gnuradio 3.7.8.1 (3.7.9.2 も試しました) で使用していますが、結果は同じです。

ハードウェアは、2 つの BasicRx ドーターボードを備えた Ettus x310 です。

4

1 に答える 1

0

gnuradio/uhd メーリング リストの誰かが助けてくれました。ベクトルの初期化が間違っていたようです:

置き換え: stream_args.channels = std::vector ( 0, 1 ); 次の 2 行で: stream_args.channels.push_back( 0 );
stream_args.channels.push_back(1);

もっと簡潔な方法は他にもありますが、今のところはこれでうまくいきます。

-ボブ

于 2016-06-29T01:53:15.920 に答える