Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <uhd/utils/thread_priority.hpp>
- #include <uhd/utils/safe_main.hpp>
- #include <uhd/usrp/multi_usrp.hpp>
- #include <uhd/exception.hpp>
- #include <uhd/types/tune_request.hpp>
- #include <boost/program_options.hpp>
- #include <boost/format.hpp>
- #include <boost/thread.hpp>
- #include <iostream>
- int UHD_SAFE_MAIN(int argc, char *argv[]) {
- uhd::set_thread_priority_safe();
- std::string device_args("type=x300,addr=192.168.30.2,second_addr=192.168.40.2");
- std::string subdev("A:0 A:1 B:0 B:1");
- //create a usrp device
- std::cout << std::endl;
- std::cout << boost::format("Creating the usrp device with: %s...") % device_args << std::endl;
- uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(device_args);
- //always select the subdevice first, the channel mapping affects the other settings
- std::cout << boost::format("subdev set to: %f") % subdev << std::endl;
- usrp->set_rx_subdev_spec(subdev);
- //sample rates for each channel
- double sample_rate0 = 100e6;
- double sample_rate1 = 50e6;
- double sample_rate2 = 25e6;
- double sample_rate3 = 5e6;
- // set sample 0
- std::cout << boost::format("Setting RX0 Rate: %f Msps...") % (sample_rate0 / 1e6) << std::endl;
- usrp->set_rx_rate(sample_rate0,0);
- std::cout << boost::format("Actual RX0 Rate: %f Msps...") % (usrp->get_rx_rate(0) / 1e6) << std::endl << std::endl;
- // set sample rate 1
- std::cout << boost::format("Setting RX1 Rate: %f Msps...") % (sample_rate1 / 1e6) << std::endl;
- usrp->set_rx_rate(sample_rate1,1);
- std::cout << boost::format("Actual RX1 Rate: %f Msps...") % (usrp->get_rx_rate(1) / 1e6) << std::endl << std::endl;
- // set sample rate 2
- std::cout << boost::format("Setting RX2 Rate: %f Msps...") % (sample_rate2 / 1e6) << std::endl;
- usrp->set_rx_rate(sample_rate2,2);
- std::cout << boost::format("Actual RX2 Rate: %f Msps...") % (usrp->get_rx_rate(2) / 1e6) << std::endl << std::endl;
- // set sample rate 3
- std::cout << boost::format("Setting RX3 Rate: %f Msps...") % (sample_rate3 / 1e6) << std::endl;
- usrp->set_rx_rate(sample_rate3,3);
- std::cout << boost::format("Actual RX3 Rate: %f Msps...") % (usrp->get_rx_rate(3) / 1e6) << std::endl << std::endl;
- std::cout << "------------------setup rx stream---------------------------" << std::endl;
- std::vector<size_t> channels;
- channels.push_back(0); // channel 0
- channels.push_back(1); // channel 1
- channels.push_back(2); // channel 2
- channels.push_back(3); // channel 3
- uhd::stream_args_t stream_args("sc16");
- stream_args.channels = channels;
- uhd::rx_streamer::sptr rx = usrp->get_rx_stream(stream_args);
- std::cout << "--------------error here-------------------------------" << std::endl;
- std::cout << boost::format("Actual RX0 Rate: %f Msps...") % (usrp->get_rx_rate(0) / 1e6) << std::endl << std::endl;
- std::cout << boost::format("Actual RX1 Rate: %f Msps...") % (usrp->get_rx_rate(1) / 1e6) << std::endl << std::endl;
- std::cout << boost::format("Actual RX2 Rate: %f Msps...") % (usrp->get_rx_rate(2) / 1e6) << std::endl << std::endl;
- std::cout << boost::format("Actual RX3 Rate: %f Msps...") % (usrp->get_rx_rate(3) / 1e6) << std::endl << std::endl;
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment