diff --git a/apps/airprobe_rtlsdr_scanner.py b/apps/airprobe_rtlsdr_scanner.py index 3ead0c9..4fd7c88 100755 --- a/apps/airprobe_rtlsdr_scanner.py +++ b/apps/airprobe_rtlsdr_scanner.py @@ -40,16 +40,16 @@ import time #from wideband_receiver import * -class receiver_with_decoder(gr.hier_block2): +class receiver_with_decoder(grgsm.hier_block): def __init__(self, OSR=4, chan_num=0, fc=939.4e6, ppm=0, samp_rate=0.2e6): - gr.hier_block2.__init__( + grgsm.hier_block.__init__( self, "Receiver With Decoder", gr.io_signature(1, 1, gr.sizeof_gr_complex*1), gr.io_signature(0, 0, 0), ) - self.message_port_register_hier_in("bursts") - self.message_port_register_hier_in("msgs") + self.message_port_register_hier_out("bursts") + self.message_port_register_hier_out("msgs") ################################################## # Parameters @@ -134,16 +134,16 @@ class receiver_with_decoder(gr.hier_block2): self.samp_rate_out = samp_rate_out -class wideband_receiver(gr.hier_block2): +class wideband_receiver(grgsm.hier_block): def __init__(self, OSR=4, fc=939.4e6, samp_rate=0.4e6): - gr.hier_block2.__init__( + grgsm.hier_block.__init__( self, "Wideband receiver", gr.io_signature(1, 1, gr.sizeof_gr_complex*1), gr.io_signature(0, 0, 0), ) - self.message_port_register_hier_in("bursts") - self.message_port_register_hier_in("msgs") + self.message_port_register_hier_out("bursts") + self.message_port_register_hier_out("msgs") self.__init(OSR, fc, samp_rate) def __init(self, OSR=4, fc=939.4e6, samp_rate=0.4e6): diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index f68100a..04a97c2 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -38,7 +38,8 @@ GR_PYTHON_INSTALL( receiver/fcch_detector.py receiver/chirpz.py misc_utils/arfcn.py - misc_utils/clock_offset_corrector.py DESTINATION ${GR_PYTHON_DIR}/grgsm + misc_utils/clock_offset_corrector.py + misc_utils/hier_block.py DESTINATION ${GR_PYTHON_DIR}/grgsm ) ######################################################################## diff --git a/python/__init__.py b/python/__init__.py index 0c50bdb..247c040 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -46,12 +46,14 @@ from grgsm_swig import * # import any pure python here +from hier_block import hier_block from fcch_burst_tagger import fcch_burst_tagger from sch_detector import sch_detector from fcch_detector import fcch_detector from clock_offset_corrector import clock_offset_corrector from gsm_input import gsm_input from gsm_wideband_input import gsm_wideband_input + import arfcn diff --git a/python/misc_utils/clock_offset_corrector.py b/python/misc_utils/clock_offset_corrector.py index 403b513..b75d682 100644 --- a/python/misc_utils/clock_offset_corrector.py +++ b/python/misc_utils/clock_offset_corrector.py @@ -14,19 +14,16 @@ from distutils.version import LooseVersion as version import grgsm import math -class clock_offset_corrector(gr.hier_block2): +class clock_offset_corrector(grgsm.hier_block): def __init__(self, fc=936.6e6, ppm=0, samp_rate_in=1625000.0/6.0*4.0): - gr.hier_block2.__init__( + grgsm.hier_block.__init__( self, "Clock offset corrector", gr.io_signature(1, 1, gr.sizeof_gr_complex*1), gr.io_signature(1, 1, gr.sizeof_gr_complex*1), ) - if version(gr.version()) >= version('3.7.9'): - self.message_port_register_hier_in("ppm_in") - else: - self.message_port_register_hier_out("ppm_in") - + self.message_port_register_hier_in("ppm_in") + ################################################## # Parameters ################################################## diff --git a/python/misc_utils/hier_block.py b/python/misc_utils/hier_block.py new file mode 100644 index 0000000..a3ca1e6 --- /dev/null +++ b/python/misc_utils/hier_block.py @@ -0,0 +1,19 @@ +from gnuradio import gr +from distutils.version import LooseVersion as version + +#class created to solve incompatibility of reginstration of message inputs +#that was introduced in gnuradio 3.7.9 + +class hier_block(gr.hier_block2): + def message_port_register_hier_in(self, port_id): + if version(gr.version()) >= version('3.7.9'): + super(hier_block, self).message_port_register_hier_in(port_id) + else: + super(hier_block, self).message_port_register_hier_out(port_id) + + def message_port_register_hier_out(self, port_id): + if version(gr.version()) >= version('3.7.9'): + super(hier_block, self).message_port_register_hier_out(port_id) + else: + super(hier_block, self).message_port_register_hier_in(port_id) + diff --git a/python/receiver/fcch_detector.py b/python/receiver/fcch_detector.py index 70a3459..2f2a4ab 100644 --- a/python/receiver/fcch_detector.py +++ b/python/receiver/fcch_detector.py @@ -15,10 +15,10 @@ from gnuradio import gr from gnuradio.filter import firdes import grgsm -class fcch_detector(gr.hier_block2): +class fcch_detector(grgsm.hier_block): def __init__(self, OSR=4): - gr.hier_block2.__init__( + grgsm.hier_block.__init__( self, "FCCH bursts detector", gr.io_signature(1, 1, gr.sizeof_gr_complex*1), gr.io_signature(1, 1, gr.sizeof_gr_complex*1), diff --git a/python/receiver/gsm_input.py b/python/receiver/gsm_input.py index 191f950..2de2f03 100644 --- a/python/receiver/gsm_input.py +++ b/python/receiver/gsm_input.py @@ -13,10 +13,10 @@ from gnuradio.filter import firdes from distutils.version import LooseVersion as version import grgsm -class gsm_input(gr.hier_block2): +class gsm_input(grgsm.hier_block): def __init__(self, ppm=0, osr=4, fc=940e6, samp_rate_in=1e6): - gr.hier_block2.__init__( + grgsm.hier_block.__init__( self, "GSM input adaptor", gr.io_signature(1, 1, gr.sizeof_gr_complex*1), gr.io_signature(1, 1, gr.sizeof_gr_complex*1), diff --git a/python/receiver/gsm_wideband_input.py b/python/receiver/gsm_wideband_input.py index 3138885..9dee08d 100644 --- a/python/receiver/gsm_wideband_input.py +++ b/python/receiver/gsm_wideband_input.py @@ -14,10 +14,10 @@ from gnuradio.filter import firdes import grgsm.arfcn as arfcn import grgsm -class gsm_wideband_input(gr.hier_block2): +class gsm_wideband_input(grgsm.hier_block): def __init__(self, ppm=0, osr=4, fc=925.2e6, samp_rate_in=20e6, ca=[]): self.num_streams = len(ca) - gr.hier_block2.__init__( + grgsm.hier_block.__init__( self, "GSM wideband input adaptor", gr.io_signature(1, 1, gr.sizeof_gr_complex*1), gr.io_signature(self.num_streams, self.num_streams, gr.sizeof_gr_complex*1),