Added the DLE EOT querying command.

Added a function to check whether the printer is online or not, as well
as a reading method for USB printers.
This commit is contained in:
K 2017-07-22 02:37:33 +02:00 committed by csoft2k
parent 962208063b
commit 574d6d86fa
3 changed files with 23 additions and 0 deletions

View File

@ -249,3 +249,8 @@ S_RASTER_N = _PRINT_RASTER_IMG(b'\x00') # Set raster image normal size
S_RASTER_2W = _PRINT_RASTER_IMG(b'\x01') # Set raster image double width S_RASTER_2W = _PRINT_RASTER_IMG(b'\x01') # Set raster image double width
S_RASTER_2H = _PRINT_RASTER_IMG(b'\x02') # Set raster image double height S_RASTER_2H = _PRINT_RASTER_IMG(b'\x02') # Set raster image double height
S_RASTER_Q = _PRINT_RASTER_IMG(b'\x03') # Set raster image quadruple S_RASTER_Q = _PRINT_RASTER_IMG(b'\x03') # Set raster image quadruple
# Status Command
RT_STATUS_ONLINE = DLE + EOT + b'\x01';
RT_STATUS_OFFLINECAUSE = DLE + EOT + b'\x02';
RT_MASK_ONLINE = 8;

View File

@ -18,6 +18,7 @@ from __future__ import unicode_literals
import qrcode import qrcode
import textwrap import textwrap
import six import six
import time
import barcode import barcode
from barcode.writer import ImageWriter from barcode.writer import ImageWriter
@ -34,6 +35,7 @@ from .constants import CD_KICK_DEC_SEQUENCE, CD_KICK_5, CD_KICK_2, PAPER_FULL_CU
from .constants import HW_RESET, HW_SELECT, HW_INIT from .constants import HW_RESET, HW_SELECT, HW_INIT
from .constants import CTL_VT, CTL_HT, CTL_CR, CTL_FF, CTL_LF, CTL_SET_HT, PANEL_BUTTON_OFF, PANEL_BUTTON_ON from .constants import CTL_VT, CTL_HT, CTL_CR, CTL_FF, CTL_LF, CTL_SET_HT, PANEL_BUTTON_OFF, PANEL_BUTTON_ON
from .constants import TXT_STYLE from .constants import TXT_STYLE
from .constants import RT_STATUS_ONLINE, RT_STATUS_OFFLINECAUSE, RT_MASK_ONLINE
from .exceptions import BarcodeTypeError, BarcodeSizeError, TabPosError from .exceptions import BarcodeTypeError, BarcodeSizeError, TabPosError
from .exceptions import CashDrawerError, SetVariableError, BarcodeCodeError from .exceptions import CashDrawerError, SetVariableError, BarcodeCodeError
@ -733,6 +735,18 @@ class Escpos(object):
else: else:
self._raw(PANEL_BUTTON_OFF) self._raw(PANEL_BUTTON_OFF)
def queryStatus(self):
self._raw(RT_STATUS_ONLINE)
time.sleep(1)
status = self._read();
if (len(status) > 0):
return status;
else:
return [8];
def _isOnline(self):
status = self.queryStatus()[0];
return ((status & RT_MASK_ONLINE) == 0);
class EscposIO(object): class EscposIO(object):
"""ESC/POS Printer IO object """ESC/POS Printer IO object

View File

@ -84,6 +84,10 @@ class Usb(Escpos):
""" """
self.device.write(self.out_ep, msg, self.timeout) self.device.write(self.out_ep, msg, self.timeout)
def _read(self):
""" Reads a data buffer and returns it to the caller. """
return self.device.read(self.in_ep, 16)
def close(self): def close(self):
""" Release USB interface """ """ Release USB interface """
if self.device: if self.device: