私は今使用していたEttus x310上で簡単なC++テストプログラムを持っています。私は単なるUSRPの2つのチャンネルから2つの中心周波数を設定するようにしています。上記の範囲外エラーは、第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;
}
アイブ氏は、これまでの検索で見つかった唯一のものは、PYTHONPATHがあることを確認しています正しく設定されています(そして、それは、site_packagesを指していることを確認しました)が、GRCと関連しているようでC++ではないようです。
gnuradio 3.7.8.1でUbuntu 14.04.4とUHD 3.9.1を使用しています(同じくIveも3.7.9.2を試しました)。
ハードウェアは、2つのBasicRxドーターボードを備えたEttus x310です。