Hi all, I'm very new to this list, so hello all! I'm just starting out using python, my background is lamp.
I have a Prolific Technologies bridged usb cable that I wish to talk to using pyusb and libusb, I've tried following examples and compiling my own code but I'm really struggling getting it to work. I'm trying to send a sequence of letters to the cable, for them to reappear on the other side. I've been trying to use bulkWrite and bulkRead methods but I'm not sure I'm using them right. There's also controlMethod, but I'm not sure what that is used for. Can anyone help get me started, I'm concerned mostly with the communication, I reckon I could actually get somewhere if I can just nail the first bit, here's my code so far: * Cheers in advance, Mike. import usb import sys import os import time from array import array class DeviceDescriptor: def __init__(self, vendor_id, product_id, interface_id) : self.vendor_id = vendor_id self.product_id = product_id self.interface_id = interface_id def get_device(self) : buses = usb.busses() for bus in buses : for device in bus.devices : if device.idVendor == self.vendor_id : if device.idProduct == self.product_id : return device return None class XFPS(): VENDOR_ID = 0x067B #: Vendor Id PRODUCT_ID = 0x0000 #: Product Id for the bridged usb cable INTERFACE_ID = 0 #: The interface we use to talk to the device BULK_IN_EP = 0x83 #: Endpoint for Bulk reads BULK_OUT_EP = 0x02 #: Endpoint for Bulk writes PACKET_LENGTH = 0x40 #: 64 bytes device_descriptor = DeviceDescriptor(VENDOR_ID, \ PRODUCT_ID, INTERFACE_ID) def __init__(self,) : # The actual device (PyUSB object) self.device = self.device_descriptor.get_device() # Handle that is used to communicate with device. Setup in L{open} self.handle = None def open(self) : self.device = self.device_descriptor.get_device() if not self.device: print >> sys.stderr, "Cable isn't plugged in" try: self.handle = self.device.open() self.handle.claimInterface(self.device_descriptor.interface_id) except usb.USBError, err: print >> sys.stderr, err def close(self): """ Release device interface """ try: self.handle.reset() self.handle.releaseInterface() except Exception, err: print >> sys.stderr, err self.handle, self.device = None, None def my_bulk_write(self): A = chr(0x75) # u B = chr(0x69) # i X = chr(0x6F) # o Y = chr(0x70) # p LB = chr(0x6C) # l RB = chr(0x6B) # k LT = chr(0x68) # h RT = chr(0x6A) # j S = chr(0x32) s = chr(0x73) self.close() self.open() msg = [A,B,A,B,A,B,A,B] #help(self.handle.bulkWrite) help(self.handle.interruptWrite) sent_bytes = self.handle.interruptWrite(XFPS.BULK_OUT_EP,msg,1000) print sent_bytes if sent_bytes: read_bytes = self.handle.interruptRead(0x81,sent_bytes); print read_bytes xfps = XFPS() xfps.open() xfps.my_bulk_write() _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor