24 #include <boost/foreach.hpp>
25 #include <boost/format.hpp>
35 const double start_fracs,
36 const double samp_rate,
37 const double idle_duration,
38 const double burst_duration,
39 const std::string &length_tag_name =
""
42 "uhd tag source demo",
43 gr::io_signature::make(0, 0, 0),
44 gr::io_signature::make(1, 1, sizeof(std::complex<float>))
46 _time_secs(start_secs),
47 _time_fracs(start_fracs),
48 _samp_rate(samp_rate),
49 _samps_per_burst(samp_rate*burst_duration),
50 _cycle_duration(idle_duration + burst_duration),
51 _samps_left_in_burst(1),
53 _firstrun(not length_tag_name.empty()),
105 std::complex<float> *output =
reinterpret_cast<std::complex<float> *
>(output_items[0]);
106 for (
size_t i = 0; i < size_t(noutput_items); i++) {
107 output[i] = std::complex<float>(0.7, 0.7);
114 _do_new_burst =
false;
115 _samps_left_in_burst = _samps_per_burst;
131 _time_fracs += _cycle_duration;
133 _time_fracs = std::modf(_time_fracs, &intpart);
140 if (_samps_left_in_burst <
size_t(noutput_items)){
147 _do_new_burst =
true;
148 noutput_items = _samps_left_in_burst;
151 _samps_left_in_burst -= noutput_items;
152 return noutput_items;
158 const double _samp_rate;
160 const double _cycle_duration;