1 """ Store zmq broadcasts to sqlite """
3 from getopt import getopt
4 from logging import getLogger
5 from logging.handlers import SysLogHandler
11 from .evstore import initdb, stow
12 from .gps303proto import parse_message
14 log = getLogger("gps303/storage")
17 dbname = conf.get("storage", "dbfn")
18 log.info('Using Sqlite3 database "%s"', dbname)
21 zsub = zctx.socket(zmq.SUB)
22 zsub.connect(conf.get("collector", "publishurl"))
23 zsub.setsockopt(zmq.SUBSCRIBE, b"")
28 imei = zmsg[1:17].decode()
30 msg = parse_message(packet)
31 log.debug("From IMEI %s: %s", imei, msg)
32 stow("", time(), imei, msg.length, msg.PROTO, msg.payload)
33 except KeyboardInterrupt:
37 if __name__.endswith("__main__"):
38 runserver(common.init(log))