GNU Radio Radar Toolbox
signal_generator_sync_pulse_c.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2014 Communications Engineering Lab, KIT.
4  *
5  * This is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3, or (at your option)
8  * any later version.
9  *
10  * This software is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this software; see the file COPYING. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 
22 #ifndef INCLUDED_RADAR_SIGNAL_GENERATOR_SYNC_PULSE_C_H
23 #define INCLUDED_RADAR_SIGNAL_GENERATOR_SYNC_PULSE_C_H
24 
25 #include <gnuradio/sync_block.h>
26 #include <radar/api.h>
27 
28 namespace gr {
29 namespace radar {
30 
31 /*!
32  * \brief This block generates a signal for the synchronization of the USRP Echotimer in
33  * baseband. The signal is pulsed with a constant amplitude with various pulse length and
34  * wait samples in between. It is structured by alternating wait parts and burst parts and
35  * starting with the first wait part. The pulses are full real signals.
36  *
37  * \param packet_len The packet length has to be longer or equal than the sum of pulse_len
38  * and pulse_pause. \param pulse_len The length of the pulses are defined in a vector and
39  * given in number of samples. The pulses are generated alternating with the wait samples
40  * defined in pulse_pause. \param pulse_pause The wait samples between pulses are defined
41  * in a vector. The first segment of the whole signal is the first element in the
42  * pulse_pause vector. This element can be zero. \param pulse_amplitude Pulse amplitude of
43  * real signal \param len_key Packet length key for tagged stream
44  *
45  * \ingroup radar
46  *
47  */
48 class RADAR_API signal_generator_sync_pulse_c : virtual public gr::sync_block
49 {
50 public:
51  typedef boost::shared_ptr<signal_generator_sync_pulse_c> sptr;
52 
53  /*!
54  * \brief Return a shared_ptr to a new instance of
55  * radar::signal_generator_sync_pulse_c.
56  *
57  * To avoid accidental use of raw pointers, radar::signal_generator_sync_pulse_c's
58  * constructor is in a private implementation
59  * class. radar::signal_generator_sync_pulse_c::make is the public interface for
60  * creating new instances.
61  */
62  static sptr make(int packet_len,
63  std::vector<int> pulse_len,
64  std::vector<int> pulse_pause,
65  float pulse_amplitude,
66  const std::string len_key = "packet_len");
67 };
68 
69 } // namespace radar
70 } // namespace gr
71 
72 #endif /* INCLUDED_RADAR_SIGNAL_GENERATOR_SYNC_PULSE_C_H */
This block generates a signal for the synchronization of the USRP Echotimer in baseband. The signal is pulsed with a constant amplitude with various pulse length and wait samples in between. It is structured by alternating wait parts and burst parts and starting with the first wait part. The pulses are full real signals.
Definition: signal_generator_sync_pulse_c.h:48
Definition: crop_matrix_vcvc.h:28
boost::shared_ptr< signal_generator_sync_pulse_c > sptr
Definition: signal_generator_sync_pulse_c.h:51
#define RADAR_API
Definition: api.h:31