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:
parent
962208063b
commit
574d6d86fa
@ -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_2H = _PRINT_RASTER_IMG(b'\x02') # Set raster image double height
|
||||
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;
|
||||
|
@ -18,6 +18,7 @@ from __future__ import unicode_literals
|
||||
import qrcode
|
||||
import textwrap
|
||||
import six
|
||||
import time
|
||||
|
||||
import barcode
|
||||
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 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 RT_STATUS_ONLINE, RT_STATUS_OFFLINECAUSE, RT_MASK_ONLINE
|
||||
|
||||
from .exceptions import BarcodeTypeError, BarcodeSizeError, TabPosError
|
||||
from .exceptions import CashDrawerError, SetVariableError, BarcodeCodeError
|
||||
@ -733,6 +735,18 @@ class Escpos(object):
|
||||
else:
|
||||
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):
|
||||
"""ESC/POS Printer IO object
|
||||
|
@ -84,6 +84,10 @@ class Usb(Escpos):
|
||||
"""
|
||||
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):
|
||||
""" Release USB interface """
|
||||
if self.device:
|
||||
|
Loading…
x
Reference in New Issue
Block a user