diff options
author | Roman Khassraf <roman@khassraf.at> | 2015-04-12 18:09:45 +0200 |
---|---|---|
committer | Roman Khassraf <roman@khassraf.at> | 2015-04-12 18:09:45 +0200 |
commit | 717b57b96b82a5b71468f8d8df57f30f2b5bb3b3 (patch) | |
tree | aa160b8595c09d5a880269d44d35a8bb592e27a1 | |
parent | e571e96518aaedbbb858c6c2b0ad536ea62722c6 (diff) |
Added option to prepend framenumber in bursts_printer
-rw-r--r-- | grc/misc_utils/gsm_bursts_printer.xml | 16 | ||||
-rw-r--r-- | include/grgsm/misc_utils/bursts_printer.h | 2 | ||||
-rw-r--r-- | lib/misc_utils/bursts_printer_impl.cc | 14 | ||||
-rw-r--r-- | 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 @@ <key>gsm_bursts_printer</key> <import>import grgsm</import> <import>import pmt</import> - <make>grgsm.bursts_printer(pmt.intern($prepend_string))</make> + <make>grgsm.bursts_printer(pmt.intern($prepend_string), $prepend_fnr)</make> <param> <name>Prepend String</name> @@ -13,6 +13,20 @@ <type>string</type> <hide>part</hide> </param> + <param> + <name>Prepend Frame Number</name> + <key>prepend_fnr</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>bursts</name> 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_len; ii++) { std::cout << std::setprecision(1) << static_cast<int>(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(); }; |