Bei ProcImgServer fehlte cleanup von RevPiModIO

check_replace_ios_changed brachte falsche Werte, wenn nicht angegeben
RevPiModIO min 2.4.1
This commit is contained in:
2019-08-18 18:55:51 +02:00
parent 7fe5904ef6
commit 1cb0c282d7
5 changed files with 32 additions and 10 deletions

View File

@@ -63,6 +63,9 @@ Methods</h3>
<td><a style="color:#0000FF" href="#ProcimgServer.__init__">ProcimgServer</a></td>
<td>Instantiiert RevPiCheckServer()-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.__del__">__del__</a></td>
<td>Clean up RevPiModIO.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.devices">devices</a></td>
<td>Generiert Deviceliste mit Position und Namen.</td>
</tr><tr>
@@ -104,7 +107,13 @@ XML-RPC Server
<dd>
Replace IOs of RevPiModIO
</dd>
</dl><a NAME="ProcimgServer.devices" ID="ProcimgServer.devices"></a>
</dl><a NAME="ProcimgServer.__del__" ID="ProcimgServer.__del__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.__del__</h3>
<b>__del__</b>(<i></i>)
<p>
Clean up RevPiModIO.
</p><a NAME="ProcimgServer.devices" ID="ProcimgServer.devices"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.devices</h3>
<b>devices</b>(<i></i>)

View File

@@ -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()

View File

@@ -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)"""

View File

@@ -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.

View File

@@ -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=[