diff --git a/doc/procimgserver.html b/doc/procimgserver.html
index c4b3138..850e8b5 100644
--- a/doc/procimgserver.html
+++ b/doc/procimgserver.html
@@ -63,6 +63,9 @@ Methods
ProcimgServer |
Instantiiert RevPiCheckServer()-Klasse. |
+| __del__ |
+Clean up RevPiModIO. |
+
| devices |
Generiert Deviceliste mit Position und Namen. |
@@ -104,7 +107,13 @@ XML-RPC Server
Replace IOs of RevPiModIO
-
+
+
+ProcimgServer.__del__
+__del__()
+
+Clean up RevPiModIO.
+
ProcimgServer.devices
devices()
diff --git a/eric-revpipyload.api b/eric-revpipyload.api
index a3f9d72..2d43877 100644
--- a/eric-revpipyload.api
+++ b/eric-revpipyload.api
@@ -56,6 +56,7 @@ plcsystem.RevPiPlc?1(program, arguments, pversion)
plcsystem.__author__?9
plcsystem.__copyright__?9
plcsystem.__license__?9
+procimgserver.ProcimgServer.__del__?6()
procimgserver.ProcimgServer.devices?4()
procimgserver.ProcimgServer.ios?4(iotype)
procimgserver.ProcimgServer.loadrevpimodio?4()
diff --git a/revpipyload/procimgserver.py b/revpipyload/procimgserver.py
index d0fe70c..ed1be3a 100644
--- a/revpipyload/procimgserver.py
+++ b/revpipyload/procimgserver.py
@@ -54,6 +54,11 @@ class ProcimgServer():
proginit.logger.debug("leave ProcimgServer.__init__()")
+ def __del__(self):
+ """Clean up RevPiModIO."""
+ if self.rpi is not None:
+ self.rpi.cleanup()
+
def devices(self):
"""Generiert Deviceliste mit Position und Namen.
@return list() mit Tuple (pos, name)"""
diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py
index 544e5dd..a6058a1 100755
--- a/revpipyload/revpipyload.py
+++ b/revpipyload/revpipyload.py
@@ -80,6 +80,7 @@ class RevPiPyLoad():
self.pictoryhash = b''
self.replaceiosmtime = 0
self.replaceiohash = b''
+ self.replaceiofail = False
# Berechtigungsmanger
if proginit.pargs.developermode:
@@ -618,14 +619,18 @@ class RevPiPyLoad():
# Zugriffsrechte prüfen (pre-check für unten)
if self.replace_ios_config \
- and not os.access(self.replace_ios_config, os.R_OK | os.W_OK):
- proginit.logger.error(
- "can not access (r/w) the replace_ios file '{0}' "
- "using defaults".format(self.replace_ios_config)
- )
- self.replace_ios_config = ""
+ and not os.access(self.replace_ios_config, os.R_OK):
- if not self.replace_ios_config:
+ if not self.replaceiofail:
+ proginit.logger.error(
+ "can not access (r/w) the replace_ios file '{0}' "
+ "using defaults".format(self.replace_ios_config)
+ )
+ self.replaceiofail = True
+ else:
+ self.replaceiofail = False
+
+ if not self.replace_ios_config or self.replaceiofail:
# Dateipfad leer, prüfen ob es vorher einen gab
if self.replaceiosmtime > 0 or self.replaceiohash:
self.replaceiosmtime = 0
@@ -644,7 +649,9 @@ class RevPiPyLoad():
return False
self.replaceiohash = file_hash
- return True
+ return True
+
+ return False
def packapp(self, mode="tar", pictory=False):
"""Erzeugt aus dem PLC-Programm ein TAR/Zip-File.
diff --git a/setup.py b/setup.py
index 7dfa448..cdb1b3c 100644
--- a/setup.py
+++ b/setup.py
@@ -31,7 +31,7 @@ setup(
scripts=["data/revpipyload"],
- install_requires=["revpimodio2 >= 2.4.0"],
+ install_requires=["revpimodio2 >= 2.4.1"],
python_requires=">=3.2",
data_files=[