Exemple #1
0
    def search_scanner(self):
        """ Called from the scanner thread, this will keep searching for a barcode scanner until it is found. """
        self.scanner = None

        while self.scanner is None:
            sleep(1)
            self.scanner = BarcodeScanner.get_scanner()

            if self.quit_event.isSet():
                return

        self.add_event((self.EVENT_DEVICE, "plugged_in"))
Exemple #2
0
    def __init__(self, settings, lcd):
        self.settings = settings
        self.lcd = lcd
        self.sel = NumberSelector(self.lcd)
        self.sel.callback = self.select_packer_callback
        self.menu = Menu(self.lcd)
        self.menu.callback = self.menu_callback
        self.scanner = BarcodeScanner.get_scanner()
        self.mode = self.MODE_SELECT_PACKER

        self.terminal_id = self.settings.get("terminal")

        self.ws = Webservice(self.settings.get("url"))
        self.ws.token = self.settings.get("token")
        self.ws.username = self.settings.get("username")
        self.ws.password = self.settings.get("password")

        self.scanner_thread = Thread(target=self.scanner_thread, name="scanner_thread")
        self.buttons_thread = Thread(target=self.buttons_thread, name="buttons_thread")
        self.timer_thread = Thread(target=self.timer_thread, name="timer_thread")
        self.scanner_thread.daemon = True
        self.buttons_thread.daemon = True
        self.timer_thread.daemon = True

        self.lock = Lock()
        self.semaphore = Semaphore()
        self.timer_event = Event()
        self.quit_event = Event()

        self.event_stack = list()

        # Tracking status variables
        self.packer_id = None
        self.invoice = None
        self.start_time = None
        self.order_info = None

        # Saved previous modes for special cases
        self.previous_mode_menu = None