diff options
author | Piotr Krysik <ptrkrysik@gmail.com> | 2016-02-14 20:24:54 +0100 |
---|---|---|
committer | Piotr Krysik <ptrkrysik@gmail.com> | 2016-02-14 20:24:54 +0100 |
commit | 7185b6664fc86e5ad75d0e1da9b2b0a5eebd20ae (patch) | |
tree | 28d6622049c22c529edaf0867156f904a4bb21b7 | |
parent | c3a822e5e4fe319efdb8ea20cc15f113fd147162 (diff) |
Added ability to supply device arguments as parameter to applications.
Change adressing #140 enhancement request.
It is possible to select rtl-sdr dongle:
-with device index through commanline parameter: `--args="rtl=1"` (where 1 is the device index). Caution: device index is not unique identifier and it changes on each connection of the dongle.
-with devices serial number, the commandline option in this case has following form: `--args="rtl=00000001"` (where 00000001 is the serial number).
NOTE: You can set the serial number with use of:
```sh
rtl_eeprom -s <serial_number>
```
-rwxr-xr-x | apps/grgsm_livemon | 9 | ||||
-rw-r--r-- | apps/grgsm_livemon.grc | 67 | ||||
-rwxr-xr-x | apps/grgsm_scanner | 11 | ||||
-rwxr-xr-x | apps/helpers/grgsm_capture.py | 5 |
4 files changed, 68 insertions, 24 deletions
diff --git a/apps/grgsm_livemon b/apps/grgsm_livemon index 9c5e8a9..7bf4ee3 100755 --- a/apps/grgsm_livemon +++ b/apps/grgsm_livemon @@ -35,7 +35,7 @@ import time class grgsm_livemon(gr.top_block, Qt.QWidget): - def __init__(self, fc=939.4e6, gain=30, ppm=0, samp_rate=2000000.052982, shiftoff=400e3): + def __init__(self, fc=939.4e6, gain=30, ppm=0, samp_rate=2000000.052982, shiftoff=400e3, args=""): gr.top_block.__init__(self, "Gr-gsm Livemon") Qt.QWidget.__init__(self) self.setWindowTitle("Gr-gsm Livemon") @@ -86,7 +86,7 @@ class grgsm_livemon(gr.top_block, Qt.QWidget): self._fc_slider_range = Range(925e6, 1990e6, 2e5, fc, 100) self._fc_slider_win = RangeWidget(self._fc_slider_range, self.set_fc_slider, "Frequency", "counter_slider", float) self.top_layout.addWidget(self._fc_slider_win) - self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + "" ) + self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + args ) self.rtlsdr_source_0.set_sample_rate(samp_rate) self.rtlsdr_source_0.set_center_freq(fc_slider-shiftoff, 0) self.rtlsdr_source_0.set_freq_corr(ppm_slider, 0) @@ -260,13 +260,16 @@ if __name__ == '__main__': help="Set samp_rate [default=%default]") parser.add_option("-o", "--shiftoff", dest="shiftoff", type="eng_float", default=eng_notation.num_to_str(400e3), help="Set shiftoff [default=%default]") + parser.add_option("", "--args", dest="args", type="string", default="", + help="Set device arguments [default=%default]") + (options, args) = parser.parse_args() # from distutils.version import StrictVersion # if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"): # Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster')) Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster')) qapp = Qt.QApplication(sys.argv) - tb = grgsm_livemon(fc=options.fc, gain=options.gain, ppm=options.ppm, samp_rate=options.samp_rate, shiftoff=options.shiftoff) + tb = grgsm_livemon(fc=options.fc, gain=options.gain, ppm=options.ppm, samp_rate=options.samp_rate, shiftoff=options.shiftoff, args=options.args) tb.start() tb.show() diff --git a/apps/grgsm_livemon.grc b/apps/grgsm_livemon.grc index fc740fa..22c30b0 100644 --- a/apps/grgsm_livemon.grc +++ b/apps/grgsm_livemon.grc @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<?grc format='1' created='3.7.10'?> +<?grc format='1' created='3.7.8'?> <flow_graph> <timestamp>Sat Dec 13 10:49:59 2014</timestamp> <block> @@ -9,6 +9,10 @@ <value>Piotr Krysik</value> </param> <param> + <key>alias</key> + <value></value> + </param> + <param> <key>window_size</key> <value>2280, 1024</value> </param> @@ -41,10 +45,6 @@ <value>qt_gui</value> </param> <param> - <key>hier_block_src_path</key> - <value>.:</value> - </param> - <param> <key>id</key> <value>grgsm_livemon</value> </param> @@ -53,18 +53,10 @@ <value>0</value> </param> <param> - <key>qt_qss_theme</key> - <value></value> - </param> - <param> <key>realtime_scheduling</key> <value></value> </param> <param> - <key>run_command</key> - <value>{python} -u {filename}</value> - </param> - <param> <key>run_options</key> <value>prompt</value> </param> @@ -271,6 +263,49 @@ </param> </block> <block> + <key>parameter</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(872, 11)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>args</value> + </param> + <param> + <key>label</key> + <value>Device Arguments</value> + </param> + <param> + <key>short_id</key> + <value></value> + </param> + <param> + <key>type</key> + <value>string</value> + </param> + <param> + <key>value</key> + <value>""</value> + </param> + </block> + <block> <key>blocks_rotator_cc</key> <param> <key>alias</key> @@ -960,7 +995,7 @@ </param> <param> <key>_coordinate</key> - <value>(880, 11)</value> + <value>(1016, 11)</value> </param> <param> <key>_rotation</key> @@ -2601,7 +2636,7 @@ </param> <param> <key>args</key> - <value></value> + <value>args</value> </param> <param> <key>_enabled</key> @@ -2728,7 +2763,7 @@ </param> <param> <key>_coordinate</key> - <value>(16, 75)</value> + <value>(16, 115)</value> </param> <param> <key>_rotation</key> diff --git a/apps/grgsm_scanner b/apps/grgsm_scanner index 4fd7c88..94bba43 100755 --- a/apps/grgsm_scanner +++ b/apps/grgsm_scanner @@ -201,7 +201,7 @@ class wideband_receiver(grgsm.hier_block): class wideband_scanner(gr.top_block): - def __init__(self, rec_len=3, sample_rate=2e6, carrier_frequency=939e6, ppm=0): + def __init__(self, rec_len=3, sample_rate=2e6, carrier_frequency=939e6, ppm=0, args=""): gr.top_block.__init__(self, "Wideband Scanner") @@ -211,7 +211,8 @@ class wideband_scanner(gr.top_block): self.ppm = ppm # if no file name is given process data from rtl_sdr source - self.rtlsdr_source = osmosdr.source( args="numchan=" + str(1) + " " + "" ) + print "Args=",args + self.rtlsdr_source = osmosdr.source( args="numchan=" + str(1) + " " + args ) self.rtlsdr_source.set_sample_rate(sample_rate) @@ -302,10 +303,12 @@ if __name__ == '__main__': help="Specify the GSM band for the frequency.\nAvailable bands are: " + bands_list) parser.add_option("-s", "--samp-rate", dest="samp_rate", type="float", default=2e6, help="Set sample rate [default=%default] - allowed values even_number*0.2e6") - parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=-45, + parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=0, help="Set frequency correction in ppm [default=%default]") parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=24.0, help="Set gain [default=%default]") + parser.add_option("", "--args", dest="args", type="string", default="", + help="Set device arguments [default=%default]") parser.add_option("--speed", dest="speed", type="intx", default=4, help="Scan speed [default=%default]. Value range 0-5.") parser.add_option("-v", "--verbose", action="store_true", @@ -351,7 +354,7 @@ if __name__ == '__main__': scanner = wideband_scanner(rec_len=6-options.speed, sample_rate=options.samp_rate, carrier_frequency=current_freq, - ppm=options.ppm) + ppm=options.ppm, args=options.args) # start recording scanner.start() diff --git a/apps/helpers/grgsm_capture.py b/apps/helpers/grgsm_capture.py index 98696f4..bdce7d8 100755 --- a/apps/helpers/grgsm_capture.py +++ b/apps/helpers/grgsm_capture.py @@ -38,7 +38,7 @@ import sys class grgsm_capture(gr.top_block): - def __init__(self, fc, gain, samp_rate, ppm, arfcn, cfile=None, burst_file=None, band=None, verbose=False, rec_length=None): + def __init__(self, fc, gain, samp_rate, ppm, arfcn, cfile=None, burst_file=None, band=None, verbose=False, rec_length=None, args=""): gr.top_block.__init__(self, "Gr-gsm Capture") @@ -209,6 +209,9 @@ if __name__ == '__main__': parser.add_option("--band", dest="band", help="Specify the GSM band for the frequency.\nAvailable bands are: " + bands_list + ".\nIf no band is specified, it will be determined automatically, defaulting to 0." ) + parser.add_option("", "--args", dest="args", type="string", default="", + help="Set device arguments [default=%default]") + parser.add_option("-v", "--verbose", action="store_true", help="If set, the captured bursts are printed to stdout") |