def relance_transfert(self, transfer_i): """ relance (ou pas) le transfert du buffer courant :param transfer_i: :return: """ # calcul du numero du pkt si on le relance id_futur = self.num_pkt + self.n_tdf if id_futur == self.n_pkt - 1: # le paquet sera le dernier de la liste : # avant de le relancer, il faut changer la taille du buffer attendu # on allonge egalement la taille du timeout pour avoir le temps de lancer l instruction packend libusb1.libusb_fill_bulk_transfer(transfer_i, self.usbh.handle, self._ADDR, self.bbuffer_p[self.num_pkt % self.n_tdf], self.s_l_pkt, self.fn_callback_c, NULL, 10 * self.TIMEOUT) # on relance le transfert retour = libusb1.libusb_submit_transfer(transfer_i) if retour: print (".....Erreur " + str(retour) + " au lancement transfert du dernier paquet " + str(self.num_pkt)) # else: # print "dernier paquet, s_pkt = " + str(self.s_l_pkt) elif id_futur < self.n_pkt - 1: # le paquet sera un paquet (normal) dans la liste : # on relance le transfert retour = libusb1.libusb_submit_transfer(transfer_i) if retour: print (".....Erreur " + str(retour) + " au lancement du paquet " + str(self.num_pkt)) # else: # print "paquet standard" elif id_futur > self.n_pkt - 1 or self.etat==0: # le paquet ne sera pas un paquet de la liste : # on ne relance pas le transfert pass
def submit(self): """ Submit transfer for asynchronous handling. """ if self.__submitted: raise ValueError('Cannot submit a submitted transfer') if not self.__initialized: raise ValueError('Cannot submit a transfer until it has been ' 'initialized') self.__submitted = True result = libusb1.libusb_submit_transfer(self.__transfer) if result: self.__submitted = False raise libusb1.USBError(result)
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
def submitTransfer(self, transfer): result = libusb1.libusb_submit_transfer(transfer) if result: raise libusb1.USBError, result