diff options
author | eb <eb@221aa14e-8319-0410-a670-987f0aec2ac5> | 2009-03-19 19:59:48 +0000 |
---|---|---|
committer | eb <eb@221aa14e-8319-0410-a670-987f0aec2ac5> | 2009-03-19 19:59:48 +0000 |
commit | 1910719ec29a12be380b9fa3dcd3ab893ce87ce2 (patch) | |
tree | 87de344c79e51765761b63a65b8c5470036d6ecd /gr-usrp | |
parent | 06d584f74eb9407d804ce9d560c31d7c240b086f (diff) |
Merged remainder of eb/t348 10637:10648. This adds a -N <nsamples>
argument to usrp_siggen.py, usrp_siggen.cc and test_usrp_standard_tx.cc.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10650 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gr-usrp')
-rw-r--r-- | gr-usrp/apps/usrp_siggen.cc | 32 | ||||
-rw-r--r-- | gr-usrp/apps/usrp_siggen.h | 7 |
2 files changed, 25 insertions, 14 deletions
diff --git a/gr-usrp/apps/usrp_siggen.cc b/gr-usrp/apps/usrp_siggen.cc index b88e811fe5..11006851a1 100644 --- a/gr-usrp/apps/usrp_siggen.cc +++ b/gr-usrp/apps/usrp_siggen.cc @@ -60,20 +60,20 @@ str_to_subdev(std::string spec_str) usrp_siggen_sptr make_usrp_siggen(int which, usrp_subdev_spec spec, double rf_freq, int interp, double wfreq, int waveform, float amp, float gain, - float offset) + float offset, long long nsamples) { return gnuradio::get_initial_sptr(new usrp_siggen(which, spec, rf_freq, interp, wfreq, waveform, amp, gain, - offset)); + offset, nsamples)); } // Hierarchical block constructor, with no inputs or outputs usrp_siggen::usrp_siggen(int which, usrp_subdev_spec spec, double rf_freq, int interp, double wfreq, int waveform, float amp, float gain, - float offset) : - gr_top_block("usrp_siggen") + float offset, long long nsamples) + : gr_top_block("usrp_siggen") { usrp_sink_c_sptr usrp = usrp_make_sink_c(which, interp); @@ -126,7 +126,14 @@ usrp_siggen::usrp_siggen(int which, usrp_subdev_spec spec, siggen->set_waveform((gr_waveform_t)waveform); - connect(source, 0, usrp, 0); + if (nsamples > 0){ + gr_block_sptr head = gr_make_head(sizeof(gr_complex), nsamples); + connect(source, 0, head, 0); + connect(head, 0, usrp, 0); + } + else { + connect(source, 0, usrp, 0); + } } int main(int argc, char *argv[]) @@ -140,6 +147,7 @@ int main(int argc, char *argv[]) float gain = -1; // set the d'board PGA gain float offset = 0; // set waveform offset int waveform; + double nsamples = 0; // set the number of samples to transmit (0 -> inf) po::options_description cmdconfig("Program options"); cmdconfig.add_options() @@ -155,9 +163,10 @@ int main(int argc, char *argv[]) ("uniform", "generate Uniform random output") ("waveform-freq,w", po::value<double>(&wfreq), "set waveform frequency to FREQ") - ("amplitdue,a", po::value<float>(&), "set amplitude") + ("amplitude,a", po::value<float>(&), "set amplitude") ("gain,g", po::value<float>(&gain), "set output gain to GAIN") ("offset,o", po::value<float>(&offset), "set waveform offset to OFFSET") + ("nsamples,N", po::value<double>(&nsamples), "number of samples to send [default=+inf]") ; po::variables_map vm; @@ -199,14 +208,15 @@ int main(int argc, char *argv[]) waveform = GR_SIN_WAVE; } - printf("which: %d\n", which); - printf("interp: %d\n", interp); - printf("rf_freq: %g\n", rf_freq); - printf("amp: %f\n", amp); + printf("which: %d\n", which); + printf("interp: %d\n", interp); + printf("rf_freq: %g\n", rf_freq); + printf("amp: %f\n", amp); + printf("nsamples: %g\n", nsamples); usrp_siggen_sptr top_block = make_usrp_siggen(which, spec, rf_freq, interp, wfreq, waveform, - amp, gain, offset); + amp, gain, offset, (long long) nsamples); top_block->run(); diff --git a/gr-usrp/apps/usrp_siggen.h b/gr-usrp/apps/usrp_siggen.h index 009a2447e5..053c4bdfa7 100644 --- a/gr-usrp/apps/usrp_siggen.h +++ b/gr-usrp/apps/usrp_siggen.h @@ -31,7 +31,7 @@ typedef boost::shared_ptr<usrp_siggen> usrp_siggen_sptr; usrp_siggen_sptr make_usrp_siggen(int which, usrp_subdev_spec spec, double rf_freq, int interp, double wfreq, int waveform, float amp, float gain, - float offset); + float offset, long long nsamples); class usrp_siggen : public gr_top_block { @@ -39,11 +39,12 @@ private: usrp_siggen(int which, usrp_subdev_spec spec, double rf_freq, int interp, double wfreq, int waveform, float amp, float gain, - float offset); + float offset, long long nsamples); friend usrp_siggen_sptr make_usrp_siggen(int which, usrp_subdev_spec spec, double rf_freq, int interp, double wfreq, int waveform, float amp, float gain, - float offset); + float offset, + long long nsamples); public: gr_block_sptr source; |