import serial import serial.tools import serial.tools.list_ports from time import sleep from LectureReception import lire_message def ping(ser: serial.Serial): # lecture de 1 octet à l'adresse 0. if ser.in_waiting: ser.read(ser.in_waiting) # On vide le tampon # On teste la carte actionneur ser.write(b'?') sleep(0.01) if ser.in_waiting: message = ser.read(ser.in_waiting) # On vide le tampon if(message[0] == b'A'[0]): print("Carte Actionneur") return "Actionneur" else: print("Carte inconnue : " + str(message)) return None return # On teste les cartes au protocole "com_v2" (détection, propulsion) ser.write(b'\xFF\xFF\x05dD\x00\x01\x00') sleep(0.01) messages, tmp = lire_message(ser, b'') print(messages) if messages != []: if messages[0][0] == b'D'[0]: print("Carte de détection") return "Detection" if messages[0][0] == b'P'[0]: print("Carte de propulsion") return "Propulsion" def identifie_liaison_serie(): serial_actionneur = None serial_detection = None serial_propulsion = None for comport in serial.tools.list_ports.comports(): print(comport.device) ser = serial.Serial(comport.device , 115200) nom_liaison = ping(ser) if nom_liaison == "Actionneur": serial_actionneur = ser elif nom_liaison == "Detection": serial_actionneur = ser elif nom_liaison == "Propulsion": serial_propulsion = ser return [serial_propulsion, serial_detection, serial_actionneur] if __name__ == "__main__": print(identifie_liaison_serie()) # ser = serial.Serial('/dev/ttyACM0' , 115200) # while(1): # ping(ser) # sleep(1)