示例#1
0
    def saisie_modification(self, event):
        """ Fonction d'envoi du code par appui sur le bouton ou la
        touche entrer """
        self.coderecu.SetLabel('')
        start_time = time.time()
        #envoi sur la liaison serie
        ser_trans = serial.Serial(self.combo1.GetValue(), self.combo2.GetValue(), timeout=1)
        ser_trans.write(bytes(self.saisie_modif.GetValue()))

        #reception sur la liaison serie
        if self.combo3.GetValue() != 'COMx':
            ser_recep = serial.Serial(self.combo3.GetValue(), self.combo4.GetValue(), timeout=1)
            lecturecode = ser_recep.readline()
        else:
            lecturecode = ser_trans.readline()

        #fonction decodage
        lecturecode=str(lecturecode)
        lecturecode = lecturecode.replace(' ','')
        longueur=len(lecturecode)
        listcode=[]
        
        for i in range(0,longueur/20):
            listcode.append(lecturecode[i*20:(i*20)+20])

        for i in range(0,len(listcode)):
            motdecode = decodage.DecodeConvolutif().decodage(listcode[i])
            current = self.coderecu.GetValue()
            self.coderecu.SetLabel(current + motdecode)

        mystring = binascii.unhexlify('%x' % int('0b' + self.coderecu.GetValue(), 2))
        self.phrasedecode.SetLabel(mystring)
                                      
        wx.StaticText(self.panel, -1,
                      " Executed in : %s second(s)" % (time.time() - start_time), (1, 530))
示例#2
0
    def test_decodage_une_erreur(self):
        """ Fonction de test du décodage avec une erreur par octet """
        # Génération des erreurs
        erreur = []

        liste = range(8)
        erreur.append(random.choice(liste))

        liste = range(8, 12)
        erreur.append(random.choice(liste))

        liste_erreur = ["", "", "", "", "", "", "", ""]
        # Ajout des erreurs dans le code
        for i in range(8):
            liste_erreur[i] = constant.LIST_DECODE[i]

        for i in range(8):
            erreur_temp = list(liste_erreur[i])

            for j in erreur:
                if erreur_temp[j] == "0":
                    erreur_temp[j] = "1"
                else:
                    erreur_temp[j] = "0"

            liste_erreur[i] = ''.join(erreur_temp)

        # Decodage
        for i in range(8):
            ledecodage = decodage.DecodeConvolutif().decodage(liste_erreur[i])
            self.assertEqual(ledecodage, constant.LIST_CODE[i])
示例#3
0
    def test_decodage_deux_erreurs(self):
        """ Fonction de test du décodage avec deux erreurs dans les deux premiers octets """
        # Génération des erreurs
        erreur = []

        liste = range(8)

        for i in range(2):
            alea = random.choice(liste)
            while alea in erreur:
                alea = random.choice(liste)
            erreur.append(alea)

        liste = range(8, 16)
        for i in range(2):
            alea = random.choice(liste)
            while alea in erreur:
                alea = random.choice(liste)
            erreur.append(alea)

        liste_erreur = ["", "", "", "", "", "", "", ""]
        # Ajout des erreurs dans le code
        for i in range(8):
            liste_erreur[i] = constant.LIST_DECODE[i]

        for i in range(8):
            erreur_temp = list(liste_erreur[i])
            for j in erreur:
                if erreur_temp[j] == "0":
                    erreur_temp[j] = "1"
                else:
                    erreur_temp[j] = "0"

            liste_erreur[i] = ''.join(erreur_temp)

        # Decodage
        for i in range(8):
            ledecodage = decodage.DecodeConvolutif().decodage(liste_erreur[i])
            self.assertEqual(ledecodage, constant.LIST_CODE[i])
示例#4
0
 def test_decodage(self):
     """ Fonction de test du décodage avec tous les états possible """
     for i in range(8):
         ledecodage = decodage.DecodeConvolutif().decodage(
             constant.LIST_DECODE[i])
         self.assertEqual(ledecodage, constant.LIST_CODE[i])
示例#5
0
 def test_decodage_manuel(self):
     """ Fonction de test du décodage manuel """
     code = "01000010110110111101"
     ledecodage = decodage.DecodeConvolutif().decodage(code)
     self.assertEqual(ledecodage, "001")