GNU Radio 3.6.5 C++ API

burst_tagger.h

Go to the documentation of this file.
00001 /* -*- c++ -*- */
00002 /*
00003  * Copyright 2010,2013 Free Software Foundation, Inc.
00004  *
00005  * This file is part of GNU Radio
00006  *
00007  * GNU Radio is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation; either version 3, or (at your option)
00010  * any later version.
00011  *
00012  * GNU Radio is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with GNU Radio; see the file COPYING.  If not, write to
00019  * the Free Software Foundation, Inc., 51 Franklin Street,
00020  * Boston, MA 02110-1301, USA.
00021  */
00022 
00023 #ifndef INCLUDED_GR_BURST_TAGGER_H
00024 #define INCLUDED_GR_BURST_TAGGER_H
00025 
00026 #include <blocks/api.h>
00027 #include <gr_sync_block.h>
00028 
00029 namespace gr {
00030   namespace blocks {
00031 
00032     /*!
00033      * \brief Sets a burst on/off tag based on the value of the trigger input.
00034      * \ingroup peak_detectors_blk
00035      * \ingroup stream_tag_tools_blk
00036      *
00037      * \details
00038      * This block takes two inputs, a signal stream on the input
00039      * stream 0 and a trigger stream of shorts on input stream 1. If
00040      * the trigger stream goes above 0, a tag with the key "burst"
00041      * will be transmitted as a pmt::PMT_T. When the trigger signal
00042      * falls below 0, the "burst" tag will be transmitted as
00043      * pmt::PMT_F.
00044      *
00045      * The signal on stream 0 is retransmitted to output stream 0.
00046      */
00047     class BLOCKS_API burst_tagger : virtual public gr_sync_block
00048     {
00049     public:
00050       // gr::blocks::burst_tagger::sptr
00051       typedef boost::shared_ptr<burst_tagger> sptr;
00052 
00053       /*!
00054        * Build a burst tagger blocks.
00055        *
00056        * \param itemsize itemsize of the signal stream on input 0.
00057        */
00058       static sptr make(size_t itemsize);
00059 
00060       /*!
00061        * For the true burst tag, change the key name to \p key and a
00062        * new value of \p value.
00063        */
00064       virtual void set_true_tag(const std::string &key, bool value) = 0;
00065 
00066       /*!
00067        * For the false burst tag, change the key name to \p key and a
00068        * new value of \p value.
00069        */
00070       virtual void set_false_tag(const std::string &key, bool value) = 0;
00071     };
00072 
00073   } /* namespace blocks */
00074 } /* namespace gr */
00075 
00076 #endif /* INCLUDED_GR_BURST_TAGGER_H */