GNU Radio Manual and C++ API Reference  3.7.9.2
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
hdlc_framer_pb.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2014 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  *
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 #ifndef INCLUDED_DIGITAL_HDLC_FRAMER_PB_H
24 #define INCLUDED_DIGITAL_HDLC_FRAMER_PB_H
25 
26 #include <gnuradio/digital/api.h>
27 #include <gnuradio/sync_block.h>
28 
29 namespace gr {
30  namespace digital {
31 
32  /*!
33  * \brief HDLC framer which takes in PMT binary blobs and outputs HDLC
34  * frames as unpacked bits, with CRC and bit stuffing added. The first sample
35  * of the frame is tagged with the tag frame_tag_name and includes a
36  * length field for tagged_stream use.
37  *
38  * This block outputs one whole frame at a time; if there is not enough
39  * output buffer space to fit a frame, it is pushed onto a queue. As a result
40  * flowgraphs which only run for a finite number of samples may not receive
41  * all frames in the queue, due to the scheduler's granularity. For
42  * flowgraphs that stream continuously (anything using a USRP) this should
43  * not be an issue.
44  *
45  * \ingroup pkt_operators_blk
46  *
47  */
48  class DIGITAL_API hdlc_framer_pb : virtual public gr::sync_block
49  {
50  public:
51  typedef boost::shared_ptr<hdlc_framer_pb> sptr;
52 
53  /*!
54  * \brief Return a shared_ptr to a new instance of digital::hdlc_framer.
55  *
56  * \param frame_tag_name: The tag to add to the first sample of each frame.
57  */
58  static sptr make(const std::string frame_tag_name);
59  };
60 
61  } // namespace digital
62 } // namespace gr
63 
64 #endif /* INCLUDED_DIGITAL_HDLC_FRAMER_PB_H */
65 
boost::shared_ptr< hdlc_framer_pb > sptr
Definition: hdlc_framer_pb.h:51
#define DIGITAL_API
Definition: gr-digital/include/gnuradio/digital/api.h:30
Include this header to use the message passing features.
Definition: logger.h:131
synchronous 1:1 input to output with historyOverride work to provide the signal processing implementa...
Definition: sync_block.h:37
HDLC framer which takes in PMT binary blobs and outputs HDLC frames as unpacked bits, with CRC and bit stuffing added. The first sample of the frame is tagged with the tag frame_tag_name and includes a length field for tagged_stream use.
Definition: hdlc_framer_pb.h:48