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))
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])
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])
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])
def test_decodage_manuel(self): """ Fonction de test du décodage manuel """ code = "01000010110110111101" ledecodage = decodage.DecodeConvolutif().decodage(code) self.assertEqual(ledecodage, "001")