diff options
Diffstat (limited to 'host/utils/uhd_cal_tx_dc_offset.cpp')
-rw-r--r-- | host/utils/uhd_cal_tx_dc_offset.cpp | 39 |
1 files changed, 6 insertions, 33 deletions
diff --git a/host/utils/uhd_cal_tx_dc_offset.cpp b/host/utils/uhd_cal_tx_dc_offset.cpp index ed1b85bb3..5ef9f823c 100644 --- a/host/utils/uhd_cal_tx_dc_offset.cpp +++ b/host/utils/uhd_cal_tx_dc_offset.cpp @@ -90,33 +90,11 @@ static double tune_rx_and_tx(uhd::usrp::multi_usrp::sptr usrp, const double tx_l } /*********************************************************************** - * Data capture routine - **********************************************************************/ -static void capture_samples(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr rx_stream, std::vector<std::complex<float> > &buff){ - uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); - stream_cmd.num_samps = buff.size(); - stream_cmd.stream_now = true; - usrp->issue_stream_cmd(stream_cmd); - uhd::rx_metadata_t md; - const size_t num_rx_samps = rx_stream->recv(&buff.front(), buff.size(), md); - - //validate the received data - if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ - throw std::runtime_error(str(boost::format( - "Unexpected error code 0x%x" - ) % md.error_code)); - } - if (num_rx_samps != buff.size()){ - throw std::runtime_error("did not get all the samples requested"); - } -} - -/*********************************************************************** * Main **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ std::string args; - double rate, tx_wave_freq, tx_wave_ampl, rx_offset; + double tx_wave_freq, tx_wave_ampl, rx_offset; double freq_start, freq_stop, freq_step; size_t nsamps; @@ -125,7 +103,6 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ ("help", "help message") ("verbose", "enable some verbose") ("args", po::value<std::string>(&args)->default_value(""), "device address args [default = \"\"]") - ("rate", po::value<double>(&rate)->default_value(12.5e6), "RX and TX sample rate in Hz") ("tx_wave_freq", po::value<double>(&tx_wave_freq)->default_value(507.123e3), "Transmit wave frequency in Hz") ("tx_wave_ampl", po::value<double>(&tx_wave_ampl)->default_value(0.7), "Transmit wave amplitude in counts") ("rx_offset", po::value<double>(&rx_offset)->default_value(.9344e6), "RX LO offset from the TX LO in Hz") @@ -160,12 +137,8 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ usrp->set_rx_antenna("CAL"); usrp->set_tx_antenna("CAL"); - //set optimum gain settings - set_optimum_gain(usrp); - - //set the sample rates - usrp->set_rx_rate(rate); - usrp->set_tx_rate(rate); + //set optimum defaults + set_optimum_defaults(usrp); //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats @@ -176,7 +149,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ threads.create_thread(boost::bind(&tx_thread, usrp, tx_wave_freq, tx_wave_ampl)); //re-usable buffer for samples - std::vector<std::complex<float> > buff(nsamps); + std::vector<std::complex<float> > buff; //store the results here std::vector<result_t> results; @@ -195,7 +168,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ //capture initial uncorrected value usrp->set_tx_dc_offset(std::complex<double>(0, 0)); - capture_samples(usrp, rx_stream, buff); + capture_samples(usrp, rx_stream, buff, nsamps); const double initial_dc_dbrms = compute_tone_dbrms(buff, bb_dc_freq/actual_rx_rate); //bounds and results from searching @@ -215,7 +188,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ usrp->set_tx_dc_offset(correction); //receive some samples - capture_samples(usrp, rx_stream, buff); + capture_samples(usrp, rx_stream, buff, nsamps); const double dc_dbrms = compute_tone_dbrms(buff, bb_dc_freq/actual_rx_rate); |