From ba08dab33f670bcd2bbba8cedc699fe6ff79263f Mon Sep 17 00:00:00 2001 From: NaruX Date: Sat, 31 Aug 2019 11:10:57 +0200 Subject: [PATCH] =?UTF-8?q?Doppelte=20Fehlerz=C3=A4hlung=20bei=20imgwriter?= =?UTF-8?q?=20und=20modio=20in=20modio=20zusammengef=C3=BChrt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/revpimodio2.helper.html | 60 ++----------------------------------- eric-revpimodio2.api | 6 ---- revpimodio2/device.py | 2 -- revpimodio2/helper.py | 52 ++------------------------------ revpimodio2/modio.py | 7 +---- 5 files changed, 5 insertions(+), 122 deletions(-) diff --git a/doc/revpimodio2.helper.html b/doc/revpimodio2.helper.html index 0224b20..83b157c 100644 --- a/doc/revpimodio2.helper.html +++ b/doc/revpimodio2.helper.html @@ -429,7 +429,7 @@ Thread

Class Attributes

- +
__slots__
ioerrors
maxioerrors
refresh
__slots__
refresh

Class Methods

@@ -452,24 +452,12 @@ Methods _collect_events Aktiviert oder Deaktiviert die Eventueberwachung. -_get_ioerrors -Ruft aktuelle Anzahl der Fehler ab. - -_gotioerror -IOError Verwaltung fuer autorefresh. - -get_maxioerrors -Gibt die Anzahl der maximal erlaubten Fehler zurueck. - get_refresh Gibt Zykluszeit zurueck. run Startet die automatische Prozessabbildsynchronisierung. -set_maxioerrors -Setzt die Anzahl der maximal erlaubten Fehler. - set_refresh Setzt die Zykluszeit in Millisekunden. @@ -521,39 +509,6 @@ True aktiviert / False deaktiviert
True, wenn Anforderung erfolgreich war
- -

-ProcimgWriter._get_ioerrors

-_get_ioerrors() -

-Ruft aktuelle Anzahl der Fehler ab. -

-
Returns:
-
-Aktuelle Fehleranzahl -
-
-

-ProcimgWriter._gotioerror

-_gotioerror(e=None) -

-IOError Verwaltung fuer autorefresh. -

-
e
-
-Exception to log if debug is enabled -
-
-

-ProcimgWriter.get_maxioerrors

-get_maxioerrors() -

-Gibt die Anzahl der maximal erlaubten Fehler zurueck. -

-
Returns:
-
-Anzahl erlaubte Fehler -

ProcimgWriter.get_refresh

@@ -571,18 +526,7 @@ ProcimgWriter.run run()

Startet die automatische Prozessabbildsynchronisierung. -

-

-ProcimgWriter.set_maxioerrors

-set_maxioerrors(value) -

-Setzt die Anzahl der maximal erlaubten Fehler. -

-
value
-
-Anzahl erlaubte Fehler -
-
+

ProcimgWriter.set_refresh

set_refresh(value) diff --git a/eric-revpimodio2.api b/eric-revpimodio2.api index c92868a..aa88805 100644 --- a/eric-revpimodio2.api +++ b/eric-revpimodio2.api @@ -82,15 +82,9 @@ revpimodio2.helper.EventCallback.run?4() revpimodio2.helper.EventCallback.stop?4() revpimodio2.helper.EventCallback?1(func, name, value) revpimodio2.helper.ProcimgWriter._collect_events?5(value) -revpimodio2.helper.ProcimgWriter._get_ioerrors?5() -revpimodio2.helper.ProcimgWriter._gotioerror?5(e=None) -revpimodio2.helper.ProcimgWriter.get_maxioerrors?4() revpimodio2.helper.ProcimgWriter.get_refresh?4() -revpimodio2.helper.ProcimgWriter.ioerrors?7 -revpimodio2.helper.ProcimgWriter.maxioerrors?7 revpimodio2.helper.ProcimgWriter.refresh?7 revpimodio2.helper.ProcimgWriter.run?4() -revpimodio2.helper.ProcimgWriter.set_maxioerrors?4(value) revpimodio2.helper.ProcimgWriter.set_refresh?4(value) revpimodio2.helper.ProcimgWriter.stop?4() revpimodio2.helper.ProcimgWriter?1(parentmodio) diff --git a/revpimodio2/device.py b/revpimodio2/device.py index a668c62..2043f70 100644 --- a/revpimodio2/device.py +++ b/revpimodio2/device.py @@ -348,12 +348,10 @@ class Device(object): if not self._modio._imgwriter.is_alive(): # Alte Einstellungen speichern - imgmaxioerrors = self._modio._imgwriter.maxioerrors imgrefresh = self._modio._imgwriter.refresh # ImgWriter mit alten Einstellungen erstellen self._modio._imgwriter = ProcimgWriter(self._modio) - self._modio._imgwriter.maxioerrors = imgmaxioerrors self._modio._imgwriter.refresh = imgrefresh self._modio._imgwriter.start() diff --git a/revpimodio2/helper.py b/revpimodio2/helper.py index 0679bf5..a30d65b 100644 --- a/revpimodio2/helper.py +++ b/revpimodio2/helper.py @@ -290,7 +290,7 @@ class ProcimgWriter(Thread): """ __slots__ = "__dict_delay", "__eventth", "_eventqth", "__eventwork", \ - "_adjwait", "_eventq", "_ioerror", "_maxioerrors", "_modio", \ + "_adjwait", "_eventq", "_modio", \ "_refresh", "_work", "daemon", "lck_refresh", "newdata" def __init__(self, parentmodio): @@ -303,8 +303,6 @@ class ProcimgWriter(Thread): self.__eventwork = False self._adjwait = 0 self._eventq = queue.Queue() - self._ioerror = 0 - self._maxioerrors = 0 self._modio = parentmodio self._refresh = 0.05 self._work = Event() @@ -427,39 +425,6 @@ class ProcimgWriter(Thread): return True - def _get_ioerrors(self): - """Ruft aktuelle Anzahl der Fehler ab. - @return Aktuelle Fehleranzahl""" - return self._ioerror - - def _gotioerror(self, e=None): - """IOError Verwaltung fuer autorefresh. - @param e Exception to log if debug is enabled - """ - self._ioerror += 1 - if self._maxioerrors != 0 and self._ioerror >= self._maxioerrors: - raise RuntimeError( - "reach max io error count {0} on process image".format( - self._maxioerrors - ) - ) - if self._modio._debug: - warnings.warn( - "count {0} io errors on process image | {1}" - "".format(self._ioerror, str(e)), - RuntimeWarning - ) - else: - warnings.warn( - "got io error on process image", - RuntimeWarning - ) - - def get_maxioerrors(self): - """Gibt die Anzahl der maximal erlaubten Fehler zurueck. - @return Anzahl erlaubte Fehler""" - return self._maxioerrors - def get_refresh(self): """Gibt Zykluszeit zurueck. @return Zykluszeit in Millisekunden""" @@ -515,7 +480,7 @@ class ProcimgWriter(Thread): fh.flush() except IOError as e: - self._gotioerror(e) + self._modio._gotioerror("autorefresh", e) self.lck_refresh.release() continue @@ -567,17 +532,6 @@ class ProcimgWriter(Thread): """Beendet die automatische Prozessabbildsynchronisierung.""" self._work.set() - def set_maxioerrors(self, value): - """Setzt die Anzahl der maximal erlaubten Fehler. - @param value Anzahl erlaubte Fehler""" - if type(value) == int: - if value >= 0: - self._maxioerrors = value - else: - raise ValueError("value must be 0 or a positive integer") - else: - raise TypeError("value must be ") - def set_refresh(self, value): """Setzt die Zykluszeit in Millisekunden. @param value Millisekunden""" @@ -590,6 +544,4 @@ class ProcimgWriter(Thread): "refresh time must be 5 to 2000 milliseconds" ) - ioerrors = property(_get_ioerrors) - maxioerrors = property(get_maxioerrors, set_maxioerrors) refresh = property(get_refresh, set_refresh) diff --git a/revpimodio2/modio.py b/revpimodio2/modio.py index d64e810..c438bb3 100644 --- a/revpimodio2/modio.py +++ b/revpimodio2/modio.py @@ -413,10 +413,7 @@ class RevPiModIO(object): def _get_ioerrors(self): """Getter function. @return Aktuelle Anzahl gezaehlter Fehler""" - if self._looprunning: - return self._imgwriter._ioerror - else: - return self._ioerror + return self._ioerror def _get_length(self): """Getter function. @@ -499,7 +496,6 @@ class RevPiModIO(object): @param value Anzahl erlaubte Fehler""" if type(value) == int and value >= 0: self._maxioerrors = value - self._imgwriter.maxioerrors = value else: raise ValueError("value must be 0 or a positive integer") @@ -981,7 +977,6 @@ class RevPiModIO(object): def resetioerrors(self): """Setzt aktuellen IOError-Zaehler auf 0 zurueck.""" self._ioerror = 0 - self._imgwriter._ioerror = 0 def setdefaultvalues(self, device=None): """Alle Outputbuffer werden auf die piCtory default Werte gesetzt.