Ejemplo n.º 1
0
    def send_buf(self,return_input=False):
        buf = self.OUTPUT_BUFFER # shorthand
        #buf[9] = chr(1)
        #print 'ord(buf[8])',ord(buf[8])
        #print 'ord(buf[9])',ord(buf[9])

        if 1:
            val = usb.bulk_write(self.libusb_handle, 0x06, buf, 9999)
            debug('set_output_durations result: %d'%(val,))

        if 1:
            INPUT_BUFFER = ctypes.create_string_buffer(16)

            try:
                val = usb.bulk_read(self.libusb_handle, 0x82, INPUT_BUFFER, 1000)
                if 0:
                    print 'framecount LE:'
                    print ord(INPUT_BUFFER[0])
                    print ord(INPUT_BUFFER[1])

                    print 'counter ticks:'
                    print ord(INPUT_BUFFER[8])
                    print ord(INPUT_BUFFER[9])

                if 0:
                    print 'read',val
            except usb.USBNoDataAvailableError:
                if 0:
                    sys.stdout.write('?')
                    sys.stdout.flush()
                val = None
            if return_input:
                return INPUT_BUFFER
Ejemplo n.º 2
0
    def __send_and_receive(self, in_timeout=200, out_timeout=9999):
        """
        Send bulkout and and receive bulkin as a response.
        
        Arguments: None
        
        Keywords: 
          in_timeout  = bulkin timeout in ms
          out_timeout = bilkin timeout in ms
          
        Return: the data returned by the usb device.
        """
        done = False
        while not done:
            val = usb.bulk_write(self.libusb_handle,
                                 self.usb_bulkout_ep_address,
                                 self.output_buffer, out_timeout)

            if val < 0:
                raise IOError, "error sending usb output"

            try:
                numbytes = usb.bulk_read(self.libusb_handle,
                                         self.usb_bulkin_ep_address,
                                         self.input_buffer, in_timeout)
                debug_print('usb SR bytes read: %d' % (numbytes, ),
                            comma=False)
                done = True
            except usb.USBNoDataAvailableError:
                debug_print('usb SR: fail', comma=False)
                sys.stdout.flush()

        return
Ejemplo n.º 3
0
    def send_buf(self, return_input=False):
        buf = self.OUTPUT_BUFFER  # shorthand
        #buf[9] = chr(1)
        #print 'ord(buf[8])',ord(buf[8])
        #print 'ord(buf[9])',ord(buf[9])

        if 1:
            val = usb.bulk_write(self.libusb_handle, 0x06, buf, 9999)
            debug('set_output_durations result: %d' % (val, ))

        if 1:
            INPUT_BUFFER = ctypes.create_string_buffer(16)

            try:
                val = usb.bulk_read(self.libusb_handle, 0x82, INPUT_BUFFER,
                                    1000)
                if 0:
                    print 'framecount LE:'
                    print ord(INPUT_BUFFER[0])
                    print ord(INPUT_BUFFER[1])

                    print 'counter ticks:'
                    print ord(INPUT_BUFFER[8])
                    print ord(INPUT_BUFFER[9])

                if 0:
                    print 'read', val
            except usb.USBNoDataAvailableError:
                if 0:
                    sys.stdout.write('?')
                    sys.stdout.flush()
                val = None
            if return_input:
                return INPUT_BUFFER
Ejemplo n.º 4
0
 def __send_output(self, timeout=9999):
     """
     Send output data to the usb device.
     
     Arguments: None
     
     Keywords:
       timeout = the timeout in ms
       
     Return: number of bytes written on success or < 0 on error.
     """
     buf = self.output_buffer  # shorthand
     val = usb.bulk_write(self.libusb_handle, USB_BULKOUT_EP_ADDRESS, buf,
                          timeout)
     return val
Ejemplo n.º 5
0
    def __send_and_receive(self,in_timeout=200,out_timeout=9999):
        """
        Send bulkout and and receive bulkin as a response.
        
        Arguments: None
        
        Keywords: 
          in_timeout  = bulkin timeout in ms
          out_timeout = bilkin timeout in ms
          
        Return: the data returned by the usb device.
        """
        done = False
        while not done:
            val = usb.bulk_write(
                    self.libusb_handle, 
                    self.usb_bulkout_ep_address, 
                    self.output_buffer, 
                    out_timeout
                    )

            if val < 0 :
                raise IOError, "error sending usb output"

            try:
                numbytes = usb.bulk_read(
                        self.libusb_handle, 
                        self.usb_bulkin_ep_address, 
                        self.input_buffer, 
                        in_timeout
                        )
                debug_print('usb SR bytes read: %d'%(numbytes,), comma=False) 
                done = True
            except usb.USBNoDataAvailableError:
                debug_print('usb SR: fail', comma=False) 
                sys.stdout.flush()

        return 
Ejemplo n.º 6
0
 def _send_buf(self,buf):
     if not self.real_device:
         return
     with self._lock:
         val = usb.bulk_write(self._libusb_handle, 0x06, buf, 9999)
Ejemplo n.º 7
0
 def _send_buf(self,buf):
     if not self._have_trigger:
         return
     with self._lock:
         val = usb.bulk_write(self._libusb_handle, 0x06, buf, 9999)
Ejemplo n.º 8
0
 def _send_output(self, timeout=9999):
     buf = self.output_buffer  # shorthand
     #print 'write', [ord(b) for b in buf]
     val = usb.bulk_write(self.libusb_handle, USB_BULKOUT_EP_ADDRESS, buf,
                          timeout)
     return val
Ejemplo n.º 9
0
 def enter_dfu_mode(self):
     buf = self.OUTPUT_BUFFER # shorthand
     buf[8] = chr(TASK_FLAGS_ENTER_DFU)
     val = usb.bulk_write(self.libusb_handle, 0x06, buf, 9999)
Ejemplo n.º 10
0
 def _send_output(self, timeout=9999):
     buf = self.output_buffer  # shorthand
     val = usb.bulk_write(self.libusb_handle, USB_BULKOUT_EP_ADDRESS, buf,
                          timeout)
     return val
Ejemplo n.º 11
0
 def enter_dfu_mode(self):
     buf = self.OUTPUT_BUFFER  # shorthand
     buf[8] = chr(TASK_FLAGS_ENTER_DFU)
     val = usb.bulk_write(self.libusb_handle, 0x06, buf, 9999)