mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
close audio and hamlib instances on quit
This commit is contained in:
parent
1e6d8e36fd
commit
c230660c85
2 changed files with 19 additions and 5 deletions
|
@ -20,6 +20,8 @@ import static
|
||||||
import psutil
|
import psutil
|
||||||
import sys
|
import sys
|
||||||
import serial.tools.list_ports
|
import serial.tools.list_ports
|
||||||
|
import atexit
|
||||||
|
|
||||||
#PORT = 3001
|
#PORT = 3001
|
||||||
#TNCPROCESS = 0
|
#TNCPROCESS = 0
|
||||||
#TNCSTARTED = False
|
#TNCSTARTED = False
|
||||||
|
@ -43,10 +45,14 @@ def start_daemon():
|
||||||
daemon = socketserver.TCPServer(('0.0.0.0', PORT), CMDTCPRequestHandler)
|
daemon = socketserver.TCPServer(('0.0.0.0', PORT), CMDTCPRequestHandler)
|
||||||
daemon.serve_forever()
|
daemon.serve_forever()
|
||||||
|
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
daemon.server_close()
|
daemon.server_close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
|
class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
|
||||||
|
|
||||||
def handle(self):
|
def handle(self):
|
||||||
|
@ -165,10 +171,13 @@ class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
|
||||||
|
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
p = subprocess.Popen("exec python3 main.py --rx "+ str(rx_audio) +" --tx "+ str(tx_audio) +" --deviceport "+ str(deviceport) +" --deviceid "+ str(deviceid) + " --serialspeed "+ str(serialspeed) + " --ptt "+ str(ptt), shell=True)
|
process = subprocess.Popen("exec python3 main.py --rx "+ str(rx_audio) +" --tx "+ str(tx_audio) +" --deviceport "+ str(deviceport) +" --deviceid "+ str(deviceid) + " --serialspeed "+ str(serialspeed) + " --ptt "+ str(ptt), shell=True)
|
||||||
|
atexit.register(process.terminate)
|
||||||
else:
|
else:
|
||||||
p = subprocess.Popen("exec ./tnc --rx "+ str(rx_audio) +" --tx "+ str(tx_audio) +" --deviceport "+ str(deviceport) +" --deviceid "+ str(deviceid) + " --serialspeed "+ str(serialspeed) + " --ptt "+ str(ptt), shell=True)
|
process = subprocess.Popen("exec ./tnc --rx "+ str(rx_audio) +" --tx "+ str(tx_audio) +" --deviceport "+ str(deviceport) +" --deviceid "+ str(deviceid) + " --serialspeed "+ str(serialspeed) + " --ptt "+ str(ptt), shell=True)
|
||||||
static.TNCPROCESS = p#.pid
|
atexit.register(process.terminate)
|
||||||
|
|
||||||
|
static.TNCPROCESS = process#.pid
|
||||||
static.TNCSTARTED = True
|
static.TNCSTARTED = True
|
||||||
|
|
||||||
if received_json["type"] == 'SET' and received_json["command"] == 'STOPTNC':
|
if received_json["type"] == 'SET' and received_json["command"] == 'STOPTNC':
|
||||||
|
@ -189,6 +198,7 @@ class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
|
||||||
|
|
||||||
# UPDATE LIST OF AUDIO DEVICES
|
# UPDATE LIST OF AUDIO DEVICES
|
||||||
p = pyaudio.PyAudio()
|
p = pyaudio.PyAudio()
|
||||||
|
atexit.register(p.terminate)
|
||||||
for i in range(0, p.get_device_count()):
|
for i in range(0, p.get_device_count()):
|
||||||
|
|
||||||
maxInputChannels = p.get_device_info_by_host_api_device_index(0,i).get('maxInputChannels')
|
maxInputChannels = p.get_device_info_by_host_api_device_index(0,i).get('maxInputChannels')
|
||||||
|
@ -230,7 +240,6 @@ class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------GET PARAMETER INPUTS
|
# --------------------------------------------GET PARAMETER INPUTS
|
||||||
PARSER = argparse.ArgumentParser(description='Simons TEST TNC')
|
PARSER = argparse.ArgumentParser(description='Simons TEST TNC')
|
||||||
PARSER.add_argument('--port', dest="socket_port", default=3001, help="Socket port", type=int)
|
PARSER.add_argument('--port', dest="socket_port", default=3001, help="Socket port", type=int)
|
||||||
|
@ -250,3 +259,4 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ import asyncio
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
import threading
|
import threading
|
||||||
|
import atexit
|
||||||
|
|
||||||
import helpers
|
import helpers
|
||||||
import static
|
import static
|
||||||
|
@ -71,6 +72,7 @@ class RF():
|
||||||
print("running libcodec from EXTERNAL library")
|
print("running libcodec from EXTERNAL library")
|
||||||
# --------------------------------------------CREATE PYAUDIO INSTANCE
|
# --------------------------------------------CREATE PYAUDIO INSTANCE
|
||||||
self.p = pyaudio.PyAudio()
|
self.p = pyaudio.PyAudio()
|
||||||
|
atexit.register(self.p.terminate)
|
||||||
# --------------------------------------------OPEN AUDIO CHANNEL RX
|
# --------------------------------------------OPEN AUDIO CHANNEL RX
|
||||||
self.stream_rx = self.p.open(format=pyaudio.paInt16,
|
self.stream_rx = self.p.open(format=pyaudio.paInt16,
|
||||||
channels=static.AUDIO_CHANNELS,
|
channels=static.AUDIO_CHANNELS,
|
||||||
|
@ -158,6 +160,8 @@ class RF():
|
||||||
|
|
||||||
|
|
||||||
self.my_rig.open()
|
self.my_rig.open()
|
||||||
|
atexit.register(self.my_rig.close)
|
||||||
|
|
||||||
|
|
||||||
# set rig mode to USB
|
# set rig mode to USB
|
||||||
self.my_rig.set_mode(Hamlib.RIG_MODE_USB)
|
self.my_rig.set_mode(Hamlib.RIG_MODE_USB)
|
||||||
|
|
Loading…
Reference in a new issue