From 1d625d0f4fcb5c24e1df75fc2fb1016b6b91dba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Mon, 3 Sep 2018 21:44:32 +0200 Subject: [PATCH] Some Bugfixes --- ogn/gateway/manage.py | 19 +++++++++++++++++-- ogn/gateway/process_tools.py | 9 ++------- ogn/model/receiver_beacon.py | 2 +- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/ogn/gateway/manage.py b/ogn/gateway/manage.py index 115d64a..6443554 100644 --- a/ogn/gateway/manage.py +++ b/ogn/gateway/manage.py @@ -2,7 +2,9 @@ import logging from manager import Manager from ogn.client import AprsClient -from ogn.gateway.process import process_beacon +from ogn.gateway.process import string_to_message +from datetime import datetime +from ogn.gateway.process_tools import DummyMerger, Converter, DummySaver manager = Manager() @@ -10,6 +12,18 @@ manager = Manager() logging_formatstr = '%(asctime)s - %(levelname).4s - %(name)s - %(message)s' log_levels = ['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG'] +# Build the processing pipeline +saver = DummySaver() +converter = Converter(callback=saver) +merger = DummyMerger(callback=converter) + +def asdf(raw_string): + message = string_to_message(raw_string, reference_date=datetime.utcnow()) + if message is not None: + merger.add_message(message) + else: + print(message) + @manager.command def run(aprs_user='anon-dev', logfile='main.log', loglevel='INFO'): @@ -34,9 +48,10 @@ def run(aprs_user='anon-dev', logfile='main.log', loglevel='INFO'): client.connect() try: - client.run(callback=process_beacon, autoreconnect=True) + client.run(callback=asdf, autoreconnect=True) except KeyboardInterrupt: print('\nStop ogn gateway') + merger.flush() client.disconnect() logging.shutdown() diff --git a/ogn/gateway/process_tools.py b/ogn/gateway/process_tools.py index a9a0fea..c7e724c 100644 --- a/ogn/gateway/process_tools.py +++ b/ogn/gateway/process_tools.py @@ -82,13 +82,9 @@ class Converter: self.callback = callback def add_message(self, message): - try: + if message['aprs_type'] in ['status', 'position']: beacon = self.message_to_beacon(message) self.callback.add_message(beacon) - except Exception as e: - print(e) - print(message) - return def message_to_beacon(self, message): # create beacons @@ -109,8 +105,7 @@ class Converter: class DummySaver: def add_message(self, message): - if message['beacon_type'] != "aprs_aircraft": - print(message['beacon_type']) + print(message) def flush(self): print("========== flush ==========") diff --git a/ogn/model/receiver_beacon.py b/ogn/model/receiver_beacon.py index 1f52a43..e5a2ee1 100644 --- a/ogn/model/receiver_beacon.py +++ b/ogn/model/receiver_beacon.py @@ -42,7 +42,7 @@ class ReceiverBeacon(Beacon): Index('ix_receiver_beacons_receiver_id_name', 'receiver_id', 'name') def __repr__(self): - return "" % ( + return "" % ( self.version, self.platform, self.cpu_load,