[pyar] Pyusb + hid en linux
Marcos Wolff
wmarcos en gmail.com
Jue Dic 16 15:21:02 ART 2010
Buenas gente,
Les cuento que como conseguí más información sobre el tema volví a postear
nuevamente todo más prolijo en el post:
http://permalink.gmane.org/gmane.org.user-groups.python.argentina/44372
Ahí están los fuentes del PIC que me pidió Adrían y las salidas de los
sniffers tanto en windows como en linux.
Por ahí ahora alguno me puede dar una mano más fácil.
Gracias a todos !
Marcos.
2010/12/15 Marcos Wolff <wmarcos en gmail.com>
> Hola Adrian! gracias por contestar .. te dejo un update de hasta donde
> llegue ayer
>
> este es el lsusb -vv 04d8:0020
>
> Bus 002 Device 062: ID 04d8:0020 Microchip Technology, Inc.
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 0 (Defined at Interface level)
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 64
> idVendor 0x04d8 Microchip Technology, Inc.
> idProduct 0x0020
> bcdDevice 1.00
> iManufacturer 1 DZE
> iProduct 2 CDI TEST v1.0
> iSerial 0
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 41
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0xc0
> Self Powered
> MaxPower 100mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 3 Human Interface Device
> bInterfaceSubClass 0 No Subclass
> bInterfaceProtocol 0 None
> iInterface 0
> HID Device Descriptor:
> bLength 9
> bDescriptorType 33
> bcdHID 1.00
> bCountryCode 0 Not supported
> bNumDescriptors 1
> bDescriptorType 34 Report
> wDescriptorLength 32
> Report Descriptors:
> ** UNAVAILABLE **
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 EP 1 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0008 1x 8 bytes
> bInterval 1
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x01 EP 1 OUT
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0008 1x 8 bytes
> bInterval 10
> Device Status: 0x0001
> Self Powered
>
>
> y en el programa logré enviar datos pero recibo respuesta vacía :( (el
> programa debería enviar 283 datos y recibir sus respectivas respuestas):
>
>
> #prueba.py
>
> import usb.core
>
> dev = usb.core.find(idVendor=1240,idProduct=32)
> if dev is None:
> raise ValueError('Device not found')
>
> interface = dev.get_interface_altsetting()
> if dev.is_kernel_driver_active(interface.bInterfaceNumber) is True:
> dev.detach_kernel_driver(interface.bInterfaceNumber)
>
> dev.set_configuration()
>
> msg = [0x01,0x03,0x00]
>
> print dev.write(1, msg, 0)
> ret = dev.read(1, 5, 0)
>
> while msg[1] < 0xEE :
> msg[1]+=0x1
> msg[2]+=0x1
> print dev.write(1, msg, 0)
> ret = dev.read(1, 5, 0)
> print "mensaje: "
> print msg
> print "\nrespuesta: "
> print ret
>
> ---- resultado ------------
>
>
> mensaje:
> [1, 3, 0]
>
> respuesta:
> array('B', [0, 0, 0, 0, 0])
> .
> .
> .
> .
> .
> mensaje:
> [1, 238, 235]
>
> respuesta:
> array('B', [0, 0, 0, 0, 0])
>
> en vb6 (que usa el driver HID) funciona :S no se bien por donde es que
> tendría que recibir los datos
>
> Alguna idea ? leer del otro endpoint (0x81) me resulta en un error de
> timeout
>
>
> Gracias !
> Marcos.
>
>
> 2010/12/14 Adrian Pardini <pardo.bsso en gmail.com>
>
> On 14/12/2010, Marcos Wolff <wmarcos en gmail.com> wrote:
>> [...]
>> > *usb.core.USBError: Pipe error*
>>
>> Hola, normalmente el Pipe error significa que el request no está
>> soportado por el dispositivo.
>>
>> [...]
>> > Estoy teniendo un inconveniente con pyusb y el manejo de un dispositivo
>> usb
>> > hid (en realidad es una placa hecha manual con un microcontrolador PIC
>> > 18F4550)
>> >
>> > A la cual bajo windows se comunican enviandole a través del driver HID 3
>> > bytes de información y este devuelve otros 3 bytes como respuesta.
>>
>> Podés subir a algún lado el código que corre en el pic para
>> chusmearlo? Tenés los fuentes o información sobre la aplicación en
>> windows? Fijate también si con lsusb -v -d vendor:product obtenés algo
>> consistente con lo que estás programando.
>>
>> salute
>>
>> --
>> Adrian.
>> http://ovejafm.com
>> http://elesquinazotango.com.ar
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101216/9d0df1a9/attachment.html>
More information about the pyar
mailing list