コード例 #1
0
    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
コード例 #2
0
ファイル: usb1.py プロジェクト: AlexanderS/linux-minidisc
 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)
コード例 #3
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
コード例 #4
0
ファイル: usb1.py プロジェクト: astraw/python-libusb1
 def submitTransfer(self, transfer):
     result = libusb1.libusb_submit_transfer(transfer)
     if result:
         raise libusb1.USBError, result