On 10/13/2015 01:48 PM, Alcides Rivera wrote:
Necesito realizar la impresión de un ticket de cocina utilizando ODOO
8 en el módulo TPV a través de pos_restaurant sin embargo solo
dispongo de una impresora serial y el sistema utiliza USB para dicha
impresión lo que he hecho es adquirir un convertidor SERIAL a USB pero
tengo el siguiente inconveniente al intentar acceder a la impresora he
simulado en el siguiente script de python el acceso a la impresora:
import usb
class FindUsbClass(object):
def __init__(self, usb_class):
self._class = usb_class
def __call__(self, device):
# first, let's check the device
if device.bDeviceClass == self._class:
return True
# transverse all devices and look through their interfaces to
# find a matching class
for cfg in device:
intf = usb.util.find_descriptor(cfg,
bInterfaceClass=self._class)
if intf is not None:
return True
return False
printers = usb.core.find(find_all=True, custom_match=FindUsbClass(0))
for printer in printers:
if hex(printer.idVendor) == '0x67b':
print hex(printer.idVendor)
print hex(printer.idProduct)
print usb.util.get_string(printer, 256, printer.iManufacturer)
Pero al intentar ejecutar con el usuario openerp da el sigueinte error:
0x67b
0x2303
Traceback (most recent call last):
File "prueba.py", line 26, in <module>
print usb.util.get_string(printer, 256, printer.iManufacturer)
File "/home/openerp/.local/lib/python2.7/site-packages/usb/util.py",
line 271, in get_string
langid
File
"/home/openerp/.local/lib/python2.7/site-packages/usb/control.py",
line 173, in get_descriptor
data_or_wLength = desc_size)
File "/home/openerp/.local/lib/python2.7/site-packages/usb/core.py",
line 955, in ctrl_transfer
self._ctx.managed_open()
File "/home/openerp/.local/lib/python2.7/site-packages/usb/core.py",
line 105, in managed_open
self.handle = self.backend.open_device(self.dev)
File
"/home/openerp/.local/lib/python2.7/site-packages/usb/backend/libusb1.py",
line 722, in open_device
return _DeviceHandle(dev)
File
"/home/openerp/.local/lib/python2.7/site-packages/usb/backend/libusb1.py",
line 600, in __init__
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File
"/home/openerp/.local/lib/python2.7/site-packages/usb/backend/libusb1.py",
line 552, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 13] Access denied (insufficient permissions)
He agregado al usuario "openerp" a los grupos: "dialout", "tty", "lp",
"lpadmin".
Pero sigo sin poder ejecutar con éxito. Al ejecutar con sudo python
prueba.py se realiza correctamente es decir el script funciona, pero
no puedo ejecutar con "sudo" desde ODOO.
Su ayuda por favor,
Saludos
--
Ing. Alcides Rivera
*JEFE DE SISTEMAS, DESARROLLO Y TECNOLOGÍA
*
*VIRTUALSAMI CIA. LTDA.*
*Dirección:* Carlos Elías Almeida 7-29 y Gabriela Mistral
Tras el Centro Comercial Laguna Mall,
Barrio Pilanquí del IESS, Ibarrra - Imbabura - Ecuador
*Teléfonos:* 065002485, 062953199, 0991463145
*Correos Electrónicos:* alci...@virtualsami.com.ec
<mailto:alci...@virtualsami.com.ec>,
alcides.river...@gmail.com <mailto:alcides.river...@gmail.com>
*Sitio Web:* http://www.virtualsami.com.ec
_______________________________________________
Lista de Correo Asociacion@listas.asle.ec
Visite http://listas.asle.ec/mailman/listinfo/asociacion
para modificar las opciones de suscripción (suscribirse, retirarse, etc).
Participa en las listas y próximo foro, como socio de ASLE
http://www.asle.ec/portal2/node/7
Visita el canal IRC #asle en irc.freenode.org para consultas en tiempo real.
Todo mensaje que sea enviado a esta lista es público (especialmente los que
contengan una nota de confidencialidad) y cualquiera puede hacer el uso que
desee de él.
Si pones un adaptador USB serial, la impresión sigue siendo en modo
serial, por lo tanto tu programa debera imprimir con comandos ESC/POS,
pero si lo que quieres es que use el modo USB con cups deberás cambiar
el módulo de la impresora, en las epson es muy simple y se consigue
modulos RS232, Paralelo, Ethernet y USB.
Ahora también puedes probar corriendo tu programa(ODOO) como root para
descartar permisos, si ahí funciona entonces lidiar con permisos y udev.
_______________________________________________
Lista de Correo Asociacion@listas.asle.ec
Visite http://listas.asle.ec/mailman/listinfo/asociacion
para modificar las opciones de suscripción (suscribirse, retirarse, etc).
Participa en las listas y próximo foro, como socio de ASLE
http://www.asle.ec/portal2/node/7
Visita el canal IRC #asle en irc.freenode.org para consultas en tiempo real.
Todo mensaje que sea enviado a esta lista es público (especialmente los que
contengan una nota de confidencialidad) y cualquiera puede hacer el uso que
desee de él.