RX通道超出配置的RX前端的范围

RX channel out of range for configured RX frontends

本文关键字:RX 范围 前端 通道 配置      更新时间:2023-10-16

我在Ettus x310上有一个简单的c++测试程序,它过去可以工作,现在不能了。我试图简单地设置一个USRP的两个频道的两个中心频率。当我尝试在第二个通道上设置任何东西时,会出现上述超出范围的错误。

我得到一个崩溃与通道超出范围错误:

    $ ./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),但这似乎与GRC有关,而不是c++。

我正在使用Ubuntu 14.04.4和UHD 3.9.1与gnuradio 3.7.8.1(我也尝试过3.7.9.2),结果相同。

硬件是一个Ettus x310与两个BasicRx子板。

gnuradio/uhd邮件列表中有人帮助了我。vector初始化错误:

替换:stream_args。通道= std::vector (0,1);用这两行:stream_args.channels。Push_back (0);
stream_args.channels。Push_back (1);

还有其他更简洁的方法,但是现在这个方法就可以了。

鲍勃