Added SACCH channel and blocks for SDCCH8/SACCH8 channels that are disabled currently

This commit is contained in:
ptrkrysik 2015-02-15 11:38:44 +01:00
parent 0b926a9627
commit c184823aea
2 changed files with 1634 additions and 577 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
##################################################
# Gnuradio Python Flow Graph
# Title: Airprobe Rtlsdr
# Generated: Sat Feb 7 19:30:54 2015
# Generated: Sun Feb 15 11:35:00 2015
##################################################
from PyQt4 import Qt
@ -25,7 +25,7 @@ import time
from distutils.version import StrictVersion
class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
def __init__(self, ppm=0, fc=939.4e6, gain=30, samp_rate=2000000.052982):
def __init__(self, fc=939.4e6, gain=30, samp_rate=2000000.052982, ppm=0):
gr.top_block.__init__(self, "Airprobe Rtlsdr")
Qt.QWidget.__init__(self)
self.setWindowTitle("Airprobe Rtlsdr")
@ -52,10 +52,10 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
##################################################
# Parameters
##################################################
self.ppm = ppm
self.fc = fc
self.gain = gain
self.samp_rate = samp_rate
self.ppm = ppm
##################################################
# Variables
@ -64,6 +64,7 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
self.g_slider = g_slider = gain
self.fc_slider = fc_slider = fc
self.SDCCH = SDCCH = 6
self.SACCH = SACCH = 0x80
self.RACH = RACH = 3
self.PCH = PCH = 5
self.CHANNEL_UNKNOWN = CHANNEL_UNKNOWN = 0
@ -170,36 +171,33 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
##################################################
# Connections
##################################################
self.msg_connect(self.gsm_clock_offset_control_0, 'ppm', self.gsm_input_0, 'ppm_in')
self.msg_connect(self.gsm_control_channels_decoder_0, 'msgs', self.blocks_socket_pdu_0, 'pdus')
self.msg_connect(self.gsm_control_channels_decoder_0, 'msgs', self.gsm_message_printer_1, 'msgs')
self.msg_connect(self.gsm_receiver_0, 'measurements', self.gsm_clock_offset_control_0, 'measurements')
self.msg_connect(self.gsm_receiver_0, 'C0', self.gsm_universal_ctrl_chans_demapper_0, 'bursts')
self.msg_connect(self.gsm_universal_ctrl_chans_demapper_0, 'bursts', self.gsm_control_channels_decoder_0, 'bursts')
self.connect((self.gsm_input_0, 0), (self.gsm_receiver_0, 0))
self.connect((self.rtlsdr_source_0, 0), (self.gsm_input_0, 0))
self.connect((self.rtlsdr_source_0, 0), (self.qtgui_freq_sink_x_0, 0))
self.connect((self.gsm_input_0, 0), (self.gsm_receiver_0, 0))
self.connect((self.rtlsdr_source_0, 0), (self.gsm_input_0, 0))
self.connect((self.rtlsdr_source_0, 0), (self.qtgui_freq_sink_x_0, 0))
##################################################
# Message Connections
##################################################
self.msg_connect(self.gsm_receiver_0, "C0", self.gsm_universal_ctrl_chans_demapper_0, "bursts")
self.msg_connect(self.gsm_clock_offset_control_0, "ppm", self.gsm_input_0, "ppm_in")
self.msg_connect(self.gsm_control_channels_decoder_0, "msgs", self.gsm_message_printer_1, "msgs")
self.msg_connect(self.gsm_universal_ctrl_chans_demapper_0, "bursts", self.gsm_control_channels_decoder_0, "bursts")
self.msg_connect(self.gsm_control_channels_decoder_0, "msgs", self.blocks_socket_pdu_0, "pdus")
self.msg_connect(self.gsm_receiver_0, "measurements", self.gsm_clock_offset_control_0, "measurements")
def closeEvent(self, event):
self.settings = Qt.QSettings("GNU Radio", "airprobe_rtlsdr")
self.settings.setValue("geometry", self.saveGeometry())
event.accept()
def get_ppm(self):
return self.ppm
def set_ppm(self, ppm):
self.ppm = ppm
self.set_ppm_slider(self.ppm)
def get_fc(self):
return self.fc
def set_fc(self, fc):
self.fc = fc
self.gsm_input_0.set_fc(self.fc)
self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
self.set_fc_slider(self.fc)
self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
def get_gain(self):
return self.gain
@ -214,8 +212,15 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.gsm_input_0.set_samp_rate_in(self.samp_rate)
self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
def get_ppm(self):
return self.ppm
def set_ppm(self, ppm):
self.ppm = ppm
self.set_ppm_slider(self.ppm)
def get_ppm_slider(self):
return self.ppm_slider
@ -248,6 +253,12 @@ class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
def set_SDCCH(self, SDCCH):
self.SDCCH = SDCCH
def get_SACCH(self):
return self.SACCH
def set_SACCH(self, SACCH):
self.SACCH = SACCH
def get_RACH(self):
return self.RACH
@ -294,19 +305,19 @@ if __name__ == '__main__':
except:
print "Warning: failed to XInitThreads()"
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=0,
help="Set ppm [default=%default]")
parser.add_option("-f", "--fc", dest="fc", type="eng_float", default=eng_notation.num_to_str(939.4e6),
help="Set fc [default=%default]")
parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(30),
help="Set gain [default=%default]")
parser.add_option("-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982),
help="Set samp_rate [default=%default]")
parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=0,
help="Set ppm [default=%default]")
(options, args) = parser.parse_args()
if(StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0")):
Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
qapp = Qt.QApplication(sys.argv)
tb = airprobe_rtlsdr(ppm=options.ppm, fc=options.fc, gain=options.gain, samp_rate=options.samp_rate)
tb = airprobe_rtlsdr(fc=options.fc, gain=options.gain, samp_rate=options.samp_rate, ppm=options.ppm)
tb.start()
tb.show()
def quitting():