Bonjour,
Afin de vous faire un retour, l'envoi de trames ainsi que la récéption d'une réponse du tiroir sont bien établis grâce à votre aide aux lignes suivantes   

  :
Code : Tout sélectionner
def test_serial():
#Envoi de la trame du Terminal vers tiroir électronique
	Trame_connect = "1002010000000000000000008000000010101003"
	ser.write(bytearray.fromhex(Trame_connect))
	time.sleep(1)
#Décriptage trame reçue Tiroir électronique vers Terminal
	#while True:
		retour_MPU_connect = ser.read()
		print hex(int(retour_MPU_connect.encode('hex '),16)),
Il me reste cependant une question, le tiroir électronique genère un checksum de 4 Bytes en fin de trame.
Afin de valider l'intégrité des données, je souhaiterai établir le calcul de ce checksum avec la trame reçue.
Le checksum portant sur 4 Bytes, je ne peux pas utiliser la fonction hashlib.md5 ...
J'ai réussi à établir le calcul via Vbscript, mais j'ai du mal à l'établir en python..
Code : Tout sélectionner
#########
#VBScript#
#########
somme_trame = 0
    For Offset = 1 To Len(trame_totale) Step 8
        ' inversion MSB LSB
        Mot = "&h" + Mid(trame_totale, Offset + 6, 2) + Mid(trame_totale, Offset + 4, 2) + Mid(trame_totale, Offset + 2, 2) + Mid(trame_totale, Offset, 2)
        somme_trame = somme_trame + Val(Mot)
    Next Offset
    
    checksum_trans = Modulo(((16 ^ 8) - somme_trame), 16 ^ 8)
    
    Checksum_Transport = checksum_trans
Auriez-vous des pistes svp afin de trouver une équivalence en Python, ou quelque chose de plus simple ?  
 
 
Merci d'avance !