diff options
author | Roman Khassraf <roman@khassraf.at> | 2015-07-26 13:47:26 +0200 |
---|---|---|
committer | Roman Khassraf <roman@khassraf.at> | 2015-07-26 13:47:26 +0200 |
commit | 2bf49e4dd58d1c0833bde8f6af3fe0d71b2b694b (patch) | |
tree | bbbe7f1963ff6ccf7bd5c360fcfe8b6fa1a1eafe | |
parent | 829eabb58c0e7c35d7abde55609b8c56154d7d7f (diff) |
Added option to message printer that allows printing the gsmtap header.
-rw-r--r-- | grc/misc_utils/gsm_message_printer.xml | 16 | ||||
-rw-r--r-- | include/grgsm/misc_utils/message_printer.h | 2 | ||||
-rw-r--r-- | lib/misc_utils/message_printer_impl.cc | 18 | ||||
-rw-r--r-- | lib/misc_utils/message_printer_impl.h | 3 |
4 files changed, 31 insertions, 8 deletions
diff --git a/grc/misc_utils/gsm_message_printer.xml b/grc/misc_utils/gsm_message_printer.xml index 8b44b22..7e390ed 100644 --- a/grc/misc_utils/gsm_message_printer.xml +++ b/grc/misc_utils/gsm_message_printer.xml @@ -4,7 +4,7 @@ <key>gsm_message_printer</key> <import>import grgsm</import> <import>import pmt</import> - <make>grgsm.message_printer(pmt.intern($prepend_string))</make> + <make>grgsm.message_printer(pmt.intern($prepend_string), $print_gsmtap_header)</make> <param> <name>Prepend String</name> @@ -13,6 +13,20 @@ <type>string</type> <hide>part</hide> </param> + <param> + <name>Print GSMTap header</name> + <key>print_gsmtap_header</key> + <value>False</value> + <type>bool</type> + <option> + <name>False</name> + <key>False</key> + </option> + <option> + <name>True</name> + <key>True</key> + </option> + </param> <sink> <name>msgs</name> diff --git a/include/grgsm/misc_utils/message_printer.h b/include/grgsm/misc_utils/message_printer.h index 3914707..d40352f 100644 --- a/include/grgsm/misc_utils/message_printer.h +++ b/include/grgsm/misc_utils/message_printer.h @@ -48,7 +48,7 @@ namespace gr { * class. gsm::message_printer::make is the public interface for * creating new instances. */ - static sptr make(pmt::pmt_t prepend_string); + static sptr make(pmt::pmt_t prepend_string, bool print_gsmtap_header=false); }; } // namespace gsm diff --git a/lib/misc_utils/message_printer_impl.cc b/lib/misc_utils/message_printer_impl.cc index d02e2fe..2599f65 100644 --- a/lib/misc_utils/message_printer_impl.cc +++ b/lib/misc_utils/message_printer_impl.cc @@ -41,7 +41,15 @@ namespace gr { gsmtap_hdr * header = (gsmtap_hdr *)message_plus_header; std::cout << d_prepend_string; - for(int ii=sizeof(gsmtap_hdr); ii<message_plus_header_len; ii++) + + int start_index = sizeof(gsmtap_hdr); + + if (d_print_gsmtap_header) + { + start_index = 0; + } + + for(int ii=start_index; ii<message_plus_header_len; ii++) { printf(" %02x", message_plus_header[ii]); } @@ -49,24 +57,24 @@ namespace gr { } message_printer::sptr - message_printer::make(pmt::pmt_t prepend_string) + message_printer::make(pmt::pmt_t prepend_string, bool print_gsmtap_header) { return gnuradio::get_initial_sptr - (new message_printer_impl(prepend_string)); + (new message_printer_impl(prepend_string, print_gsmtap_header)); } /* * The private constructor */ - message_printer_impl::message_printer_impl(pmt::pmt_t prepend_string) + message_printer_impl::message_printer_impl(pmt::pmt_t prepend_string, bool print_gsmtap_header) : gr::block("message_printer", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)) { d_prepend_string = prepend_string; + d_print_gsmtap_header = print_gsmtap_header; message_port_register_in(pmt::mp("msgs")); set_msg_handler(pmt::mp("msgs"), boost::bind(&message_printer_impl::message_print, this, _1)); - } /* diff --git a/lib/misc_utils/message_printer_impl.h b/lib/misc_utils/message_printer_impl.h index e82485e..e44288b 100644 --- a/lib/misc_utils/message_printer_impl.h +++ b/lib/misc_utils/message_printer_impl.h @@ -33,8 +33,9 @@ namespace gr { private: void message_print(pmt::pmt_t msg); pmt::pmt_t d_prepend_string; + bool d_print_gsmtap_header; public: - message_printer_impl(pmt::pmt_t prepend_string); + message_printer_impl(pmt::pmt_t prepend_string, bool print_gsmtap_header=false); ~message_printer_impl(); }; |