X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fqry.py;h=76df8f223397eacaf53cda0b00c9390bede4a43d;hb=80f2fab3fcdf6cd962b0d81f385169dbb7431076;hp=2d4889921334e452226ec09faa04826fcc66ec6a;hpb=fd7f5f3424b04b1ffcb66bc06588e4b4dbe84900;p=loctrkd.git diff --git a/gps303/qry.py b/gps303/qry.py index 2d48899..76df8f2 100644 --- a/gps303/qry.py +++ b/gps303/qry.py @@ -1,12 +1,30 @@ -from datetime import datetime +from datetime import datetime, timezone from sqlite3 import connect import sys -from .GT06mod import * +from .gps303proto import * 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 timestamp, imei, clntaddr, length, proto, payload from events" + + selector, {"proto": proto} +) + +for timestamp, imei, clntaddr, length, proto, payload in c: + msg = make_object(length, proto, payload) + print( + datetime.fromtimestamp(timestamp) + .astimezone(tz=timezone.utc) + .isoformat(), + msg, + )