I have modified my code a bit adding class.
Still the same problem.
Why cant I write into the device since the device has been detected.
Here's my code

########################################################

#!usr/bin/python

import usb
import time

class HardwareMonitor_printer(object):
    def __init__(self, vendor_id, product_id):
        self.device_found = False # True if device found
        busses = usb.busses() # enumerate busses
        self.handle = None
#        print 'busses: ',busses
        for bus in busses:
#                print 'bus: ',bus
                devices = bus.devices
#                print 'devices: ',devices
                for dev in devices:
                    if dev.idVendor == vendor_id and dev.idProduct ==
product_id: # device matches
                        self.dev = dev
                        self.conf = self.dev.configurations[0]
                        self.intf = self.conf.interfaces[0][0]
                        self.endpoints = []
                        for endpoint in self.intf.endpoints:
                            self.endpoints.append(endpoint)

                        self.device_found = True
                        return

    def open(self):
        if self.handle:
            self.handle = None
        try:
            self.handle = self.dev.open()
            self.handle.detachKernelDriver(0)
            self.handle.detachKernelDriver(1)
            self.handle.setConfiguration(self.conf)
            self.handle.claimInterface(self.intf)
            self.handle.setAltInterface(self.intf)
            return True
        except:
            return False

    def write(self, ep , buff, timeout=100):
        try:
            return self.handle.interruptWrite(ep, buff, timeout) #return
bytes written
        except usb.USBError as e:
            print e
            return 0

    def read(self, ep, size, timeout=100):
        try:
            return self.handle.interruptRead(ep, size, timeout) # return
data read
        except:
            return []

    def getDeviceName(self):
        try:
            for i in range (1, 4):
                print self.handle.getString(i,25)
        except IOError as e:
            print e

    def endpoint(self):
            return self.endpoints

if __name__ == '__main__':
    printer = HardwareMonitor_printer(0xdd4,0x1a8)
    if printer.device_found:
        printer.open()
        printer.getDeviceName()
        #: is there something wrong with the parameters ?
        bytes_written = printer.write(1, [0x81], 1000)
        time.sleep(1)
        #: is this parameter right ?
        bytes_read = printer.read(0x81, 64)
        print 'rx data: ', bytes_read
    else:
        print 'device not found!!!'

===============================
I got this output.

$ sudo python hardware_monitor_printer.py
CUSTOM Engineering S.p.A.
TG2480-H
Self Power Mode
error submitting URB: No such file or directory
rx data:  []

===============================
Please someone help me. I really need to
solve this. At least I need to send some hex
codes into the device.

Thanks in regards.
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to