from sqlite3 import connect
import sys
-from .gps303proto import *
+from .gps303proto import parse_message, proto_by_name
db = connect(sys.argv[1])
c = db.cursor()
selector = ""
c.execute(
- "select timestamp, imei, clntaddr, length, proto, payload from events" +
- selector, {"proto": proto}
+ "select tstamp, imei, peeraddr, proto, packet from events" + selector,
+ {"proto": proto},
)
-for timestamp, imei, clntaddr, length, proto, payload in c:
- msg = make_object(length, proto, payload)
+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(),
+ datetime.fromtimestamp(tstamp).astimezone(tz=timezone.utc).isoformat(),
+ imei,
+ peeraddr,
msg,
)