已配置接收前端的接收通道超出范围 我有一个简单的C++测试程序,用于现在工作的ET3TX310。我试图简单地设置一个USRP的两个通道的两个中心频率。当我尝试在第二个通道上设置任何内容时,会出现上述超出范围的错误

已配置接收前端的接收通道超出范围 我有一个简单的C++测试程序,用于现在工作的ET3TX310。我试图简单地设置一个USRP的两个通道的两个中心频率。当我尝试在第二个通道上设置任何内容时,会出现上述超出范围的错误,c++,gnuradio,uhd,C++,Gnuradio,Uhd,我遇到通道超出范围错误的崩溃: $ ./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... -- Loadin

我遇到通道超出范围错误的崩溃:

    $ ./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;
}
int main(无效)
{
//来源
gr::uhd::usrp_源::sptr usrp1;
常量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(0,1);
usrp1=gr::uhd::usrp\u source::make(usrp\u addr,usrp\u args);
usrp1->set_subdev_spec(std::string(“A:AB B:AB”),0);
usrp1->设置时钟源(“外部”);
usrp1->设置采样率(5.0e6);
usrp1->设置中心频率(70e6,0);//这没问题
usrp1->set_center_freq(70e6,1);//此处崩溃,RX Chan超出范围错误!
printf(“测试完成!\n”);
返回0;
}
<> P>我在搜索中发现的唯一的东西是确保Python Press被正确设置(而且对于它的Heck,我确信它指向了SITEYSp打包),但是它又似乎与GRC相关,而不是C++。 我将Ubuntu 14.04.4和UHD 3.9.1与gnuradio 3.7.8.1(我也尝试了3.7.9.2)一起使用,得到了同样的结果


硬件是一个Ettus x310,带有两个BasicRx子板。

gnuradio/uhd邮件列表中的某个人帮助了我。向量初始化似乎是错误的:

替换: stream_args.channels=std::vector(0,1); 用这两条线: stream_args.channels.push_back(0)
流参数通道。推回(1)

还有其他更简洁的方法,但这就足够了


-Bob

gnuradio/uhd邮件列表中的某个人帮助了我。向量初始化似乎是错误的:

替换: stream_args.channels=std::vector(0,1); 用这两条线: stream_args.channels.push_back(0)
流参数通道。推回(1)

还有其他更简洁的方法,但这就足够了

-鲍勃