]> www.average.org Git - loctrkd.git/blobdiff - gps303/termconfig.py
WIP retoure messaging
[loctrkd.git] / gps303 / termconfig.py
index 1ab65ce937004f8bfeb5c2c99feef2934b190d76..f481a84ff514fcd3b2cb475661453178b796b64b 100644 (file)
@@ -7,7 +7,7 @@ import zmq
 
 from . import common
 from .gps303proto import *
-from .zmsg import Bcast, Resp
+from .zmsg import Bcast, Resp, topic
 
 log = getLogger("gps303/termconfig")
 
@@ -18,16 +18,12 @@ def runserver(conf):
     zsub = zctx.socket(zmq.SUB)
     zsub.connect(conf.get("collector", "publishurl"))
     for protoname in (
-        "SUPERVISION",
         "STATUS",
-        "RESET",
-        "WHITELIST_TOTAL",
-        "PROHIBIT_LBS",
         "SETUP",
         "POSITION_UPLOAD_INTERVAL",
     ):
-        topic = pack("B", proto_by_name(protoname))
-        zsub.setsockopt(zmq.SUBSCRIBE, topic)
+        tosub = topic(proto_by_name(protoname))
+        zsub.setsockopt(zmq.SUBSCRIBE, tosub)
     zpush = zctx.socket(zmq.PUSH)
     zpush.connect(conf.get("collector", "listenurl"))
 
@@ -42,6 +38,10 @@ def runserver(conf):
                 datetime.fromtimestamp(zmsg.when).astimezone(tz=timezone.utc),
                 msg,
             )
+            if msg.RESPOND is not Respond.EXT:
+                log.error(
+                    "%s does not expect externally provided response", msg
+                )
             kwargs = {}
             if isinstance(msg, STATUS):
                 kwargs = {
@@ -63,7 +63,7 @@ def runserver(conf):
                 ):
                     if key in termconfig:
                         kwargs[key] = termconfig[key]
-            resp = Resp(imei=zmsg.imei, packet=msg.response(**kwargs))
+            resp = Resp(imei=zmsg.imei, packet=msg.Out(**kwargs).packed)
             log.debug("Response: %s", resp)
             zpush.send(resp.packed)