import zmq
from . import common
+from .protomodule import ProtoModule
from .zmsg import Bcast
log = getLogger("loctrkd/watch")
-class ProtoModule:
- PROTO_PREFIX: str
-
- @staticmethod
- def parse_message(packet: bytes, is_incoming: bool = True) -> Any:
- ...
-
-
pmods: List[ProtoModule] = []
global pmods
pmods = [
cast(ProtoModule, import_module("." + modnm, __package__))
- for modnm in conf.get("collector", "protocols").split(",")
+ for modnm in conf.get("common", "protocols").split(",")
]
# Is this https://github.com/zeromq/pyzmq/issues/1627 still not fixed?!
zctx = zmq.Context() # type: ignore
zmsg = Bcast(zsub.recv())
print("I" if zmsg.is_incoming else "O", zmsg.proto, zmsg.imei)
for pmod in pmods:
- if zmsg.proto.startswith(pmod.PROTO_PREFIX):
+ if pmod.proto_handled(zmsg.proto):
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