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)
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)