parser.add_argument('--ca-cert', help="root CA certificate", required=True) parser.add_argument('--device-cert', help="device certificate", required=True) parser.add_argument('--device-key', help="device private key file", required=True) parser.add_argument('--debug', help="enable debug logging", action="store_true") args = parser.parse_args() # configure logging Log.setup() if args.debug: Log.enable_debug() # initialize the pack module Pack.setup() # initialize the database layer Database.setup(args.database) # create the uploader uploader = Uploader(args.device, args.host, args.port, args.ca_cert, args.device_key, args.device_cert) # create the collector collector = Collector(uploader) # TBD: probe the GPIO pins to detect the presence of pack modules pack1 = Pack(0, "AIN0", 800, 15.0, 120.0) collector.add_pack(pack1) pack2 = Pack(1, "AIN1", 800, 15.0, 120.0) collector.add_pack(pack2) pack3 = Pack(2, "AIN2", 800, 15.0, 120.0) collector.add_pack(pack3) pack4 = Pack(3, "AIN3", 3000, 21.0, 240.0)
if __name__ == '__main__': import sys import logging from optparse import OptionParser from twisted.python import log from twisted.internet import reactor from application.database import Database Log.setup() parser = OptionParser() parser.add_option("--database", dest="database", help="database location") parser.add_option("--host", dest="host", help="MQTT server") parser.add_option("--port", dest="port", help="MQTT port") parser.add_option("--ca-cert", dest="cacert", help="CA certificate") parser.add_option("--device-key", dest="devicekey", help="device key") parser.add_option("--device-cert", dest="devicecert", help="device cert") (options, args) = parser.parse_args() if options.database is None or options.host is None or options.port is None or options.cacert is None or options.devicekey is None or options.devicecert is None: raise Exception("missing argument") Database.setup(options.database) uploader = Uploader(options.host, int(options.port), options.cacert, options.devicekey, options.devicecert) uploader.start() reactor.run()