diff --git a/aprsd/flask.py b/aprsd/flask.py index 63014c9..e850899 100644 --- a/aprsd/flask.py +++ b/aprsd/flask.py @@ -11,7 +11,7 @@ from flask_httpauth import HTTPBasicAuth from werkzeug.security import check_password_hash, generate_password_hash import aprsd -from aprsd import messaging, packets, plugin, stats, utils +from aprsd import kissclient, messaging, packets, plugin, stats, utils LOG = logging.getLogger("APRSD") @@ -65,9 +65,38 @@ class APRSDFlask(flask_classful.FlaskView): plugins = pm.get_plugins() plugin_count = len(plugins) + if self.config["aprs"].get("enabled", True): + transport = "aprs-is" + aprs_connection = ( + "APRS-IS Server: " + "{}".format(stats["stats"]["aprs-is"]["server"]) + ) + else: + # We might be connected to a KISS socket? + if kissclient.KISSClient.kiss_enabled(self.config): + transport = kissclient.KISSClient.transport(self.config) + if transport == kissclient.TRANSPORT_TCPKISS: + aprs_connection = ( + "TCPKISS://{}:{}".format( + self.config["kiss"]["tcp"]["host"], + self.config["kiss"]["tcp"]["port"], + ) + ) + elif transport == kissclient.TRANSPORT_SERIALKISS: + aprs_connection = ( + "SerialKISS://{}@{} baud".format( + self.config["kiss"]["serial"]["device"], + self.config["kiss"]["serial"]["baudrate"], + ) + ) + + stats["transport"] = transport + stats["aprs_connection"] = aprs_connection + return flask.render_template( "index.html", initial_stats=stats, + aprs_connection=aprs_connection, callsign=self.config["aprs"]["login"], version=aprsd.__version__, config_json=json.dumps(self.config), diff --git a/aprsd/kissclient.py b/aprsd/kissclient.py index 3db801e..bed12c2 100644 --- a/aprsd/kissclient.py +++ b/aprsd/kissclient.py @@ -8,6 +8,8 @@ from aioax25.aprs import APRSInterface from aprsd import trace +TRANSPORT_TCPKISS = "tcpkiss" +TRANSPORT_SERIALKISS = "serialkiss" LOG = logging.getLogger("APRSD") @@ -32,6 +34,9 @@ class KISSClient: @staticmethod def kiss_enabled(config): """Return if tcp or serial KISS is enabled.""" + if "kiss" not in config: + return False + if "serial" in config["kiss"]: if config["kiss"]["serial"].get("enabled", False): return True @@ -40,6 +45,16 @@ class KISSClient: if config["kiss"]["tcp"].get("enabled", False): return True + @staticmethod + def transport(config): + if "serial" in config["kiss"]: + if config["kiss"]["serial"].get("enabled", False): + return TRANSPORT_SERIALKISS + + if "tcp" in config["kiss"]: + if config["kiss"]["tcp"].get("enabled", False): + return TRANSPORT_TCPKISS + @property def client(self): if not self.ax25client: diff --git a/aprsd/main.py b/aprsd/main.py index 8a8f269..bd9a711 100644 --- a/aprsd/main.py +++ b/aprsd/main.py @@ -491,12 +491,7 @@ def server( messaging.MsgTrack().load() packets.PacketList(config=config) - - if "watch_list" in config["aprsd"] and config["aprsd"]["watch_list"].get( - "enabled", - True, - ): - packets.WatchList(config=config) + packets.WatchList(config=config) if kissclient.KISSClient.kiss_enabled(config): kcl = kissclient.KISSClient(config=config) diff --git a/aprsd/messaging.py b/aprsd/messaging.py index 5a3db6d..f53ce0e 100644 --- a/aprsd/messaging.py +++ b/aprsd/messaging.py @@ -19,6 +19,7 @@ LOG = logging.getLogger("APRSD") NULL_MESSAGE = -1 MESSAGE_TRANSPORT_TCPKISS = "tcpkiss" +MESSAGE_TRANSPORT_SERIALKISS = "serialkiss" MESSAGE_TRANSPORT_APRSIS = "aprsis" diff --git a/aprsd/web/static/js/charts.js b/aprsd/web/static/js/charts.js index 9b42ffa..9d4ed65 100644 --- a/aprsd/web/static/js/charts.js +++ b/aprsd/web/static/js/charts.js @@ -220,7 +220,7 @@ function updateQuadData(chart, label, first, second, third, fourth) { function update_stats( data ) { $("#version").text( data["stats"]["aprsd"]["version"] ); - $("#aprsis").html( "APRS-IS Server: " + data["stats"]["aprs-is"]["server"] + "" ); + $("#aprs_connection").html( data["aprs_connection"] ); $("#uptime").text( "uptime: " + data["stats"]["aprsd"]["uptime"] ); const html_pretty = Prism.highlight(JSON.stringify(data, null, '\t'), Prism.languages.json, 'json'); $("#jsonstats").html(html_pretty); diff --git a/aprsd/web/templates/index.html b/aprsd/web/templates/index.html index 5314a1c..f82be37 100644 --- a/aprsd/web/templates/index.html +++ b/aprsd/web/templates/index.html @@ -58,7 +58,7 @@