# setup calculation thread threadCalc = Calc.Calc(cfg, queueReadings=queueReadings, queueResults=queueDB, broadcast_queue=queueMqttPub) threadCalc.daemon = True threadCalc.start() # setup database thread updateDB = DB.UpdateDB(cfg, queueResults=queueDB) updateDB.daemon = True updateDB.start() # setup arduino scheduler thread ards = Arduino.ArdSchedule(cfg, queueToArduino) ards.initialize() ards.daemon = True ards.start() meter = HydroMeter.Meter(cfg, queue_readings=queueReadings, queue_db=queueDB) meter.daemon = True meter.start() # start main thread of execution try: arduino.run() except serial.SerialException: logging.error("Disconnected (Serial exception)")