Identification des ports séries

This commit is contained in:
Samuel 2026-05-03 17:04:08 +02:00
parent f1a4a5c7cd
commit 8cd572fbe1

View File

@ -1,4 +1,6 @@
import serial import serial
import serial.tools
import serial.tools.list_ports
from time import sleep from time import sleep
from LectureReception import lire_message from LectureReception import lire_message
@ -15,26 +17,44 @@ def ping(ser: serial.Serial):
message = ser.read(ser.in_waiting) # On vide le tampon message = ser.read(ser.in_waiting) # On vide le tampon
if(message[0] == b'A'[0]): if(message[0] == b'A'[0]):
print("Carte Actionneur") print("Carte Actionneur")
return "Actionneur"
else: else:
print("Carte inconue : " + str(message)) print("Carte inconnue : " + str(message))
return None
return return
# On teste les cartes au protocole "com_v2" (détection, propulsion) # On teste les cartes au protocole "com_v2" (détection, propulsion)
ser.write(b'\xFF\xFF\x05dD\x00\x01\x00') ser.write(b'\xFF\xFF\x05dD\x00\x01\x00')
sleep(0.01) sleep(0.01)
messages, tmp = lire_message(ser, b'') messages, tmp = lire_message(ser, b'')
if messages is not []: print(messages)
if messages != []:
if messages[0][0] == b'D'[0]: if messages[0][0] == b'D'[0]:
print("Carte de détection") print("Carte de détection")
return return "Detection"
if messages[0][0] == b'P'[0]: if messages[0][0] == b'P'[0]:
print("Carte de propulsion") print("Carte de propulsion")
return 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__": if __name__ == "__main__":
ser = serial.Serial('/dev/ttyACM0' , 115200) print(identifie_liaison_serie())
while(1): # ser = serial.Serial('/dev/ttyACM0' , 115200)
ping(ser) # while(1):
sleep(1) # ping(ser)
# sleep(1)