From 717b57b96b82a5b71468f8d8df57f30f2b5bb3b3 Mon Sep 17 00:00:00 2001 From: Roman Khassraf Date: Sun, 12 Apr 2015 18:09:45 +0200 Subject: Added option to prepend framenumber in bursts_printer --- grc/misc_utils/gsm_bursts_printer.xml | 16 +++++++++++++++- include/grgsm/misc_utils/bursts_printer.h | 2 +- lib/misc_utils/bursts_printer_impl.cc | 14 +++++++++++--- lib/misc_utils/bursts_printer_impl.h | 3 ++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/grc/misc_utils/gsm_bursts_printer.xml b/grc/misc_utils/gsm_bursts_printer.xml index 5459872..6407571 100644 --- a/grc/misc_utils/gsm_bursts_printer.xml +++ b/grc/misc_utils/gsm_bursts_printer.xml @@ -4,7 +4,7 @@ gsm_bursts_printer import grgsm import pmt - grgsm.bursts_printer(pmt.intern($prepend_string)) + grgsm.bursts_printer(pmt.intern($prepend_string), $prepend_fnr) Prepend String @@ -13,6 +13,20 @@ string part + + Prepend Frame Number + prepend_fnr + False + bool + + + bursts diff --git a/include/grgsm/misc_utils/bursts_printer.h b/include/grgsm/misc_utils/bursts_printer.h index 908ffd9..b2dd1d1 100644 --- a/include/grgsm/misc_utils/bursts_printer.h +++ b/include/grgsm/misc_utils/bursts_printer.h @@ -50,7 +50,7 @@ namespace gr { * class. gsm::bursts_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 prepend_fnr=false); }; } // namespace gsm diff --git a/lib/misc_utils/bursts_printer_impl.cc b/lib/misc_utils/bursts_printer_impl.cc index cd42f12..8be1422 100644 --- a/lib/misc_utils/bursts_printer_impl.cc +++ b/lib/misc_utils/bursts_printer_impl.cc @@ -43,8 +43,15 @@ namespace gr { gsmtap_hdr * header = (gsmtap_hdr *)pmt::blob_data(header_plus_burst); int8_t * burst = (int8_t *)(pmt::blob_data(header_plus_burst))+sizeof(gsmtap_hdr); size_t burst_len=pmt::blob_length(header_plus_burst)-sizeof(gsmtap_hdr); + uint32_t frame_nr; std::cout << d_prepend_string; + if (d_prepend_fnr) + { + frame_nr = be32toh(header->frame_number); + std::cout << frame_nr << ":"; + } + for(int ii=0; ii(burst[ii]) << ""; @@ -53,21 +60,22 @@ namespace gr { } bursts_printer::sptr - bursts_printer::make(pmt::pmt_t prepend_string) + bursts_printer::make(pmt::pmt_t prepend_string, bool prepend_fnr) { return gnuradio::get_initial_sptr - (new bursts_printer_impl(prepend_string)); + (new bursts_printer_impl(prepend_string, prepend_fnr)); } /* * The private constructor */ - bursts_printer_impl::bursts_printer_impl(pmt::pmt_t prepend_string) + bursts_printer_impl::bursts_printer_impl(pmt::pmt_t prepend_string, bool prepend_fnr) : gr::block("bursts_printer", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)) { d_prepend_string = prepend_string; + d_prepend_fnr = prepend_fnr; message_port_register_in(pmt::mp("bursts")); set_msg_handler(pmt::mp("bursts"), boost::bind(&bursts_printer_impl::bursts_print, this, _1)); } diff --git a/lib/misc_utils/bursts_printer_impl.h b/lib/misc_utils/bursts_printer_impl.h index 21ca62e..5655920 100644 --- a/lib/misc_utils/bursts_printer_impl.h +++ b/lib/misc_utils/bursts_printer_impl.h @@ -34,8 +34,9 @@ namespace gr { private: void bursts_print(pmt::pmt_t burst); pmt::pmt_t d_prepend_string; + bool d_prepend_fnr; public: - bursts_printer_impl(pmt::pmt_t prepend_string); + bursts_printer_impl(pmt::pmt_t prepend_string, bool prepend_fnr=false); ~bursts_printer_impl(); }; -- cgit v1.2.3