mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-09 06:13:53 +01:00
Debug Parameter nimmt Werte -1, 0, 1 an.
Bei debug=-1 werden keinerlei Warnungen angezeigt Bei debug=0 werden alle Warnungen nur ein einziges Mal angezeigt bei debug=1 werden alle Warnungen immer angezeigt
This commit is contained in:
@@ -485,15 +485,22 @@ class ProcimgWriter(Thread):
|
|||||||
|
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
self._modio._gotioerror("autorefresh", e, mrk_warn)
|
self._modio._gotioerror("autorefresh", e, mrk_warn)
|
||||||
mrk_warn = False
|
mrk_warn = self._modio._debug == -1
|
||||||
self.lck_refresh.release()
|
self.lck_refresh.release()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if not mrk_warn:
|
if not mrk_warn:
|
||||||
|
if self._modio._debug == 0:
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"recover io errors on process image - total count "
|
"recover from io errors on process image",
|
||||||
"of {0} errors now".format(self._modio._ioerror),
|
RuntimeWarning
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
warnings.warn(
|
||||||
|
"recover from io errors on process image - total "
|
||||||
|
"count of {0} errors now"
|
||||||
|
"".format(self._modio._ioerror),
|
||||||
RuntimeWarning
|
RuntimeWarning
|
||||||
)
|
)
|
||||||
mrk_warn = True
|
mrk_warn = True
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ class RevPiModIO(object):
|
|||||||
# Private Variablen
|
# Private Variablen
|
||||||
self.__cleanupfunc = None
|
self.__cleanupfunc = None
|
||||||
self._buffedwrite = False
|
self._buffedwrite = False
|
||||||
self._debug = False
|
self._debug = 1
|
||||||
self._exit = Event()
|
self._exit = Event()
|
||||||
self._imgwriter = None
|
self._imgwriter = None
|
||||||
self._ioerror = 0
|
self._ioerror = 0
|
||||||
@@ -408,7 +408,7 @@ class RevPiModIO(object):
|
|||||||
def _get_debug(self):
|
def _get_debug(self):
|
||||||
"""Gibt Status des Debugflags zurueck.
|
"""Gibt Status des Debugflags zurueck.
|
||||||
@return Status des Debugflags"""
|
@return Status des Debugflags"""
|
||||||
return self._debug
|
return self._debug == 1
|
||||||
|
|
||||||
def _get_ioerrors(self):
|
def _get_ioerrors(self):
|
||||||
"""Getter function.
|
"""Getter function.
|
||||||
@@ -460,18 +460,18 @@ class RevPiModIO(object):
|
|||||||
"".format(self._maxioerrors)
|
"".format(self._maxioerrors)
|
||||||
)
|
)
|
||||||
|
|
||||||
if not show_warn:
|
if not show_warn or self._debug == -1:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self._debug:
|
if self._debug == 0:
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"got io error during '{0}' and count {1} errors now | {2}"
|
"got io error on process image",
|
||||||
"".format(action, self._ioerror, str(e)),
|
|
||||||
RuntimeWarning
|
RuntimeWarning
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"got io error on process image",
|
"got io error during '{0}' and count {1} errors now | {2}"
|
||||||
|
"".format(action, self._ioerror, str(e)),
|
||||||
RuntimeWarning
|
RuntimeWarning
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -489,14 +489,22 @@ class RevPiModIO(object):
|
|||||||
def _set_debug(self, value):
|
def _set_debug(self, value):
|
||||||
"""Setzt debugging Status um mehr Meldungen zu erhalten oder nicht.
|
"""Setzt debugging Status um mehr Meldungen zu erhalten oder nicht.
|
||||||
@param value Wenn True, werden umfangreiche Medungen angezeigt"""
|
@param value Wenn True, werden umfangreiche Medungen angezeigt"""
|
||||||
if not isinstance(value, bool):
|
if type(value) == bool:
|
||||||
raise TypeError("value must be <class 'bool'>")
|
value = int(value)
|
||||||
|
if not type(value) == int:
|
||||||
|
# Wert -1 ist zum kompletten deaktivieren versteckt
|
||||||
|
raise TypeError("value must be <class 'bool'> or <class 'int'>")
|
||||||
|
if not -1 <= value <= 1:
|
||||||
|
raise ValueError("value must be True/False or -1, 0, 1")
|
||||||
|
|
||||||
self._debug = value
|
self._debug = value
|
||||||
|
|
||||||
if value:
|
if value == -1:
|
||||||
warnings.filterwarnings("always", module="revpimodio2")
|
warnings.filterwarnings("ignore", module="revpimodio2")
|
||||||
else:
|
elif value == 0:
|
||||||
warnings.filterwarnings("default", module="revpimodio2")
|
warnings.filterwarnings("default", module="revpimodio2")
|
||||||
|
else:
|
||||||
|
warnings.filterwarnings("always", module="revpimodio2")
|
||||||
|
|
||||||
def _set_maxioerrors(self, value):
|
def _set_maxioerrors(self, value):
|
||||||
"""Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.
|
"""Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.
|
||||||
@@ -883,13 +891,13 @@ class RevPiModIO(object):
|
|||||||
# ImgWriter mit Eventüberwachung aktivieren
|
# ImgWriter mit Eventüberwachung aktivieren
|
||||||
self._imgwriter._collect_events(True)
|
self._imgwriter._collect_events(True)
|
||||||
e = None
|
e = None
|
||||||
runtime = 0
|
runtime = -1 if self._debug == -1 else 0
|
||||||
|
|
||||||
while not self._exit.is_set():
|
while not self._exit.is_set():
|
||||||
|
|
||||||
# Laufzeit der Eventqueue auf 0 setzen
|
# Laufzeit der Eventqueue auf 0 setzen
|
||||||
if self._imgwriter._eventq.qsize() == 0:
|
if self._imgwriter._eventq.qsize() == 0:
|
||||||
runtime = 0
|
runtime = -1 if self._debug == -1 else 0
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tup_fire = self._imgwriter._eventq.get(timeout=1)
|
tup_fire = self._imgwriter._eventq.get(timeout=1)
|
||||||
|
|||||||
@@ -516,12 +516,13 @@ class NetFH(Thread):
|
|||||||
try:
|
try:
|
||||||
self._slavesock.send(_syssync)
|
self._slavesock.send(_syssync)
|
||||||
data = self._slavesock.recv(2)
|
data = self._slavesock.recv(2)
|
||||||
except IOError as e:
|
except IOError:
|
||||||
self.__sockerr.set()
|
self.__sockerr.set()
|
||||||
else:
|
else:
|
||||||
if data != b'\x06\x16':
|
if data != b'\x06\x16':
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"data error in sync of NetFH", RuntimeWarning
|
"data error on network sync",
|
||||||
|
RuntimeWarning
|
||||||
)
|
)
|
||||||
self.__sockerr.set()
|
self.__sockerr.set()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user