diff --git a/tools/freedata_network_listener.py b/tools/freedata_network_listener.py new file mode 100644 index 00000000..f1590e32 --- /dev/null +++ b/tools/freedata_network_listener.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +""" +daemon.py + +Author: DJ2LS, January 2022 + +daemon for providing basic information for the tnc like audio or serial devices + +""" +# pylint: disable=invalid-name, line-too-long, c-extension-no-member +# pylint: disable=import-outside-toplevel + + +import argparse +import socket +import structlog +import queue +import json + + +log = structlog.get_logger("CLIENT") + +# --------------------------------------------GET PARAMETER INPUTS +parser = argparse.ArgumentParser(description='Simons TEST TNC') +parser.add_argument('--port', dest="socket_port", default=3000, help="Set the port, the socket is listening on.", type=int) + +args = parser.parse_args() + +ip, port = "localhost", args.socket_port + +connected = True + +data = bytes() + +with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: + sock.connect((ip, port)) + + while connected: + chunk = sock.recv(2) + data += chunk + + if data.endswith(b'\n'): + + jsondata = json.loads(data.split(b'\n')[0]) + data = bytes() + + if jsondata.get('command') == "tnc_state": + pass + + if jsondata.get('freedata') == "tnc-message": + log.info(jsondata)