예제 #1
0
 def init_transfert_usb(self):
     print ("initialisation du transfert usb <-> Mm")
     for i in range(self.n_tdf):
         self.transfert[i] = libusb1.libusb_alloc_transfer(0)
         libusb1.libusb_fill_bulk_transfer(self.transfert[i], self.usbh.handle, self._ADDR, self.bbuffer_p[i],
                                           self.s_pkt,
                                           self.fn_callback_c, self.NULL, self.TIMEOUT)
         retour = libusb1.libusb_submit_transfer(self.transfert[i])
         if retour:
             print ("Erreur " + str(retour) + " au lancement du paquet" + str(i))
             # else:
             #    print "Pret a recevoir"
     print ("initialisation du transfert usb <-> Mm .................... ok")
     self.etat=1
예제 #2
0
 def __init__(self, handle, iso_packets=0):
     """
     You should not instanciate this class directly.
     Call "getTransfer" method on an USBDeviceHandle instance to get
     instances of this class.
     """
     if iso_packets < 0:
         raise ValueError('Cannot request a negative number of iso '
             'packets.')
     self.__handle = handle
     self.__num_iso_packets = iso_packets
     result = libusb1.libusb_alloc_transfer(iso_packets)
     if not result:
         raise libusb1.USBError('Unable to get a transfer object')
     self.__transfer = result
     self.__ctypesCallbackWrapper = libusb1.libusb_transfer_cb_fn_p(
         self.__callbackWrapper)
예제 #3
0
 def _getTransfer(self, iso_packets=0):
     result = libusb1.libusb_alloc_transfer(iso_packets)
     if not result:
         raise libusb1.USBError, 'Unable to get a transfer object'
     return result
import libusb1

max_packet_size = 256
NUM_ISO_PACKETS = 10

transfer_p = libusb1.libusb_alloc_transfer(NUM_ISO_PACKETS)
transfer = transfer_p.contents
transfer.num_iso_packets = NUM_ISO_PACKETS
libusb1.libusb_set_iso_packet_lengths( transfer_p,
                                       max_packet_size )