Schnittstelle deinitialisieren?
Verfasst: Dienstag 20. Oktober 2020, 16:43
Hallo zusammen,
ich habe ein Programm, das auf die serielle Schnittstelle (USB) zugreift. Diese wird natürlich initialisiert, und ein Fehler durch falsche COMPort Initialisierung wird erfolgreich abgefangen.
Das COMPort gebe ich über Entry ein (Uport) und rufe die Funktion initser() auf.
Das Problem ist nun folgendes:
Wenn das COMPort richtig eingestellt war, und ich übergebe noch einmal den richtigen String, dann bekomme ich immer einen IO Error, da dasselbe COPort nicht 2x zugewiesen werden kann.
Gibt es eine Möglichkeit, die bisherige Initialisierung sozusagen zu löschen ("deinit") ?
ich habe ein Programm, das auf die serielle Schnittstelle (USB) zugreift. Diese wird natürlich initialisiert, und ein Fehler durch falsche COMPort Initialisierung wird erfolgreich abgefangen.
Code: Alles auswählen
def initser():
try:
global ser, Uport
ser=serial.Serial(
port = Uport, # COM Port Nummer als Variable aus Eingabemaske, wird in Funktion comport definiert
baudrate = 115200,
parity = serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
Errorzeile=Label(fenster, text=" ")
Errorzeile.pack()
Errorzeile.place(x = 450, y = 130)
Portgesetzt = Label(fenster, text="COM Port ist gesetzt ", bg="lightgreen")
Portgesetzt.pack()
Portgesetzt.place(x = 450, y = 55) #Anzeige, dass COM Port gesetzt ist
except IOError:
print(IOError)
Errorzeile=Label(fenster, text=IOError, fg="red", font = "calibri 12 bold italic")
Errorzeile.pack()
Errorzeile.place(x = 450, y = 130)
Portgesetzt = Label(fenster, text="COM Port ist falsch ", bg="yellow")
Portgesetzt.pack()
Portgesetzt.place(x = 450, y = 55)
Das Problem ist nun folgendes:
Wenn das COMPort richtig eingestellt war, und ich übergebe noch einmal den richtigen String, dann bekomme ich immer einen IO Error, da dasselbe COPort nicht 2x zugewiesen werden kann.
Gibt es eine Möglichkeit, die bisherige Initialisierung sozusagen zu löschen ("deinit") ?