From: Chhavi G. <cg...@gm...> - 2016-01-22 17:19:30
|
Thank you Jared. I will look at your project and try HIDAPI for my project. On Thu, Jan 21, 2016 at 4:42 PM, Jared Contrascere < jar...@li...> wrote: > Hi, Chhavi! > > I'll defer to other opinions on the matter, but I think pyusb might be too > low-level for your purposes, Chhavi. I've been able to interface with a HID > scale on a Raspberry Pi using the python 'hidapi' package. See > https://github.com/libretees/silverscale for an example project. > > --contracode > > > On Thu, Jan 21, 2016 at 3:17 PM, Chhavi Goenka <cg...@gm...> wrote: > >> Hi, >> I am trying to interface raspberry pi with a custom HID device via USB. I >> am using PYUSB for this. But once I run my program i get a timeout error. >> >> Here is my program: >> >> import os >> import sys >> import time >> >> >> import usb.core >> import usb.util >> >> packet_len = 64 >> >> # packet request function >> def pack_request(*arguments): >> packet = [0x0] * packet_len >> i = 0 >> for arg in arguments: >> packet[i] = arg >> i+=1 >> return ''.join([chr(c) for c in packet]) >> >> def show_result(bytes): >> sys.stdout.write("Result:") >> sys.stdout.write(''.join(['%d ' % abyte for abyte in bytes])) >> >> >> def main(): >> dev = usb.core.find(idVendor = 0x04d8, idProduct = 0xf2a6) >> >> if dev is None: >> raise ValueError('Device not found') >> >> #dev.set_configuration() >> >> if dev.is_kernel_driver_active(0): >> reattach = True >> dev.detach_kernel_driver(0) >> >> cfg = dev.get_active_configuration() >> intf = cfg[(0,0)] >> >> ep = usb.util.find_descriptor( >> intf, >> # match the first OUT endpoint >> custom_match = \ >> lambda e: \ >> usb.util.endpoint_direction(e.bEndpointAddress) == \ >> usb.util.ENDPOINT_OUT) >> >> assert ep is not None >> >> raw = pack_request(0x00, 0x81) >> >> dev.write(1, raw, 100) >> >> bytes = dev.read(0x81,packet_len, 10000) >> show_result(bytes) >> >> #print(bytes) >> >> if __name__ == '__main__': >> main() >> >> >> and Here is the error: >> >> pi@raspberrypi:~/Documents $ sudo python multispec_usbcode_jan21.py >> Traceback (most recent call last): >> File "multispec_usbcode_jan21.py", line 66, in <module> >> main() >> File "multispec_usbcode_jan21.py", line 58, in main >> dev.write(1, raw,100) >> File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 878, >> in write >> self.__get_timeout(timeout) >> File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", >> line 778, in intr_write >> timeout) >> File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", >> line 856, in __write >> _check(retval) >> File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", >> line 552, in _check >> raise USBError(_strerror(ret), ret, _libusb_errno[ret]) >> usb.core.USBError: [Errno 110] Operation timed out >> >> Please let me know how to get around this? >> >> Thanks, >> Chhavi >> >> >> >> >> ------------------------------------------------------------------------------ >> Site24x7 APM Insight: Get Deep Visibility into Application Performance >> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >> Monitor end-to-end web transactions and take corrective actions now >> Troubleshoot faster and improve end-user experience. Signup Now! >> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >> _______________________________________________ >> pyusb-users mailing list >> pyu...@li... >> https://lists.sourceforge.net/lists/listinfo/pyusb-users >> >> > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > |