if __name__ == '__main__': logging.warning("start barcode scanner mule") db = get_db() log = logging.getLogger('barcode_scanner_mule') scanner = BarcodeScanner() open_state = True port = None poll_time = 0 while True: if poll_time < time(): poll_time = time() + DB_POLL_INTERVAL port = db.reg_get('serial_port_barcode') if scanner.is_open() and scanner.port != port: scanner.close() elif scanner.is_open(): barcode_data = scanner.read() if barcode_data is not None: handle_barcode(db, barcode_data) else: sleep(0.1) elif port is not None and scanner.open(port): db.reg_set('barcode_scanner_status', 'open') open_state = True elif open_state: db.reg_set('barcode_scanner_status', 'closed') open_state = False sleep(1) else: sleep(1)