# HG changeset patch # User Daniel O'Connor # Date 1242194202 -34200 # Node ID adaff1c4fd6bb0ce182dee0c91f6a711f4dae5cb # Parent e2089824735a4f42bf6325639453f484a7e2f1d9 Rip out procedural interface and use the OO one. diff -r e2089824735a -r adaff1c4fd6b usb488.py --- a/usb488.py Wed May 13 15:02:09 2009 +0930 +++ b/usb488.py Wed May 13 15:26:42 2009 +0930 @@ -251,74 +251,13 @@ result = result[0:-1] return result - -def find488(): - """Search for a USB488 device, returns a handle, iface, dev tuple for it""" - - busses = usb.busses() - - found = False - for bus in busses: - for dev in bus.devices: - for confidx in xrange(len(dev.configurations)): - # XXX: what do multi-interface devices look like? - iface = dev.configurations[confidx].interfaces[0][0] - # Check if this is a USB488 capable interface - if iface.interfaceClass == USB_CLASS_APP_SPECIFIC and \ - iface.interfaceSubClass == USB_SUBCLASS_TMC and \ - iface.interfaceProtocol == USB_PROTOCOL_488: - handle = dev.open() - handle.setConfiguration(1) - handle.claimInterface(0) - handle.setAltInterface(0) - #handle.setConfiguration(confidx) - #handle.claimInterface(0) - found = True - break - - if found: - break - - if not found: - raise "Could not find scope, check perms" - - return (handle, iface, dev) - -def geteps(iface): - """Returns a tuple of intr,input,output addresses of endpoints for the interface""" - intrep = bulkinep = bulkoutep = None - - for ep in iface.endpoints: - if ep.type == usb.ENDPOINT_TYPE_INTERRUPT and \ - ep.address & usb.ENDPOINT_IN == usb.ENDPOINT_IN: - intrep = ep.address - - if ep.type == usb.ENDPOINT_TYPE_BULK: - if ep.address & usb.ENDPOINT_IN == usb.ENDPOINT_IN: - bulkinep = ep.address - else: - bulkoutep = ep.address - - # Required for 488.2 devices, optional otherwise - if intrep == None: - print "Can't find interrup endpoint" - - # Data from the scope - if bulkinep == None: - raise "Can't find bulk-in endpoint" - - # Data to the scope - if bulkoutep == None: - raise "Can't find bulk-out endpoint" - - return intrep, bulkinep, bulkoutep - def main(): - handle, iface, dev = find488() + u = USB488Device() print "Found device" - intrep, bulkinep, bulkoutep = geteps(iface) - print "Found endpoints" + print "ID is.." + u.write("*IDN?") + print u.read() if __name__ == "__main__": main()