]> www.average.org Git - loctrkd.git/commitdiff
fill in `when` in Resp packet
authorEugene Crosser <crosser@average.org>
Mon, 9 May 2022 15:23:15 +0000 (17:23 +0200)
committerEugene Crosser <crosser@average.org>
Mon, 9 May 2022 15:43:55 +0000 (17:43 +0200)
gps303/__main__.py
gps303/collector.py
gps303/lookaside.py
gps303/termconfig.py
gps303/zmsg.py

index 38d21fe6eea049c7e17030a4028976ba827b1898..15832804c130e0ffebe249d7926ab3d84a9a500e 100644 (file)
@@ -4,6 +4,7 @@ from datetime import datetime, timezone
 from getopt import getopt
 from logging import getLogger
 from sys import argv
+from time import time
 import zmq
 
 from . import common
@@ -19,7 +20,9 @@ def main(conf, opts, args):
     zpush.connect(conf.get("collector", "listenurl"))
 
     if len(args) < 2:
-        raise ValueError("Too few args, need IMEI and command min: " + str(args))
+        raise ValueError(
+            "Too few args, need IMEI and command min: " + str(args)
+        )
     imei = args[0]
     cmd = args[1]
     args = args[2:]
@@ -30,7 +33,7 @@ def main(conf, opts, args):
     for arg in args:
         k, v = arg.split("=")
         kwargs[k] = v
-    resp = Resp(imei=imei, packet=cls.Out(**kwargs).packed)
+    resp = Resp(imei=imei, when=time(), packet=cls.Out(**kwargs).packed)
     log.debug("Response: %s", resp)
     zpush.send(resp.packed)
 
index e63da322f6ef1fb7c5f5da11d945c610aa135958..b8cc379a16a5cbac14615ead70e84b841e7425ab 100644 (file)
@@ -171,6 +171,7 @@ def runserver(conf):
                                 Bcast(
                                     is_incoming=False,
                                     proto=proto_of_message(zmsg.packet),
+                                    when=zmsg.when,
                                     imei=zmsg.imei,
                                     packet=zmsg.packet,
                                 ).packed
@@ -210,7 +211,7 @@ def runserver(conf):
                             respmsg = inline_response(packet)
                             if respmsg is not None:
                                 clients.response(
-                                    Resp(imei=imei, packet=respmsg)
+                                    Resp(imei=imei, when=when, packet=respmsg)
                                 )
                 else:
                     log.debug("Stray event: %s on socket %s", fl, sk)
index dd5a449bdbcfa771fd5358f25b1d56afd52b386a..edc899fc8742c5f525eacab7bc21dd3b97265ce9 100644 (file)
@@ -39,6 +39,7 @@ def runserver(conf):
             )
             resp = Resp(
                 imei=zmsg.imei,
+                when=zmsg.when,  # not the current time, but the original!
                 packet=msg.Out(latitude=lat, longitude=lon).packed,
             )
             log.debug("Response for lat=%s, lon=%s: %s", lat, lon, resp)
index f481a84ff514fcd3b2cb475661453178b796b64b..9f9168409d6ddd21b0abf746d2d21ce5eae251c8 100644 (file)
@@ -63,7 +63,9 @@ def runserver(conf):
                 ):
                     if key in termconfig:
                         kwargs[key] = termconfig[key]
-            resp = Resp(imei=zmsg.imei, packet=msg.Out(**kwargs).packed)
+            resp = Resp(
+                imei=zmsg.imei, when=zmsg.when, packet=msg.Out(**kwargs).packed
+            )
             log.debug("Response: %s", resp)
             zpush.send(resp.packed)
 
index 8179616485f0d9f5b89148e4dcf12d21df4294ae..0457685ab05ab6bf6cade6eb466c9ccce3a48946 100644 (file)
@@ -130,12 +130,14 @@ class Resp(_Zmsg):
     @property
     def packed(self):
         return (
-            "0000000000000000" if self.imei is None else self.imei.encode()
-        ) + (
+            ("0000000000000000" if self.imei is None else self.imei.encode())
+            + (
                 b"\0\0\0\0\0\0\0\0"
                 if self.when is None
                 else pack("!d", self.when)
-            ) + self.packet
+            )
+            + self.packet
+        )
 
     def decode(self, buffer):
         self.imei = buffer[:16].decode()