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
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)