J'essaye d'écrire une fonction qui lit continuellement l'entrée série. La fonction doit être capable de gérer les déconnexions inattendues du port série et de se reconnecter lorsque cela est possible. Malgré la lecture de plusieurs questions sur stackOverflow et la lecture de la documentation de pySerial, je n'ai pas encore trouvé de solution.Reconnexion avec pySerial
Voici mon code:
def serialRead(serialPort, queue):
"""Adds serial port input to a queue."""
ser = serial.Serial(serialPort - 1, timeout = 2)
ser.parity = "O"
ser.bytesize = 7
while(True):
try:
if(ser == None):
ser = serial.Serial(serialPort - 1, timeout = 2)
ser.parity = "O"
ser.bytesize = 7
print("Reconnecting")
queue.put(ser.read(27))
ser.write(chr(6).encode())
print("Writing Data...")
except:
if(not(ser == None)):
ser.close()
ser = None
print("Disconnecting")
print("No Connection")
time.sleep(2)
Voici mon sortie:
Enter a Serial Port: 7
Writing Data...
Writing Data...
Writing Data...
Writing Data...
Je commence par mon appareil connecté. Après avoir quitté le programme, ni "Disconnecting" ni "No Connection" n'apparaissent et le programme s'arrête (il ne plante pas).
Comment sortez-vous du programme? – RageCage
Je ne suis pas en train de quitter le programme. J'essaye d'écrire le programme pour qu'il continue à fonctionner, même si la connexion est perdue. – Raeven
Désolé, j'ai mal compris "quitter le programme". Alors, que se passe-t-il lorsque vous déconnectez tout ce qui est connecté au port? – RageCage