From 50ff8d517d0543e2d7b9427636267dfd8e611e60 Mon Sep 17 00:00:00 2001 From: "Michal Krenek (Mikos)" Date: Wed, 15 Mar 2017 00:38:10 +0100 Subject: [PATCH] Allow backend executable to be multiple words (e.g. python /path/to/soapy_power.py) --- README.rst | 9 +++++---- qspectrumanalyzer/backends/hackrf_sweep.py | 6 +++--- qspectrumanalyzer/backends/rtl_power.py | 6 +++--- qspectrumanalyzer/backends/rtl_power_fftw.py | 6 +++--- qspectrumanalyzer/backends/rx_power.py | 6 +++--- qspectrumanalyzer/backends/soapy_power.py | 6 +++--- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/README.rst b/README.rst index a213a0d..29c5a4c 100644 --- a/README.rst +++ b/README.rst @@ -75,10 +75,11 @@ Usage Start QSpectrumAnalyzer by running ``qspectrumanalyzer``. You can choose which backend you want to use in *File* -> *Settings* -(default is ``soapy_power``). Sample rate, path to backend executable -and additional backend parameters can be also manually specified there. -You can also set waterfall plot history size. Default is 100 lines, be aware -that really large sweeps (with a lot of bins) would require a lot of system +(or *Application menu* -> *Preferences* on Mac OS X), default is +``soapy_power``. Sample rate, path to backend executable and additional +backend parameters can be also manually specified there. You can also +set waterfall plot history size. Default is 100 lines, be aware that +really large sweeps (with a lot of bins) would require a lot of system memory, so don't make this number too big. Controls should be intuitive, but if you want consistent results, you should diff --git a/qspectrumanalyzer/backends/hackrf_sweep.py b/qspectrumanalyzer/backends/hackrf_sweep.py index 20dd2fc..9225aee 100644 --- a/qspectrumanalyzer/backends/hackrf_sweep.py +++ b/qspectrumanalyzer/backends/hackrf_sweep.py @@ -88,15 +88,15 @@ class PowerThread(BasePowerThread): """Start hackrf_sweep process""" if not self.process and self.params: settings = QtCore.QSettings() - cmdline = [ - settings.value("executable", "hackrf_sweep"), + cmdline = shlex.split(settings.value("executable", "hackrf_sweep")) + cmdline.extend([ "-f", "{}:{}".format(int(self.params["start_freq"]), int(self.params["stop_freq"])), "-B", "-w", "{}".format(int(self.params["bin_size"] * 1000)), "-l", "{}".format(int(self.params["lna_gain"])), "-g", "{}".format(int(self.params["vga_gain"])), - ] + ]) if self.params["single_shot"]: cmdline.append("-1") diff --git a/qspectrumanalyzer/backends/rtl_power.py b/qspectrumanalyzer/backends/rtl_power.py index 891c013..8e27313 100644 --- a/qspectrumanalyzer/backends/rtl_power.py +++ b/qspectrumanalyzer/backends/rtl_power.py @@ -41,8 +41,8 @@ class PowerThread(BasePowerThread): """Start rtl_power process""" if not self.process and self.params: settings = QtCore.QSettings() - cmdline = [ - settings.value("executable", "rtl_power"), + cmdline = shlex.split(settings.value("executable", "rtl_power")) + cmdline.extend([ "-f", "{}M:{}M:{}k".format(self.params["start_freq"], self.params["stop_freq"], self.params["bin_size"]), @@ -50,7 +50,7 @@ class PowerThread(BasePowerThread): "-d", "{}".format(self.params["device"]), "-p", "{}".format(self.params["ppm"]), "-c", "{}".format(self.params["crop"]) - ] + ]) if self.params["gain"] >= 0: cmdline.extend(["-g", "{}".format(self.params["gain"])]) diff --git a/qspectrumanalyzer/backends/rtl_power_fftw.py b/qspectrumanalyzer/backends/rtl_power_fftw.py index a3559d2..3294fcc 100644 --- a/qspectrumanalyzer/backends/rtl_power_fftw.py +++ b/qspectrumanalyzer/backends/rtl_power_fftw.py @@ -66,8 +66,8 @@ class PowerThread(BasePowerThread): """Start rtl_power_fftw process""" if not self.process and self.params: settings = QtCore.QSettings() - cmdline = [ - settings.value("executable", "rtl_power_fftw"), + cmdline = shlex.split(settings.value("executable", "rtl_power_fftw")) + cmdline.extend([ "-f", "{}M:{}M".format(self.params["start_freq"], self.params["stop_freq"]), "-b", "{}".format(self.params["bins"]), @@ -75,7 +75,7 @@ class PowerThread(BasePowerThread): "-d", "{}".format(self.params["device"]), "-r", "{}".format(self.params["sample_rate"]), "-p", "{}".format(self.params["ppm"]), - ] + ]) if self.params["gain"] >= 0: cmdline.extend(["-g", "{}".format(self.params["gain"])]) diff --git a/qspectrumanalyzer/backends/rx_power.py b/qspectrumanalyzer/backends/rx_power.py index aef71df..95f6e09 100644 --- a/qspectrumanalyzer/backends/rx_power.py +++ b/qspectrumanalyzer/backends/rx_power.py @@ -44,8 +44,8 @@ class PowerThread(BasePowerThread): """Start rx_power process""" if not self.process and self.params: settings = QtCore.QSettings() - cmdline = [ - settings.value("executable", "rx_power"), + cmdline = shlex.split(settings.value("executable", "rx_power")) + cmdline.extend([ "-f", "{}M:{}M:{}k".format(self.params["start_freq"], self.params["stop_freq"], self.params["bin_size"]), @@ -53,7 +53,7 @@ class PowerThread(BasePowerThread): "-d", "{}".format(self.params["device"]), "-p", "{}".format(self.params["ppm"]), "-c", "{}".format(self.params["crop"]) - ] + ]) if self.params["gain"] >= 0: cmdline.extend(["-g", "{}".format(self.params["gain"])]) diff --git a/qspectrumanalyzer/backends/soapy_power.py b/qspectrumanalyzer/backends/soapy_power.py index c3b4c2d..66b2aa9 100644 --- a/qspectrumanalyzer/backends/soapy_power.py +++ b/qspectrumanalyzer/backends/soapy_power.py @@ -78,8 +78,8 @@ class PowerThread(BasePowerThread): # Prepare soapy_power cmdline parameters settings = QtCore.QSettings() - cmdline = [ - settings.value("executable", "soapy_power"), + cmdline = shlex.split(settings.value("executable", "soapy_power")) + cmdline.extend([ "-f", "{}M:{}M".format(self.params["start_freq"], self.params["stop_freq"]), "-B", "{}k".format(self.params["bin_size"]), @@ -89,7 +89,7 @@ class PowerThread(BasePowerThread): "-p", "{}".format(self.params["ppm"]), "-F", "soapy_power_bin", "--output-fd", "{}".format(self.pipe_write_fd), - ] + ]) if self.params["gain"] >= 0: cmdline.extend(["-g", "{}".format(self.params["gain"])])