X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=loctrkd%2Fwatch.py;h=bda952c259da36299fd5f8859b3c33363983720b;hb=456fcc5a8964c84385d34a6687e83ae05ab2ddc3;hp=a8a53b0dd62f04938bef519e200796986a45a3a4;hpb=dbdf9d63af31770ad57302e16b17a2fdc526773f;p=loctrkd.git diff --git a/loctrkd/watch.py b/loctrkd/watch.py index a8a53b0..bda952c 100644 --- a/loctrkd/watch.py +++ b/loctrkd/watch.py @@ -2,11 +2,13 @@ from configparser import ConfigParser from datetime import datetime, timezone +from importlib import import_module from logging import getLogger +from typing import Any, cast, List import zmq from . import common -from .zx303proto import parse_message +from .protomodule import ProtoModule from .zmsg import Bcast log = getLogger("loctrkd/watch") @@ -22,8 +24,13 @@ def runserver(conf: ConfigParser) -> None: try: while True: zmsg = Bcast(zsub.recv()) - msg = parse_message(zmsg.packet, zmsg.is_incoming) - print("I" if zmsg.is_incoming else "O", zmsg.imei, msg) + print("I" if zmsg.is_incoming else "O", zmsg.proto, zmsg.imei) + pmod = common.pmod_for_proto(zmsg.proto) + if pmod is not None: + msg = pmod.parse_message(zmsg.packet, zmsg.is_incoming) + print(msg) + if zmsg.is_incoming and hasattr(msg, "rectified"): + print(msg.rectified()) except KeyboardInterrupt: pass