저는 지금 사용하던 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입니다.