X-Git-Url: http://www.average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fqry.py;h=25f55aab75f1470d13ff0c59ba575c2eb6e5c0ad;hb=8bf5efdf4f5d069b108e6fd8140f5ebd930b538e;hp=2a8e266351d5a4c6932d7b16f61a59fe20ad45e8;hpb=4aaa5cd899d6b2bb9fd5e90dfac3d43461394e9b;p=loctrkd.git diff --git a/gps303/qry.py b/gps303/qry.py index 2a8e266..25f55aa 100644 --- a/gps303/qry.py +++ b/gps303/qry.py @@ -2,17 +2,39 @@ 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) - .astimezone(tz=timezone.utc) - .isoformat(), - make_object(length, proto, payload), + datetime.fromtimestamp(tstamp).astimezone(tz=timezone.utc).isoformat(), + imei, + peeraddr, + msg, )