2016-06-27 7 views
1

저는 지금 사용하던 Ettus x310에 간단한 C++ 테스트 프로그램을 가지고 있습니다. 나는 단순히 하나의 USRP의 두 채널 중 두 개의 센터 주파수를 설정하려고합니다. 위의 범위를 벗어남 오류는 두 번째 채널에서 아무 것도 설정하려고 할 때 발생합니다.구성된 RX 프론트 엔드에 대한 RX 채널 범위가 벗어납니다.

나는 범위 에러 밖으로 채널과 충돌을 얻을 :

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가 만들 수 있습니다 : 여기

$ ./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) 

내 테스트 프로그램입니다 제대로 설정 (그리고 그것의 지옥에 대한 나는 site_packages 가리 켰다)하지만 다시는 GRC와 C + +와 관련된 것으로 보인다.

저는 우분투 14.04.4와 UHD 3.9.1을 gnuradio 3.7.8.1 (필자도 3.7.9.2 시도)와 동일한 결과로 사용하고 있습니다.

하드웨어는 2 개의 BasicRx 도터 보드가있는 Ettus x310입니다.

답변

0

gnuradio/uhd 메일 링리스트의 누군가 나를 도왔습니다. 벡터 초기화가 잘못되었습니다.

바꾸기 : stream_args.channels = std :: vector (0, 1); 다음 두 줄을 사용하십시오. stream_args.channels.push_back (0);
stream_args.channels.push_back (1);

다른보다 간결한 방법이 있지만 지금은이 트릭을 수행합니다.

-obob