Getting closer on the GQRX Handler. Doesn't close properly
This commit is contained in:
@@ -33,9 +33,6 @@ class GQRXHandler(threading.Thread):
|
||||
self.tel_conn = None
|
||||
|
||||
def run(self) -> None:
|
||||
self.open_gqrx()
|
||||
|
||||
self.create_telnet_connection()
|
||||
while True:
|
||||
if self.Start_GQRX:
|
||||
self.open_gqrx()
|
||||
@@ -43,27 +40,36 @@ class GQRXHandler(threading.Thread):
|
||||
self.Start_GQRX = False
|
||||
self.Stop_GQRX = False
|
||||
|
||||
self.logger.debug("GQRX is open, waiting for it to close")
|
||||
|
||||
while not self.Stop_GQRX:
|
||||
sleep(1)
|
||||
|
||||
self.close_gqrx()
|
||||
self.logger.debug('Request to close GQRX')
|
||||
|
||||
self.close_gqrx()
|
||||
sleep(.5)
|
||||
|
||||
def set_gqrx_parameters(self, _frequency: str = False, _start: bool = False, _stop: bool = False,
|
||||
_output_device_name: str = None, _fm_mode: str = None, _squelch: int = None,
|
||||
_hostname: str = None, _port: int = None):
|
||||
_hostname: str = None, _port: int = None, _start_dsp: bool = None):
|
||||
if _frequency:
|
||||
self.Frequency = _frequency
|
||||
if self.GQRXProc:
|
||||
self.change_freq(_frequency)
|
||||
|
||||
if _output_device_name:
|
||||
self.Output_Device_Name = _output_device_name
|
||||
|
||||
if _fm_mode:
|
||||
self.Mode = _fm_mode
|
||||
if self.GQRXProc:
|
||||
self.change_mode(_fm_mode)
|
||||
|
||||
if _squelch:
|
||||
self.Squelch = _squelch
|
||||
if self.GQRXProc:
|
||||
self.change_squelch(_squelch)
|
||||
|
||||
if _hostname:
|
||||
self.hostname = _hostname
|
||||
@@ -73,6 +79,9 @@ class GQRXHandler(threading.Thread):
|
||||
self.port = _port
|
||||
self.Start_GQRX = True
|
||||
|
||||
if _start_dsp:
|
||||
self.start_dsp()
|
||||
|
||||
if _start:
|
||||
self.Start_GQRX = _start
|
||||
|
||||
@@ -92,9 +101,15 @@ class GQRXHandler(threading.Thread):
|
||||
self.GQRXProc = subprocess.Popen(gqrx_kwargs, executable=self.GQRXEXE, shell=False, cwd=self.GQRXDir)
|
||||
|
||||
while not self.tel_conn:
|
||||
self.create_telnet_connection()
|
||||
sleep(.5)
|
||||
self.logger.debug(f"Waiting for GQRX to start")
|
||||
|
||||
self.start_dsp()
|
||||
|
||||
self.set_all_settings(_squelch=self.Squelch, _mode=self.Mode, _freq=self.Frequency)
|
||||
self.logger.debug('Finished opening GQRX')
|
||||
|
||||
def close_gqrx(self):
|
||||
self.logger.info(f"Closing GQRX")
|
||||
try:
|
||||
@@ -115,21 +130,16 @@ class GQRXHandler(threading.Thread):
|
||||
|
||||
def create_telnet_connection(self):
|
||||
self.logger.info("Creating connection")
|
||||
self.tel_conn = Telnet(self.hostname, self.port)
|
||||
try:
|
||||
self.tel_conn = Telnet(self.hostname, self.port)
|
||||
self.tel_conn.open(self.hostname, self.port)
|
||||
self.logger.debug(f"GQRX is open")
|
||||
return True
|
||||
except ConnectionRefusedError as err:
|
||||
except Exception as err:
|
||||
self.logger.warning(err)
|
||||
self.tel_conn = None
|
||||
return False
|
||||
|
||||
def change_freq(self, freq):
|
||||
self.logger.debug(f"Changing freq to {freq}")
|
||||
self.tel_conn.write(bytes(f"F {int(freq)}", 'utf-8'))
|
||||
self.tel_conn.read_until(b'RPRT 0')
|
||||
|
||||
def check_dsp(self):
|
||||
self.logger.debug(f"Checking if DSP is running on GQRX")
|
||||
self.tel_conn.write(bytes(f"u DSP", 'utf-8'))
|
||||
@@ -139,8 +149,14 @@ class GQRXHandler(threading.Thread):
|
||||
return False
|
||||
|
||||
def start_dsp(self):
|
||||
self.logger.debug(f"Starting DSP on GQRX")
|
||||
self.tel_conn.write(bytes(f"U DSP 1", 'utf-8'))
|
||||
if not self.check_dsp():
|
||||
self.logger.debug(f"Starting DSP on GQRX")
|
||||
self.tel_conn.write(bytes(f"U DSP 1", 'utf-8'))
|
||||
self.tel_conn.read_until(b'RPRT 0')
|
||||
|
||||
def change_freq(self, freq):
|
||||
self.logger.debug(f"Changing freq to {freq}")
|
||||
self.tel_conn.write(bytes(f"F {int(freq)}", 'utf-8'))
|
||||
self.tel_conn.read_until(b'RPRT 0')
|
||||
|
||||
def change_squelch(self, squelch):
|
||||
@@ -155,8 +171,8 @@ class GQRXHandler(threading.Thread):
|
||||
self.tel_conn.write(bytes(f"M {str(mode)}", 'utf-8'))
|
||||
self.tel_conn.read_until(b'RPRT 0')
|
||||
|
||||
def set_all_settings(self, mode, squelch, freq):
|
||||
def set_all_settings(self, _mode, _squelch, _freq):
|
||||
self.change_squelch(0)
|
||||
self.change_mode(mode)
|
||||
self.change_freq(freq)
|
||||
self.change_squelch(squelch)
|
||||
self.change_mode(_mode)
|
||||
self.change_freq(_freq)
|
||||
self.change_squelch(_squelch)
|
||||
|
||||
Reference in New Issue
Block a user