Updated to be compatible with libusb1
This commit is contained in:
parent
a019722177
commit
e9effc23da
11
INSTALL
11
INSTALL
|
@ -3,6 +3,17 @@ python-escpos
|
||||||
|
|
||||||
Ensure it is present under ${lib_arch}/${python_ver}/site-packages/escpos
|
Ensure it is present under ${lib_arch}/${python_ver}/site-packages/escpos
|
||||||
|
|
||||||
|
On Linux, ensure you belongs to the proper group so you can have access to the printer.
|
||||||
|
This can be done, by adding yourself to 'dialout' group, this might require to re-login
|
||||||
|
so the changes make effect.
|
||||||
|
|
||||||
|
Then, add the following rule to /etc/udev/rules.d/99-escpos.rules
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0202", MODE="0664", GROUP="dialout"
|
||||||
|
|
||||||
|
and restar udev rules.
|
||||||
|
# sudo service udev restart
|
||||||
|
|
||||||
Enjoy !!!
|
Enjoy !!!
|
||||||
|
And please, don't forget to ALWAYS add Epson.cut() at the end of your printing :)
|
||||||
|
|
||||||
Manuel F Martinez <manpaz@bashlinux.com>
|
Manuel F Martinez <manpaz@bashlinux.com>
|
||||||
|
|
2
README
2
README
|
@ -66,6 +66,8 @@ with your instance.
|
||||||
4. Define your instance
|
4. Define your instance
|
||||||
|
|
||||||
The following example shows how to initialize the Epson TM-TI88IV
|
The following example shows how to initialize the Epson TM-TI88IV
|
||||||
|
*** NOTE: Always finish the sequence with Epson.cut() otherwise
|
||||||
|
you will endup with weird chars being printed.
|
||||||
|
|
||||||
from escpos import *
|
from escpos import *
|
||||||
|
|
||||||
|
|
34
escpos.py
34
escpos.py
|
@ -6,7 +6,8 @@
|
||||||
@license: GPL
|
@license: GPL
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import usb
|
import usb.core
|
||||||
|
import usb.util
|
||||||
import Image
|
import Image
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
@ -21,13 +22,8 @@ class DeviceDescriptor:
|
||||||
self.interface = interface
|
self.interface = interface
|
||||||
|
|
||||||
def get_device(self) :
|
def get_device(self) :
|
||||||
buses = usb.busses()
|
device = usb.core.find(idVendor=self.idVendor, idProduct=self.idProduct)
|
||||||
for bus in buses :
|
|
||||||
for device in bus.devices :
|
|
||||||
if device.idVendor == self.idVendor and device.idProduct == self.idProduct :
|
|
||||||
return device
|
return device
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
class Escpos:
|
class Escpos:
|
||||||
""" ESC/POS Printer object """
|
""" ESC/POS Printer object """
|
||||||
|
@ -43,21 +39,25 @@ class Escpos:
|
||||||
|
|
||||||
device_descriptor = DeviceDescriptor(self.idVendor, self.idProduct, self.interface)
|
device_descriptor = DeviceDescriptor(self.idVendor, self.idProduct, self.interface)
|
||||||
self.device = device_descriptor.get_device()
|
self.device = device_descriptor.get_device()
|
||||||
if not self.device:
|
if self.device is None:
|
||||||
print "Cable isn't plugged in"
|
print "Cable isn't plugged in"
|
||||||
try:
|
|
||||||
self.handle = self.device.open()
|
|
||||||
self.handle.detachKernelDriver(self.interface) # Claim the interface
|
|
||||||
self.handle.setConfiguration(self.device.configurations[0])
|
|
||||||
self.handle.claimInterface(device_descriptor.interface)
|
|
||||||
#self.handle.AltInterface(device_descriptor.interface)
|
|
||||||
|
|
||||||
except usb.USBError, err:
|
if self.device.is_kernel_driver_active(0):
|
||||||
print err
|
try:
|
||||||
|
self.device.detach_kernel_driver(0)
|
||||||
|
except usb.core.USBError as e:
|
||||||
|
print "Could not detatch kernel driver: %s" % str(e)
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.device.set_configuration()
|
||||||
|
self.device.reset()
|
||||||
|
except usb.core.USBError as e:
|
||||||
|
print "Could not set configuration: %s" % str(e)
|
||||||
|
|
||||||
|
|
||||||
def _raw(self, msg):
|
def _raw(self, msg):
|
||||||
""" Print any of the commands above, or clear text """
|
""" Print any of the commands above, or clear text """
|
||||||
self.handle.bulkWrite(self.out_ep, msg, 1000)
|
self.device.write(self.out_ep, msg, self.interface)
|
||||||
|
|
||||||
|
|
||||||
def _check_image_size(self, size):
|
def _check_image_size(self, size):
|
||||||
|
|
Loading…
Reference in New Issue