Пример #1
0
    def setInterrupt(self, endpoint, buffer_or_len, callback=None,
            user_data=None, timeout=0):
        """
        Setup transfer for interrupt use.

        endpoint: endpoint to submit transfer to (implicitly sets transfer
          direction).
        buffer_or_len: either a string (when sending data), or expected data
          length (when receiving data)
        callback: function to call upon event. Called with transfer as
          parameter, return value ignored.
        user_data: to pass some data to/from callback
        timeout: in milliseconds, how long to wait for devices acknowledgement
          or data. Set to 0 to disable.
        """
        if self.__submitted:
            raise ValueError('Cannot alter a submitted transfer')
        string_buffer = create_binary_buffer(buffer_or_len)
        self.__initialized = False
        libusb1.libusb_fill_interrupt_transfer(self.__transfer, self.__handle,
            endpoint, string_buffer,  sizeof(string_buffer),
            self.__ctypesCallbackWrapper, user_data, timeout)
        self.__callback = callback
        self.__initialized = True
Пример #2
0
 def fillInterruptTransfer(self, transfer, endpoint, string_buffer,
                           callback, user_data, timeout):
     libusb1.libusb_fill_interrupt_transfer(transfer, self.handle,
         endpoint, string_buffer,  sizeof(string_buffer),
         libusb1.libusb_transfer_cb_fn_p(callback), user_data,
         timeout)