From 1cb0c282d74d34314b9879f25e3e7ac0171c9d4b Mon Sep 17 00:00:00 2001 From: NaruX Date: Sun, 18 Aug 2019 18:55:51 +0200 Subject: [PATCH] Bei ProcImgServer fehlte cleanup von RevPiModIO check_replace_ios_changed brachte falsche Werte, wenn nicht angegeben RevPiModIO min 2.4.1 --- doc/procimgserver.html | 11 ++++++++++- eric-revpipyload.api | 1 + revpipyload/procimgserver.py | 5 +++++ revpipyload/revpipyload.py | 23 +++++++++++++++-------- setup.py | 2 +- 5 files changed, 32 insertions(+), 10 deletions(-) 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=[