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")
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