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,
                                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.

Responder a