]> www.average.org Git - loctrkd.git/blobdiff - gps303/qry.py
WIP retoure messaging
[loctrkd.git] / gps303 / qry.py
index 2a8e266351d5a4c6932d7b16f61a59fe20ad45e8..4aeb33c4a14ea3f9c8425ea2312e1d25775e3d43 100644 (file)
@@ -2,17 +2,34 @@ from datetime import datetime, timezone
 from sqlite3 import connect
 import sys
 
-from .GT06mod import *
+from .gps303proto import parse_message, proto_by_name
 
 db = connect(sys.argv[1])
 c = db.cursor()
+if len(sys.argv) > 2:
+    proto = proto_by_name(sys.argv[2])
+    if proto < 0:
+        raise ValueError("No protocol with name " + sys.argv[2])
+    selector = " where proto = :proto"
+else:
+    proto = -1
+    selector = ""
+
 c.execute(
-    "select timestamp, imei, clntaddr, length, proto, payload from events"
+    "select tstamp, imei, peeraddr, proto, packet from events" +
+    selector, {"proto": proto}
 )
-for timestamp, imei, clntaddr, length, proto, payload in c:
+
+for tstamp, imei, peeraddr, proto, packet in c:
+    if len(packet) >  packet[0] + 1:
+        print("proto", packet[1] , "datalen", len(packet),
+                "msg.length", packet[0], file=sys.stderr)
+    msg = parse_message(packet)
     print(
-        datetime.fromtimestamp(timestamp)
+        datetime.fromtimestamp(tstamp)
         .astimezone(tz=timezone.utc)
         .isoformat(),
-        make_object(length, proto, payload),
+        imei,
+        peeraddr,
+        msg,
     )