2016-06-27 8 views
1

У меня есть простая программа тестирования C++ на Ettus x310, которая раньше работала. Я пытаюсь просто установить две центральные частоты двух каналов одного USRP. Вышеприведенная ошибка вне диапазона возникает, когда я пытаюсь установить что-либо на 2-м канале.RX-канал вне диапазона для сконфигурированных интерфейсов RX

я получаю аварию с каналом из ошибок диапазона:

$ ./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; 
} 

Единственное Ive нашел до сих пор в поиске, удостоверяются 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.

ответ

0

Кто-то из списка рассылки gnuradio/uhd помог мне. Похоже, что инициализация вектора была неправильной:

Заменить: stream_args.channels = std :: vector (0, 1); С этими двумя строками: stream_args.channels.push_back (0);
stream_args.channels.push_back (1);

Есть и другие более сжатые методы, но на данный момент это делает трюк.

-Bob

 Смежные вопросы

  • Нет связанных вопросов^_^