]> www.average.org Git - loctrkd.git/blob - gps303/qry.py
4aeb33c4a14ea3f9c8425ea2312e1d25775e3d43
[loctrkd.git] / gps303 / qry.py
1 from datetime import datetime, timezone
2 from sqlite3 import connect
3 import sys
4
5 from .gps303proto import parse_message, proto_by_name
6
7 db = connect(sys.argv[1])
8 c = db.cursor()
9 if len(sys.argv) > 2:
10     proto = proto_by_name(sys.argv[2])
11     if proto < 0:
12         raise ValueError("No protocol with name " + sys.argv[2])
13     selector = " where proto = :proto"
14 else:
15     proto = -1
16     selector = ""
17
18 c.execute(
19     "select tstamp, imei, peeraddr, proto, packet from events" +
20     selector, {"proto": proto}
21 )
22
23 for tstamp, imei, peeraddr, proto, packet in c:
24     if len(packet) >  packet[0] + 1:
25         print("proto", packet[1] , "datalen", len(packet),
26                 "msg.length", packet[0], file=sys.stderr)
27     msg = parse_message(packet)
28     print(
29         datetime.fromtimestamp(tstamp)
30         .astimezone(tz=timezone.utc)
31         .isoformat(),
32         imei,
33         peeraddr,
34         msg,
35     )