diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt index 101a121..2b94539 100644 --- a/grc/CMakeLists.txt +++ b/grc/CMakeLists.txt @@ -24,6 +24,5 @@ add_subdirectory(receiver) add_subdirectory(flow_control) add_subdirectory(misc_utils) install(FILES - gsm_block_tree.xml - grgsm_uplink_downlink_filter.xml DESTINATION share/gnuradio/grc/blocks + gsm_block_tree.xml DESTINATION share/gnuradio/grc/blocks ) diff --git a/grc/flow_control/CMakeLists.txt b/grc/flow_control/CMakeLists.txt index 30ddcad..a6a7319 100644 --- a/grc/flow_control/CMakeLists.txt +++ b/grc/flow_control/CMakeLists.txt @@ -23,5 +23,6 @@ install(FILES gsm_burst_timeslot_filter.xml gsm_dummy_burst_filter.xml gsm_burst_sdcch_subslot_splitter.xml - gsm_burst_sdcch_subslot_filter.xml DESTINATION share/gnuradio/grc/blocks + gsm_burst_sdcch_subslot_filter.xml + gsm_uplink_downlink_splitter.xml DESTINATION share/gnuradio/grc/blocks ) diff --git a/grc/grgsm_uplink_downlink_filter.xml b/grc/flow_control/gsm_uplink_downlink_splitter.xml similarity index 70% rename from grc/grgsm_uplink_downlink_filter.xml rename to grc/flow_control/gsm_uplink_downlink_splitter.xml index 65d852d..5c0c932 100644 --- a/grc/grgsm_uplink_downlink_filter.xml +++ b/grc/flow_control/gsm_uplink_downlink_splitter.xml @@ -1,10 +1,9 @@ - uplink_downlink_filter - grgsm_uplink_downlink_filter - GSM + Up/Down-link splitter + gsm_uplink_downlink_splitter import grgsm - grgsm.uplink_downlink_filter() + grgsm.uplink_downlink_splitter() in message diff --git a/grc/gsm_block_tree.xml b/grc/gsm_block_tree.xml index 69120f0..f9ff1ff 100644 --- a/grc/gsm_block_tree.xml +++ b/grc/gsm_block_tree.xml @@ -47,6 +47,7 @@ gsm_burst_sdcch_subslot_filter gsm_burst_fnr_filter gsm_dummy_burst_filter + gsm_uplink_downlink_splitter Utilities diff --git a/include/grgsm/CMakeLists.txt b/include/grgsm/CMakeLists.txt index 61f15bf..dc9b191 100644 --- a/include/grgsm/CMakeLists.txt +++ b/include/grgsm/CMakeLists.txt @@ -23,8 +23,7 @@ install(FILES plotting.hpp api.h - gsmtap.h - uplink_downlink_filter.h DESTINATION include/grgsm + gsmtap.h DESTINATION include/grgsm ) add_subdirectory(decoding) diff --git a/include/grgsm/flow_control/CMakeLists.txt b/include/grgsm/flow_control/CMakeLists.txt index a4156a4..9c20b59 100644 --- a/include/grgsm/flow_control/CMakeLists.txt +++ b/include/grgsm/flow_control/CMakeLists.txt @@ -26,5 +26,6 @@ install(FILES burst_timeslot_filter.h burst_sdcch_subslot_filter.h burst_fnr_filter.h - dummy_burst_filter.h DESTINATION include/grgsm/flow_control + dummy_burst_filter.h + uplink_downlink_splitter.h DESTINATION include/grgsm/flow_control ) diff --git a/include/grgsm/uplink_downlink_filter.h b/include/grgsm/flow_control/uplink_downlink_splitter.h similarity index 75% rename from include/grgsm/uplink_downlink_filter.h rename to include/grgsm/flow_control/uplink_downlink_splitter.h index dec4af6..c8f1321 100644 --- a/include/grgsm/uplink_downlink_filter.h +++ b/include/grgsm/flow_control/uplink_downlink_splitter.h @@ -21,8 +21,8 @@ */ -#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H -#define INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H +#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_H +#define INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_H #include #include @@ -35,17 +35,17 @@ namespace gr { * \ingroup grgsm * */ - class GRGSM_API uplink_downlink_filter : virtual public gr::block + class GRGSM_API uplink_downlink_splitter : virtual public gr::block { public: - typedef boost::shared_ptr sptr; + typedef boost::shared_ptr sptr; /*! - * \brief Return a shared_ptr to a new instance of grgsm::uplink_downlink_filter. + * \brief Return a shared_ptr to a new instance of grgsm::uplink_downlink_splitter. * - * To avoid accidental use of raw pointers, grgsm::uplink_downlink_filter's + * To avoid accidental use of raw pointers, grgsm::uplink_downlink_splitter's * constructor is in a private implementation - * class. grgsm::uplink_downlink_filter::make is the public interface for + * class. grgsm::uplink_downlink_splitter::make is the public interface for * creating new instances. */ static sptr make(); @@ -54,5 +54,5 @@ namespace gr { } // namespace grgsm } // namespace gr -#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H */ +#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_H */ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 402ad75..660bbfd 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -49,6 +49,7 @@ list(APPEND grgsm_sources flow_control/burst_sdcch_subslot_filter_impl.cc flow_control/burst_fnr_filter_impl.cc flow_control/dummy_burst_filter_impl.cc + flow_control/uplink_downlink_splitter_impl.cc misc_utils/controlled_rotator_cc_impl.cc misc_utils/controlled_fractional_resampler_cc_impl.cc misc_utils/msg_to_tag_impl.cc @@ -66,7 +67,6 @@ list(APPEND grgsm_sources qa_utils/message_source_impl.cc qa_utils/message_sink_impl.cc decryption/decryption_impl.cc - uplink_downlink_filter_impl.cc ) diff --git a/lib/uplink_downlink_filter_impl.cc b/lib/flow_control/uplink_downlink_splitter_impl.cc similarity index 80% rename from lib/uplink_downlink_filter_impl.cc rename to lib/flow_control/uplink_downlink_splitter_impl.cc index 5dd41f2..b98102c 100644 --- a/lib/uplink_downlink_filter_impl.cc +++ b/lib/flow_control/uplink_downlink_splitter_impl.cc @@ -25,34 +25,34 @@ #endif #include -#include "uplink_downlink_filter_impl.h" +#include "uplink_downlink_splitter_impl.h" #include #define BURST_SIZE 148 namespace gr { namespace grgsm { - uplink_downlink_filter::sptr - uplink_downlink_filter::make() + uplink_downlink_splitter::sptr + uplink_downlink_splitter::make() { return gnuradio::get_initial_sptr - (new uplink_downlink_filter_impl()); + (new uplink_downlink_splitter_impl()); } /* * The private constructor */ - uplink_downlink_filter_impl::uplink_downlink_filter_impl() - : gr::block("uplink_downlink_filter", + uplink_downlink_splitter_impl::uplink_downlink_splitter_impl() + : gr::block("uplink_downlink_splitter", gr::io_signature::make(0,0,0), gr::io_signature::make(0,0,0)) { message_port_register_in(pmt::mp("in")); message_port_register_out(pmt::mp("uplink")); message_port_register_out(pmt::mp("downlink")); - set_msg_handler(pmt::mp("in"), boost::bind(&uplink_downlink_filter_impl::process_msg, this, _1)); + set_msg_handler(pmt::mp("in"), boost::bind(&uplink_downlink_splitter_impl::process_msg, this, _1)); } - void uplink_downlink_filter_impl::process_msg(pmt::pmt_t msg) + void uplink_downlink_splitter_impl::process_msg(pmt::pmt_t msg) { gsmtap_hdr * header = (gsmtap_hdr *)(pmt::blob_data(pmt::cdr(msg))); bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false; @@ -67,7 +67,7 @@ namespace gr { /* * Our virtual destructor. */ - uplink_downlink_filter_impl::~uplink_downlink_filter_impl() + uplink_downlink_splitter_impl::~uplink_downlink_splitter_impl() { } } /* namespace grgsm */ diff --git a/lib/uplink_downlink_filter_impl.h b/lib/flow_control/uplink_downlink_splitter_impl.h similarity index 71% rename from lib/uplink_downlink_filter_impl.h rename to lib/flow_control/uplink_downlink_splitter_impl.h index c510e29..bc4368a 100644 --- a/lib/uplink_downlink_filter_impl.h +++ b/lib/flow_control/uplink_downlink_splitter_impl.h @@ -20,24 +20,24 @@ * */ -#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H -#define INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H +#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_IMPL_H +#define INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_IMPL_H -#include +#include namespace gr { namespace grgsm { - class uplink_downlink_filter_impl : public uplink_downlink_filter + class uplink_downlink_splitter_impl : public uplink_downlink_splitter { public: - uplink_downlink_filter_impl(); - ~uplink_downlink_filter_impl(); + uplink_downlink_splitter_impl(); + ~uplink_downlink_splitter_impl(); void process_msg(pmt::pmt_t msg); }; } // namespace grgsm } // namespace gr -#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H */ +#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_IMPL_H */ diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 670391e..59fcdff 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -64,4 +64,4 @@ GR_ADD_TEST(qa_dummy_burst_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DI #GR_ADD_TEST(qa_arfcn ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_arfcn.py) #GR_ADD_TEST(qa_msg_to_tag ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_msg_to_tag.py) #GR_ADD_TEST(qa_controlled_fractional_resampler_cc ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_controlled_fractional_resampler_cc.py) -GR_ADD_TEST(qa_uplink_downlink_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_uplink_downlink_filter.py) +#GR_ADD_TEST(qa_uplink_downlink_splitter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_uplink_downlink_splitter.py) diff --git a/python/qa_uplink_downlink_filter.py b/python/qa_uplink_downlink_splitter.py similarity index 88% rename from python/qa_uplink_downlink_filter.py rename to python/qa_uplink_downlink_splitter.py index cd310bf..1b9020f 100755 --- a/python/qa_uplink_downlink_filter.py +++ b/python/qa_uplink_downlink_splitter.py @@ -25,7 +25,7 @@ from gnuradio import gr, gr_unittest from gnuradio import blocks import grgsm_swig as grgsm -class qa_uplink_downlink_filter (gr_unittest.TestCase): +class qa_uplink_downlink_splitter (gr_unittest.TestCase): def setUp (self): self.tb = gr.top_block () @@ -40,4 +40,4 @@ class qa_uplink_downlink_filter (gr_unittest.TestCase): if __name__ == '__main__': - gr_unittest.run(qa_uplink_downlink_filter, "qa_uplink_downlink_filter.xml") + gr_unittest.run(qa_uplink_downlink_splitter, "qa_uplink_downlink_splitter.xml") diff --git a/swig/grgsm_swig.i b/swig/grgsm_swig.i index ff6ec5c..ca987b8 100644 --- a/swig/grgsm_swig.i +++ b/swig/grgsm_swig.i @@ -22,6 +22,7 @@ #include "grgsm/flow_control/burst_sdcch_subslot_filter.h" #include "grgsm/flow_control/burst_fnr_filter.h" #include "grgsm/flow_control/dummy_burst_filter.h" +#include "grgsm/flow_control/uplink_downlink_splitter.h" #include "grgsm/misc_utils/bursts_printer.h" #include "grgsm/misc_utils/controlled_rotator_cc.h" #include "grgsm/misc_utils/extract_system_info.h" @@ -38,7 +39,6 @@ #include "grgsm/misc_utils/message_file_source.h" #include "grgsm/misc_utils/msg_to_tag.h" #include "grgsm/misc_utils/controlled_fractional_resampler_cc.h" -#include "grgsm/uplink_downlink_filter.h" %} %include "grgsm/receiver/receiver.h" @@ -73,6 +73,9 @@ GR_SWIG_BLOCK_MAGIC2(gsm, burst_sdcch_subslot_filter); GR_SWIG_BLOCK_MAGIC2(gsm, burst_fnr_filter); %include "grgsm/flow_control/dummy_burst_filter.h" GR_SWIG_BLOCK_MAGIC2(gsm, dummy_burst_filter); +%include "grgsm/flow_control/uplink_downlink_splitter.h" +GR_SWIG_BLOCK_MAGIC2(grgsm, uplink_downlink_splitter); + %include "grgsm/misc_utils/bursts_printer.h" GR_SWIG_BLOCK_MAGIC2(gsm, bursts_printer); @@ -108,5 +111,3 @@ GR_SWIG_BLOCK_MAGIC2(gsm, burst_source); GR_SWIG_BLOCK_MAGIC2(gsm, message_source); %include "grgsm/qa_utils/message_sink.h" GR_SWIG_BLOCK_MAGIC2(gsm, message_sink); -%include "grgsm/uplink_downlink_filter.h" -GR_SWIG_BLOCK_MAGIC2(grgsm, uplink_downlink_filter);