scanner.py: add graceful shutdown handler for soapy, shut off soapy level logs (#108)

This commit is contained in:
Konrad Iturbe
2024-12-29 21:29:10 +01:00
committed by GitHub
parent 7a4f457809
commit 55273f80eb

View File

@@ -1,8 +1,14 @@
import sys
import SoapySDR import SoapySDR
from SoapySDR import * # SOAPY_SDR_* constants from SoapySDR import * # SOAPY_SDR_* constants
import numpy as np import numpy as np
import time import time
import sys import signal
# set log level to error
SoapySDR.setLogLevel(SoapySDR.SOAPY_SDR_ERROR)
# Configuration parameters # Configuration parameters
start_freq = 800.1e6 # Start frequency in Hz (e.g., 900.1 MHz for S1G radio) start_freq = 800.1e6 # Start frequency in Hz (e.g., 900.1 MHz for S1G radio)
@@ -147,16 +153,20 @@ def frequency_sweep(output_type="ascii", step_size=step_size_default):
freq_rssi_map.clear() freq_rssi_map.clear()
if __name__ == "__main__": if __name__ == "__main__":
try: def catch_quit(sig, frame):
output_type = "ascii" # Default to ASCII output sdr.deactivateStream(stream)
step_size = step_size_default # Default step size sdr.closeStream(stream)
if len(sys.argv) > 1: sys.exit(0)
output_type = sys.argv[1].strip().lower()
if len(sys.argv) > 2: signal.signal(signal.SIGINT, catch_quit)
try:
step_size = float(sys.argv[2]) output_type = "ascii" # Default to ASCII output
except ValueError: step_size = step_size_default # Default step size
print("Invalid step size provided. Using default.") if len(sys.argv) > 1:
frequency_sweep(output_type=output_type, step_size=step_size) output_type = sys.argv[1].strip().lower()
except KeyboardInterrupt: if len(sys.argv) > 2:
print("Infinite sweep terminated by user.") try:
step_size = float(sys.argv[2])
except ValueError:
print("Invalid step size provided. Using default.")
frequency_sweep(output_type=output_type, step_size=step_size)