Bei Änderung der Configuration nur die PLC-Slave-Verbindungen trennen

Accept Timeout auf 2 Sekunden festgelegt
This commit is contained in:
2019-08-19 16:40:18 +02:00
parent 2b96abce66
commit 6372188205
4 changed files with 22 additions and 3 deletions

View File

@@ -70,6 +70,12 @@ class RevPiSlave(Thread):
)
dev._acl = level
def disconnect_all(self):
"""Close all device connection."""
# Alle Threads beenden
for th in self._th_dev:
th.stop()
def newlogfile(self):
"""Konfiguriert die FileHandler auf neue Logdatei."""
pass
@@ -80,6 +86,7 @@ class RevPiSlave(Thread):
# Socket öffnen und konfigurieren bis Erfolg oder Ende
self.so = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.so.settimeout(2)
while not self._evt_exit.is_set():
try:
self.so.bind((self._bindip, self._port))
@@ -97,9 +104,11 @@ class RevPiSlave(Thread):
self.exitcode = -1
# Verbindung annehmen
proginit.logger.info("accept new connection for revpinetio")
try:
tup_sock = self.so.accept()
proginit.logger.info("accepted new connection for revpinetio")
except socket.timeout:
continue
except Exception:
if not self._evt_exit.is_set():
proginit.logger.exception("accept exception")

View File

@@ -750,8 +750,8 @@ class RevPiPyLoad():
if self.mqtt and self.th_plcmqtt is not None:
self.th_plcmqtt.reload_revpimodio()
# ProcImgServer anhalten zum neu laden
self.stop_plcslave()
# Alle Verbindungen von ProcImgServer trennen
self.th_plcslave.disconnect_all()
# XML Prozessabbildserver neu laden
if self.xml_ps is not None: