2016-01-05 16:30:40 +00:00
|
|
|
""" ESC/POS Exceptions classes
|
|
|
|
|
|
|
|
Result/Exit codes:
|
|
|
|
|
|
|
|
- `0` = success
|
|
|
|
- `10` = No Barcode type defined :py:exc:`~escpos.exceptions.BarcodeTypeError`
|
|
|
|
- `20` = Barcode size values are out of range :py:exc:`~escpos.exceptions.BarcodeSizeError`
|
|
|
|
- `30` = Barcode text not supplied :py:exc:`~escpos.exceptions.BarcodeCodeError`
|
|
|
|
- `40` = Image height is too large :py:exc:`~escpos.exceptions.ImageSizeError`
|
|
|
|
- `50` = No string supplied to be printed :py:exc:`~escpos.exceptions.TextError`
|
|
|
|
- `60` = Invalid pin to send Cash Drawer pulse :py:exc:`~escpos.exceptions.CashDrawerError`
|
|
|
|
- `70` = Invalid number of tab positions :py:exc:`~escpos.exceptions.TabPosError`
|
|
|
|
- `80` = Invalid char code :py:exc:`~escpos.exceptions.CharCodeError`
|
|
|
|
|
|
|
|
:author: `Manuel F Martinez <manpaz@bashlinux.com>`_ and others
|
|
|
|
:organization: Bashlinux and `python-escpos <https://github.com/python-escpos>`_
|
|
|
|
:copyright: Copyright (c) 2012 Bashlinux
|
|
|
|
:license: GNU GPL v3
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Error(Exception):
|
|
|
|
""" Base class for ESC/POS errors """
|
|
|
|
def __init__(self, msg, status=None):
|
|
|
|
Exception.__init__(self)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 1
|
|
|
|
if status is not None:
|
|
|
|
self.resultcode = status
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return self.msg
|
|
|
|
|
|
|
|
|
|
|
|
class BarcodeTypeError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" No Barcode type defined.
|
|
|
|
|
|
|
|
This exception indicates that no known barcode-type has been entered. The barcode-type has to be
|
|
|
|
one of those specified in :py:meth:`escpos.escpos.Escpos.barcode`.
|
|
|
|
The returned error code is `10`.
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 10
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "No Barcode type is defined"
|
|
|
|
|
2015-11-27 20:20:12 +00:00
|
|
|
|
2010-02-26 08:54:46 +00:00
|
|
|
class BarcodeSizeError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" Barcode size is out of range.
|
|
|
|
|
|
|
|
This exception indicates that the values for the barcode size are out of range.
|
|
|
|
The size of the barcode has to be in the range that is specified in :py:meth:`escpos.escpos.Escpos.barcode`.
|
|
|
|
The resulting returncode is `20`.
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 20
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "Barcode size is out of range"
|
|
|
|
|
2015-11-27 20:20:12 +00:00
|
|
|
|
2010-02-26 08:54:46 +00:00
|
|
|
class BarcodeCodeError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" No Barcode code was supplied.
|
|
|
|
|
|
|
|
No data for the barcode has been supplied in :py:meth:`escpos.escpos.Escpos.barcode`.
|
|
|
|
The returncode for this exception is `30`.
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 30
|
|
|
|
|
|
|
|
def __str__(self):
|
2015-11-27 22:10:20 +00:00
|
|
|
return "No Barcode code was supplied"
|
2010-02-26 08:54:46 +00:00
|
|
|
|
2015-11-27 20:20:12 +00:00
|
|
|
|
2010-02-26 08:54:46 +00:00
|
|
|
class ImageSizeError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" Image height is longer than 255px and can't be printed.
|
|
|
|
|
|
|
|
The returncode for this exception is `40`.
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 40
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "Image height is longer than 255px and can't be printed"
|
|
|
|
|
2015-11-27 20:20:12 +00:00
|
|
|
|
2010-02-26 08:54:46 +00:00
|
|
|
class TextError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" Text string must be supplied to the `text()` method.
|
|
|
|
|
|
|
|
This exception is raised when an empty string is passed to :py:meth:`escpos.escpos.Escpos.text`.
|
|
|
|
The returncode for this exception is `50`.
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 50
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "Text string must be supplied to the text() method"
|
|
|
|
|
|
|
|
|
|
|
|
class CashDrawerError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" Valid pin must be set in order to send pulse.
|
|
|
|
|
|
|
|
A valid pin number has to be passed onto the method :py:meth:`escpos.escpos.Escpos.cashdraw`.
|
|
|
|
The returncode for this exception is `60`.
|
|
|
|
"""
|
2010-02-26 08:54:46 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 60
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "Valid pin must be set to send pulse"
|
2014-05-21 05:15:54 +00:00
|
|
|
|
|
|
|
|
2015-11-27 20:38:59 +00:00
|
|
|
class TabPosError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" Valid tab positions must be in the range 0 to 16.
|
|
|
|
|
|
|
|
This exception is raised by :py:meth:`escpos.escpos.Escpos.control`.
|
|
|
|
The returncode for this exception is `70`.
|
|
|
|
"""
|
2014-05-21 05:15:54 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
|
|
|
self.resultcode = 70
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "Valid tab positions must be in the range 0 to 16"
|
|
|
|
|
|
|
|
|
|
|
|
class CharCodeError(Error):
|
2016-01-05 16:30:40 +00:00
|
|
|
""" Valid char code must be set.
|
|
|
|
|
|
|
|
The supplied charcode-name in :py:meth:`escpos.escpos.Escpos.charcode` is unknown.
|
|
|
|
Ths returncode for this exception is `80`.
|
|
|
|
"""
|
2014-05-21 05:15:54 +00:00
|
|
|
def __init__(self, msg=""):
|
|
|
|
Error.__init__(self, msg)
|
|
|
|
self.msg = msg
|
2016-01-05 16:30:40 +00:00
|
|
|
self.resultcode = 80
|
2014-05-21 05:15:54 +00:00
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "Valid char code must be set"
|