From 7d3957a9d196cbf708b4f1cbd841cfa0091b5695 Mon Sep 17 00:00:00 2001 From: NaruX Date: Tue, 14 Aug 2018 08:53:56 +0200 Subject: [PATCH] Fehlerabfang f?r Watch-Mode verbessert --- revpipycontrol/revpicheckclient.py | 15 ++++++++++++++- revpipycontrol/revpipycontrol.py | 9 ++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/revpipycontrol/revpicheckclient.py b/revpipycontrol/revpicheckclient.py index f75b103..454fa8b 100644 --- a/revpipycontrol/revpicheckclient.py +++ b/revpipycontrol/revpicheckclient.py @@ -318,9 +318,21 @@ class RevPiCheckClient(tkinter.Frame): self.err_workvalues = self.max_errors if self.err_workvalues >= self.max_errors: + # Fenster zerstören bei zu vielen Fehlern self.hideallwindows() + if self.autorw.get(): + self.autorw.set(False) + self.toggleauto() + self.dowrite.set(False) self.pack_forget() + tkmsg.showerror( + _("Error"), + _("To many errors while reading IO data. " + "Can not show the Watch-Mode."), + parent=self.master + ) + return None # Multicall zum Schreiben vorbereiten @@ -438,8 +450,9 @@ class RevPiCheckClient(tkinter.Frame): str_errmsg += _( "Error set value of device '{}' Output '{}': {} \n" ).format(devicename, lst_result[1], lst_result[3]) + if str_errmsg != "": - tkmsg.showerror(_("Error"), str_errmsg) + tkmsg.showerror(_("Error"), str_errmsg, parent=self.master) def writevalues(self): u"""Schreibt geänderte Outputs auf den RevPi.""" diff --git a/revpipycontrol/revpipycontrol.py b/revpipycontrol/revpipycontrol.py index 3c424eb..78da44e 100755 --- a/revpipycontrol/revpipycontrol.py +++ b/revpipycontrol/revpipycontrol.py @@ -251,9 +251,7 @@ class RevPiPyControl(tkinter.Frame): ) else: # Debugfenster laden - if self.debugframe is None \ - or self.debugframe.err_workvalues >= \ - self.debugframe.max_errors: + if self.debugframe is None: try: self.debugframe = revpicheckclient.RevPiCheckClient( self, self.cli, self.xmlmode @@ -269,6 +267,11 @@ class RevPiPyControl(tkinter.Frame): self.btn_debug["state"] = "normal" return None + # Fehler prüfen + if self.debugframe.err_workvalues >= self.debugframe.max_errors: + self.debugframe = None + return None + # Show/Hide wechseln if self.debugframe.winfo_viewable(): self.debugframe.hideallwindows()