diff --git a/doc/revpimodio2.netio.html b/doc/revpimodio2.netio.html
index 98bea51..3f674ae 100644
--- a/doc/revpimodio2.netio.html
+++ b/doc/revpimodio2.netio.html
@@ -122,7 +122,7 @@ Thread
Class Attributes
-| __slots__ |
| closed |
| name |
| reconnecting |
| timeout |
+| __slots__ |
| closed |
| config_changed |
| name |
| reconnecting |
| timeout |
Class Methods
@@ -163,6 +163,9 @@ Methods
get_closed |
Pruefen ob Verbindung geschlossen ist. |
+| get_config_changed |
+Pruefen ob RevPi Konfiguration geaendert wurde. |
+
| get_name |
Verbindugnsnamen zurueckgeben. |
@@ -307,6 +310,17 @@ Pruefen ob Verbindung geschlossen ist.
True, wenn Verbindung geschlossen ist
+
+
+NetFH.get_config_changed
+get_config_changed()
+
+Pruefen ob RevPi Konfiguration geaendert wurde.
+
+- Returns:
+-
+True, wenn RevPi Konfiguration geaendert ist
+
NetFH.get_name
@@ -484,7 +498,7 @@ _RevPiModIO
Class Attributes
-| __slots__ |
| reconnecting |
+| __slots__ |
| config_changed |
| reconnecting |
Class Methods
@@ -510,6 +524,9 @@ Methods
exit |
Beendet mainloop() und optional autorefresh. |
+| get_config_changed |
+Pruefen ob RevPi Konfiguration geaendert wurde. |
+
| get_jconfigrsc |
Laedt die piCotry Konfiguration und erstellt ein . |
@@ -595,6 +612,20 @@ Beendet mainloop() und optional autorefresh.
#RevPiModIO.exit(...)
+
+
+RevPiNetIO.get_config_changed
+get_config_changed()
+
+Pruefen ob RevPi Konfiguration geaendert wurde.
+
+ In diesem Fall ist die Verbindung geschlossen und RevPiNetIO muss
+ neu instanziert werden.
+
+- Returns:
+-
+True, wenn RevPi Konfiguration geaendert ist
+
RevPiNetIO.get_jconfigrsc
@@ -612,6 +643,9 @@ RevPiNetIO.get_reconnecting
get_reconnecting()
Interner reconnect aktiv wegen Netzwerkfehlern.
+
+ Das Modul versucht intern die Verbindung neu herzustellen. Es ist
+ kein weiteres Zutun noetig.
- Returns:
-
diff --git a/eric-revpimodio2.api b/eric-revpimodio2.api
index 3d2c2e1..bc83c7f 100644
--- a/eric-revpimodio2.api
+++ b/eric-revpimodio2.api
@@ -190,8 +190,10 @@ revpimodio2.netio.NetFH._direct_send?5(send_bytes, recv_count)
revpimodio2.netio.NetFH.clear_dirtybytes?4(position=None)
revpimodio2.netio.NetFH.close?4()
revpimodio2.netio.NetFH.closed?7
+revpimodio2.netio.NetFH.config_changed?7
revpimodio2.netio.NetFH.flush?4()
revpimodio2.netio.NetFH.get_closed?4()
+revpimodio2.netio.NetFH.get_config_changed?4()
revpimodio2.netio.NetFH.get_name?4()
revpimodio2.netio.NetFH.get_reconnecting?4()
revpimodio2.netio.NetFH.get_timeout?4()
@@ -211,8 +213,10 @@ revpimodio2.netio.NetFH.write?4(bytebuff)
revpimodio2.netio.NetFH?1(address, check_replace_ios, timeout=500)
revpimodio2.netio.RevPiNetIO._create_myfh?5()
revpimodio2.netio.RevPiNetIO._get_cpreplaceio?5()
+revpimodio2.netio.RevPiNetIO.config_changed?7
revpimodio2.netio.RevPiNetIO.disconnect?4()
revpimodio2.netio.RevPiNetIO.exit?4(full=True)
+revpimodio2.netio.RevPiNetIO.get_config_changed?4()
revpimodio2.netio.RevPiNetIO.get_jconfigrsc?4()
revpimodio2.netio.RevPiNetIO.get_reconnecting?4()
revpimodio2.netio.RevPiNetIO.net_cleardefaultvalues?4(device=None)
diff --git a/revpimodio2/helper.py b/revpimodio2/helper.py
index 0197694..abb8bcc 100644
--- a/revpimodio2/helper.py
+++ b/revpimodio2/helper.py
@@ -289,7 +289,7 @@ class ProcimgWriter(Thread):
"""
- __slots__ = "__dict_delay", "__eventth", "__eventqth", "__eventwork", \
+ __slots__ = "__dict_delay", "__eventth", "_eventqth", "__eventwork", \
"_adjwait", "_eventq", "_ioerror", "_maxioerrors", "_modio", \
"_refresh", "_work", "daemon", "lck_refresh", "newdata"
@@ -299,7 +299,7 @@ class ProcimgWriter(Thread):
super().__init__()
self.__dict_delay = {}
self.__eventth = Thread(target=self.__exec_th)
- self.__eventqth = queue.Queue()
+ self._eventqth = queue.Queue()
self.__eventwork = False
self._adjwait = 0
self._eventq = queue.Queue()
@@ -340,7 +340,7 @@ class ProcimgWriter(Thread):
or regfunc.edge == FALLING and not boolor:
if regfunc.delay == 0:
if regfunc.as_thread:
- self.__eventqth.put(
+ self._eventqth.put(
(regfunc, io_event._name, io_event.value),
False
)
@@ -363,7 +363,7 @@ class ProcimgWriter(Thread):
for regfunc in dev._dict_events[io_event]:
if regfunc.delay == 0:
if regfunc.as_thread:
- self.__eventqth.put(
+ self._eventqth.put(
(regfunc, io_event._name, io_event.value),
False
)
@@ -390,7 +390,7 @@ class ProcimgWriter(Thread):
"""Laeuft als Thread, der Events als Thread startet."""
while self.__eventwork:
try:
- tup_fireth = self.__eventqth.get(timeout=1)
+ tup_fireth = self._eventqth.get(timeout=1)
th = EventCallback(
tup_fireth[0].func, tup_fireth[1], tup_fireth[2]
)
@@ -415,7 +415,7 @@ class ProcimgWriter(Thread):
self.__eventwork = value
if not value:
# Nur leeren beim deaktivieren
- self.__eventqth = queue.Queue()
+ self._eventqth = queue.Queue()
self._eventq = queue.Queue()
self.__dict_delay = {}
@@ -533,7 +533,7 @@ class ProcimgWriter(Thread):
if self.__dict_delay[tup_fire] <= 0:
# Verzögertes Event übernehmen und löschen
if tup_fire[0].as_thread:
- self.__eventqth.put(tup_fire, False)
+ self._eventqth.put(tup_fire, False)
else:
self._eventq.put(tup_fire, False)
del self.__dict_delay[tup_fire]
diff --git a/revpimodio2/modio.py b/revpimodio2/modio.py
index 401b4fc..f21a5e3 100644
--- a/revpimodio2/modio.py
+++ b/revpimodio2/modio.py
@@ -850,7 +850,7 @@ class RevPiModIO(object):
or regfunc.edge == RISING and io.value \
or regfunc.edge == FALLING and not io.value:
if regfunc.as_thread:
- self._imgwriter.__eventqth.put(
+ self._imgwriter._eventqth.put(
(regfunc, io._name, io.value), False
)
else:
diff --git a/revpimodio2/netio.py b/revpimodio2/netio.py
index db500ce..1c9eeb7 100644
--- a/revpimodio2/netio.py
+++ b/revpimodio2/netio.py
@@ -187,6 +187,9 @@ class NetFH(Thread):
"configuration on revolution pi was changed")
else:
self.__replace_ios_h = byte_buff[16:]
+ except ConfigChanged:
+ so.close()
+ raise
except Exception:
so.close()
else:
@@ -228,9 +231,7 @@ class NetFH(Thread):
"""Entfernt die konfigurierten Dirtybytes vom RevPi Slave.
@param position Startposition der Dirtybytes"""
if self.__config_changed:
- raise ConfigChanged(
- "configuration on revolution pi was changed"
- )
+ raise ConfigChanged("configuration on revolution pi was changed")
if self.__sockend.is_set():
raise ValueError("I/O operation on closed file")
@@ -301,9 +302,7 @@ class NetFH(Thread):
def flush(self):
"""Schreibpuffer senden."""
if self.__config_changed:
- raise ConfigChanged(
- "configuration on revolution pi was changed"
- )
+ raise ConfigChanged("configuration on revolution pi was changed")
if self.__sockend.is_set():
raise ValueError("flush of closed file")
@@ -337,6 +336,11 @@ class NetFH(Thread):
@return True, wenn Verbindung geschlossen ist"""
return self.__sockend.is_set()
+ def get_config_changed(self):
+ """Pruefen ob RevPi Konfiguration geaendert wurde.
+ @return True, wenn RevPi Konfiguration geaendert ist"""
+ return self.__config_changed
+
def get_name(self):
"""Verbindugnsnamen zurueckgeben.
@return IP:PORT"""
@@ -621,6 +625,7 @@ class NetFH(Thread):
return len(bytebuff)
closed = property(get_closed)
+ config_changed = property(get_config_changed)
name = property(get_name)
reconnecting = property(get_reconnecting)
timeout = property(get_timeout, set_timeout)
@@ -755,6 +760,15 @@ class RevPiNetIO(_RevPiModIO):
except ConfigChanged:
pass
+ def get_config_changed(self):
+ """Pruefen ob RevPi Konfiguration geaendert wurde.
+
+ In diesem Fall ist die Verbindung geschlossen und RevPiNetIO muss
+ neu instanziert werden.
+
+ @return True, wenn RevPi Konfiguration geaendert ist"""
+ return self._myfh.config_changed
+
def get_jconfigrsc(self):
"""Laedt die piCotry Konfiguration und erstellt ein .
@return der piCtory Konfiguration"""
@@ -765,6 +779,10 @@ class RevPiNetIO(_RevPiModIO):
def get_reconnecting(self):
"""Interner reconnect aktiv wegen Netzwerkfehlern.
+
+ Das Modul versucht intern die Verbindung neu herzustellen. Es ist
+ kein weiteres Zutun noetig.
+
@return True, wenn reconnect aktiv"""
return self._myfh.reconnecting
@@ -835,6 +853,7 @@ class RevPiNetIO(_RevPiModIO):
dev._offset + dev._slc_out.start, dirtybytes
)
+ config_changed = property(get_config_changed)
reconnecting = property(get_reconnecting)