diff --git a/src/printer.py b/src/printer.py index 27acdb9..3a886b3 100644 --- a/src/printer.py +++ b/src/printer.py @@ -322,22 +322,29 @@ class EscPosPrinter(Printer): self.app.logger.info("Did a cut") self.ready = True - def _state(self): - self.app.logger.debug("Online : %s " , self.printer.is_online()) - self.app.logger.debug("Has paper : %s " , self._has_paper()) - self.app.logger.debug("Ready : %s " , self.ready) - return self.printer.is_online() and self.ready and self._has_paper() + def _state(self) -> bool: + has_paper = self._has_paper() + is_ready = self.ready + + self.app.logger.debug("Has paper : %s " , has_paper ) + self.app.logger.debug("Ready : %s " , is_ready ) + + return is_ready and has_paper # and is_online def print_task(self, task_type, data): """Execute actual print based on task type""" + + with self._lock: self.app.logger.debug("Acquired lock to start print") - while not self._state(): - self.app.logger.debug("Waiting for the printer to become ready..") + i_m_ready = self._state() + while not i_m_ready: + self.app.logger.debug("Waiting for the printer to become ready, current state %s ", str(i_m_ready)) + i_m_ready = self._state() time.sleep(0.3) - self.app.logger.debug("Checked state to start printing %s", self._state()) + self.app.logger.debug("Checked state to start printing : %s", self._state()) self.ready = False try: self.app.logger.debug("Checking task type")