aboutsummaryrefslogtreecommitdiffstats
path: root/host/utils/uhd_cal_tx_dc_offset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/utils/uhd_cal_tx_dc_offset.cpp')
-rw-r--r--host/utils/uhd_cal_tx_dc_offset.cpp39
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);