GNU Radio Radar Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Macros
split_cc.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 #ifndef INCLUDED_RADAR_SPLIT_CC_H
22 #define INCLUDED_RADAR_SPLIT_CC_H
23 
24 #include <radar/api.h>
25 #include <gnuradio/tagged_stream_block.h>
26 
27 namespace gr {
28  namespace radar {
29 
30  /*!
31  * \brief This block splits a tagged stream into segments. As packet_parts you give the structure of the packet, e.g. (10, 20, 5). With the packet number you can choose which packet shall be pushed to output. Counting begins on zero. E.g. packet_num=1 returns 20 items.
32  *
33  * \param packet_num Number of packet to push to output
34  * \param packet_parts Packet structure as vector of packet length
35  * \param len_key Packet length key for tagged stream
36  *
37  * \ingroup radar
38  *
39  */
40  class RADAR_API split_cc : virtual public gr::tagged_stream_block
41  {
42  public:
43  typedef boost::shared_ptr<split_cc> sptr;
44 
45  /*!
46  * \brief Return a shared_ptr to a new instance of radar::split_cc.
47  *
48  * To avoid accidental use of raw pointers, radar::split_cc's
49  * constructor is in a private implementation
50  * class. radar::split_cc::make is the public interface for
51  * creating new instances.
52  */
53  static sptr make(int packet_num, const std::vector<int> packet_parts, const std::string& len_key="packet_len");
54  };
55 
56  } // namespace radar
57 } // namespace gr
58 
59 #endif /* INCLUDED_RADAR_SPLIT_CC_H */
60 
This block splits a tagged stream into segments. As packet_parts you give the structure of the packet...
Definition: split_cc.h:40
boost::shared_ptr< split_cc > sptr
Definition: split_cc.h:43
#define RADAR_API
Definition: api.h:30