diff --git a/tcp_kiss_send_recv.py b/tcp_kiss_send_recv.py deleted file mode 100644 index c168b8f..0000000 --- a/tcp_kiss_send_recv.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python3 -import os -import sqlite3 -import aprs -import json -import aprslib -import configparser - -MYCALL = os.environ.get("MYCALL", "W1CDN") -KISS_HOST = os.environ.get("KISS_HOST", "192.168.0.30") -KISS_PORT = os.environ.get("KISS_PORT", "8001") - -db_fields = ("id", -"addresse", -"alive", -"altitude", -"comment", -"course", -"created", -"format", -"frame", -"from", -"gpsfixstatus", -"latitude", -"longitude", -"mbits", -"messagecapable", -"message_text", -"mtype", -"object_format", -"object_name", -"path", -"posambiguity", -"raw", -"raw_timestamp", -"speed", -"station_call", -"station_lat", -"station_lon", -"status", -"symbol", -"symbol_table", -"telemetry", -"timestamp", -"to", -"tEQNS", -"tPARM", -"tUNIT", -"via", -"weather", -"wx_raw_timestamp") - -def read_config(): - config = configparser.ConfigParser() - config.read('config.ini') - return config - -def get_db_connection(): - conn = sqlite3.connect('database.db') - conn.row_factory = sqlite3.Row - return conn - -def main(): - - # Add the call and location of this station to the packet info - config = read_config() - - ki = aprs.TCPKISS(host=KISS_HOST, port=int(KISS_PORT)) - ki.start() - - # Make a simple frame and send it - frame = aprs.APRSFrame.ui( - destination="APZ001", - source=MYCALL, - path=["WIDE1-1"], - info=b">Hello World!", - ) - #ki.write(frame) - - # Watch for new packets to come in - while True: - conn = get_db_connection() - for frame in ki.read(min_frames=1): - a = aprslib.parse(str(frame)) - # Add information about *this* station - might be useful for - # combining data across stations in the future. - a['station_call'] = config['Settings']['station_call'] - a['station_lat'] = config['Settings']['station_lat'] - a['station_lon'] = config['Settings']['station_lon'] - print(a) - # Make this a string and deal with it later (probably a mistake) - a['path'] = str(a['path']) - # Build an INSERT statement based on the fields we have from the frame - attrib_names = ', '.join(f'"{w}"' for w in a.keys()) - attrib_values = ", ".join("?" * len(a.keys())) - sql = f"INSERT INTO frames ({attrib_names}) VALUES ({attrib_values})" - # Insert data - conn.execute(sql, list(a.values())) - - # TODO update stations table here - - conn.commit() - - # TODO remove packets that are older ('created') than a limit set in config.ini - # "5 minutes" also works - conn.execute("DELETE FROM frames WHERE created < DATETIME('now', '"+config['Settings']['keep_time']+"')") - conn.commit() - - conn.close() - - - -if __name__ == "__main__": - main()