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 <gnuradio/block.h>
26
27namespace gr {
28namespace 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 */
38class SATNOGS_API multi_format_msg_sink : virtual public gr::block
39{
40public:
41 typedef std::shared_ptr<multi_format_msg_sink> sptr;
42
43 /*!
44 * \brief Block accepting clear text messages from various decoders.
45 * Its purpose is to either print these messages to stdout or save them
46 * in text format in a file.
47 *
48 * Depending on format parameter, the contents of each message are
49 * converted to hexademical, binary or ASCII format.
50 *
51 * @param format the format that will used to display the messages.
52 * 0: Clear Text 1: Hexademical 2: Binary
53 * @param timestamp if set, a ISO 8601 timestamp is inserted in front of
54 * each message
55 * @param out_stdout if set, the messages are displayed in the stdout.
56 * Otherwise messages are saved in a text file
57 * @param filepath specifies the file path of the text file
58 */
59 static sptr make(size_t format,
60 bool timestamp = true,
61 bool out_stdout = true,
62 const std::string& filepath = "");
63};
64
65} // namespace satnogs
66} // namespace gr
67
68#endif /* INCLUDED_SATNOGS_multi_format_MSG_SINK_H */
#define SATNOGS_API
Definition: api.h:19
Block accepting clear text messages from various decoders. Its purpose is to forward these messages a...
Definition: multi_format_msg_sink.h:39
static sptr make(size_t format, bool timestamp=true, bool out_stdout=true, const std::string &filepath="")
Block accepting clear text messages from various decoders. Its purpose is to either print these messa...
std::shared_ptr< multi_format_msg_sink > sptr
Definition: multi_format_msg_sink.h:41
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:5301
Definition: amsat_duv_decoder.h:29