GNU Radio's SATNOGS Package
multi_format_msg_sink.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
4  *
5  * Copyright (C) 2016,2017, Libre Space Foundation <http://librespacefoundation.org/>
6  *
7  * This program 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 of the License, or
10  * (at your option) any later version.
11  *
12  * This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef INCLUDED_SATNOGS_MULTI_FORMAT_MSG_SINK_H
22 #define INCLUDED_SATNOGS_MULTI_FORMAT_MSG_SINK_H
23 
24 #include <satnogs/api.h>
25 #include <gnuradio/block.h>
26 
27 namespace gr {
28 namespace satnogs {
29 
30 /*!
31  * \brief Block accepting clear text messages from various decoders.
32  * Its purpose is to forward these messages at other services, programs,
33  * stdout, etc,
34  *
35  * \ingroup satnogs
36  *
37  */
38 class SATNOGS_API multi_format_msg_sink : virtual public gr::block {
39 public:
40  typedef boost::shared_ptr<multi_format_msg_sink> sptr;
41 
42  /*!
43  * \brief Block accepting clear text messages from various decoders.
44  * Its purpose is to either print these messages to stdout or save them
45  * in text format in a file.
46  *
47  * Depending on format parameter, the contents of each message are
48  * converted to hexademical, binary or ASCII format.
49  *
50  * @param format the format that will used to display the messages.
51  * 0: Clear Text 1: Hexademical 2: Binary
52  * @param timestamp if set, a ISO 8601 timestamp is inserted in front of
53  * each message
54  * @param out_stdout if set, the messages are displayed in the stdout.
55  * Otherwise messages are saved in a text file
56  * @param filepath specifies the file path of the text file
57  */
58  static sptr
59  make(size_t format, bool timestamp = true,
60  bool out_stdout = true,
61  const std::string &filepath = "");
62 };
63 
64 } // namespace satnogs
65 } // namespace gr
66 
67 #endif /* INCLUDED_SATNOGS_multi_format_MSG_SINK_H */
68 
auto format(const std::locale &loc, const CharT *fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT > &>(), fmt, tp), std::basic_string< CharT >
Definition: date.h:5927
Block accepting clear text messages from various decoders. Its purpose is to forward these messages a...
Definition: multi_format_msg_sink.h:38
Definition: amsat_duv_decoder.h:29
boost::shared_ptr< multi_format_msg_sink > sptr
Definition: multi_format_msg_sink.h:40
#define SATNOGS_API
Definition: api.h:30