diff --git a/addons/hw_escpos/escpos/escpos.py b/addons/hw_escpos/escpos/escpos.py index 3105b38850f..176f6b1d2c5 100644 --- a/addons/hw_escpos/escpos/escpos.py +++ b/addons/hw_escpos/escpos/escpos.py @@ -894,24 +894,21 @@ class Escpos: self._raw(PAPER_FULL_CUT) - def cashdraw(self, pin, tries=5): + def cashdraw(self, pin): """ Send pulse to kick the cash drawer - With some printers the drawer will not open after one pulse, for this reason we will check - the drawer status up to 'tries' times and send a new pulse if the drawer is still closed. If the - drawer status is open, we will stop sending pulses. + For some reason, with some printers (ex: Epson TM-m30), the cash drawer + only opens 50% of the time if you just send the pulse. But if you read + the status afterwards, it opens all the time. """ - for i in range(tries): - if pin == 2: - self._raw(CD_KICK_2) - elif pin == 5: - self._raw(CD_KICK_5) - else: - raise CashDrawerError() - - if i != tries - 1 and not self.get_printer_status()['printer']['drawer_pin_high']: - break + if pin == 2: + self._raw(CD_KICK_2) + elif pin == 5: + self._raw(CD_KICK_5) + else: + raise CashDrawerError() + self.get_printer_status() def hw(self, hw): """ Hardware operations """