X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fqry.py;h=17228c650b3a67148bfbfb96a26ef6bc4874bcd1;hb=97c5fc86f9fbab5df74879b9b2a705dbb8dcba63;hp=2d4889921334e452226ec09faa04826fcc66ec6a;hpb=fd7f5f3424b04b1ffcb66bc06588e4b4dbe84900;p=loctrkd.git diff --git a/gps303/qry.py b/gps303/qry.py index 2d48899..17228c6 100644 --- a/gps303/qry.py +++ b/gps303/qry.py @@ -1,12 +1,32 @@ -from datetime import datetime +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() -c.execute("select timestamp, imei, clntaddr, proto, payload from events") -for timestamp, imei, clntaddr, proto, payload in c: - print(datetime.fromtimestamp(timestamp).isoformat(), - make_object(proto, payload)) +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 tstamp, imei, peeraddr, proto, packet from events" + + selector, {"proto": proto} +) + +for tstamp, imei, peeraddr, proto, packet in c: + msg = parse_message(packet) + print( + datetime.fromtimestamp(tstamp) + .astimezone(tz=timezone.utc) + .isoformat(), + imei, + peeraddr, + msg, + )