updated dataclasses

This commit is contained in:
DJ2LS 2023-04-26 19:54:53 +02:00
parent e14b16f3cf
commit d2c5c934d5
4 changed files with 23 additions and 20 deletions

View file

@ -27,6 +27,8 @@ import log_handler
import serial.tools.list_ports
import sock
import static
from static import ARQ, Audio, Beacon, Channel, Daemon, Hamlib, Modem, Station, TCI, TNC
import structlog
import ujson as json
import config
@ -210,10 +212,10 @@ class DAEMON:
self.log.warning("[DMN] Starting TNC", rig=data[5], port=data[6])
# list of parameters, necessary for running subprocess command as a list
options = ["--port", str(static.DAEMONPORT - 1)]
options = ["--port", str(DAEMON.port - 1)]
# create an additional list entry for parameters not covered by gui
data[50] = int(static.DAEMONPORT - 1)
data[50] = int(DAEMON.port - 1)
options.append("--mycall")
options.extend((data[1], "--mygrid"))
@ -335,7 +337,7 @@ if __name__ == "__main__":
)
ARGS = PARSER.parse_args()
static.DAEMONPORT = ARGS.socket_port
DAEMON.port = ARGS.socket_port
try:
if sys.platform == "linux":
@ -363,11 +365,11 @@ if __name__ == "__main__":
config = config.CONFIG("config.ini")
try:
mainlog.info("[DMN] Starting TCP/IP socket", port=static.DAEMONPORT)
mainlog.info("[DMN] Starting TCP/IP socket", port=DAEMON.port)
# https://stackoverflow.com/a/16641793
socketserver.TCPServer.allow_reuse_address = True
cmdserver = sock.ThreadedTCPServer(
(static.HOST, static.DAEMONPORT), sock.ThreadedTCPRequestHandler
(static.HOST, DAEMON.port), sock.ThreadedTCPRequestHandler
)
server_thread = threading.Thread(target=cmdserver.serve_forever)
server_thread.daemon = True
@ -375,7 +377,7 @@ if __name__ == "__main__":
except Exception as err:
mainlog.error(
"[DMN] Starting TCP/IP socket failed", port=static.DAEMONPORT, e=err
"[DMN] Starting TCP/IP socket failed", port=DAEMON.port, e=err
)
sys.exit(1)
daemon = DAEMON()
@ -384,7 +386,7 @@ if __name__ == "__main__":
"[DMN] Starting FreeDATA Daemon",
author="DJ2LS",
year="2023",
version=static.VERSION,
version=TNC.version,
)
while True:
threading.Event().wait(1)

View file

@ -287,7 +287,7 @@ if __name__ == "__main__":
except ValueError:
static.AUDIO_OUTPUT_DEVICE = ARGS.audio_output_device
static.PORT = ARGS.socket_port
TNC.port = ARGS.socket_port
static.HAMLIB_RADIOCONTROL = ARGS.hamlib_radiocontrol
static.HAMLIB_RIGCTLD_IP = ARGS.rigctld_ip
static.HAMLIB_RIGCTLD_PORT = str(ARGS.rigctld_port)
@ -338,7 +338,7 @@ if __name__ == "__main__":
except ValueError:
static.AUDIO_OUTPUT_DEVICE = conf.get('AUDIO', 'tx', '0')
static.PORT = int(conf.get('NETWORK', 'tncport', '3000'))
TNC.port = int(conf.get('NETWORK', 'tncport', '3000'))
static.HAMLIB_RADIOCONTROL = conf.get('RADIO', 'radiocontrol', 'rigctld')
static.HAMLIB_RIGCTLD_IP = conf.get('RADIO', 'rigctld_ip', '127.0.0.1')
static.HAMLIB_RIGCTLD_PORT = str(conf.get('RADIO', 'rigctld_port', '4532'))
@ -411,11 +411,11 @@ if __name__ == "__main__":
# --------------------------------------------START CMD SERVER
try:
log.info("[TNC] Starting TCP/IP socket", port=static.PORT)
log.info("[TNC] Starting TCP/IP socket", port=TNC.port)
# https://stackoverflow.com/a/16641793
socketserver.TCPServer.allow_reuse_address = True
cmdserver = sock.ThreadedTCPServer(
(static.HOST, static.PORT), sock.ThreadedTCPRequestHandler
(TNC.host, TNC.port), sock.ThreadedTCPRequestHandler
)
server_thread = threading.Thread(target=cmdserver.serve_forever)
@ -423,7 +423,7 @@ if __name__ == "__main__":
server_thread.start()
except Exception as err:
log.error("[TNC] Starting TCP/IP socket failed", port=static.PORT, e=err)
log.error("[TNC] Starting TCP/IP socket failed", port=TNC.port, e=err)
sys.exit(1)
while True:
threading.Event().wait(1)
threading.Event().wait(1)

View file

@ -68,7 +68,7 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
while self.connection_alive and not CLOSE_SIGNAL:
# send tnc state as network stream
# check server port against daemon port and send corresponding data
if self.server.server_address[1] == static.PORT and not static.TNCSTARTED:
if self.server.server_address[1] == TNC.port and not static.TNCSTARTED:
data = send_tnc_state()
if data != tempdata:
tempdata = data
@ -128,7 +128,7 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
# iterate thorugh data list
for commands in data:
if self.server.server_address[1] == static.PORT:
if self.server.server_address[1] == TNC.port:
self.process_tnc_commands(commands)
else:
self.process_daemon_commands(commands)

View file

@ -23,7 +23,7 @@ ENABLE_STATS = False
# DAEMON
DAEMONPORT: int = 3001
TNCSTARTED: bool = False
TNCPROCESS: subprocess.Popen
@ -43,9 +43,7 @@ LOW_BANDWIDTH_MODE: bool = False
# ---------------------------------
# Server Defaults
HOST: str = "0.0.0.0"
PORT: int = 3000
SOCKET_TIMEOUT: int = 1 # seconds
# ---------------------------------
SERIAL_DEVICES: list = []
# ---------------------------------
@ -200,7 +198,7 @@ class Channel:
@dataclass
class Daemon:
pass
port: int = 3001
@dataclass
class Hamlib:
@ -221,4 +219,7 @@ class TCI:
@dataclass
class TNC:
version = "0.9.0-alpha-exp.5"
host: str = "0.0.0.0"
port: int = 3000
SOCKET_TIMEOUT: int = 1 # seconds