From e48f1807f8ff0f87b97f92520418257ca5a99d3b Mon Sep 17 00:00:00 2001 From: NaruX Date: Sun, 30 Sep 2018 19:02:09 +0200 Subject: [PATCH] =?UTF-8?q?Verarbeitung=20der=20Exportflags=20von=20Core?= =?UTF-8?q?=20IOs=20in=20MQTT=20=C3=BCberarbeitet=20Bei=20reload=20und=20a?= =?UTF-8?q?utostart=200->1=20wird=20PLC=20Programm=20nun=20sofort=20gestar?= =?UTF-8?q?tet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpipyload.e4p | 4 ++-- revpipyload/mqttserver.py | 43 +++++++++++++++++++++++--------------- revpipyload/revpipyload.py | 20 +++++++++++------- setup.py | 4 ++-- stdeb.cfg | 2 +- 5 files changed, 43 insertions(+), 30 deletions(-) diff --git a/revpipyload.e4p b/revpipyload.e4p index 5b478c6..6e0ee46 100644 --- a/revpipyload.e4p +++ b/revpipyload.e4p @@ -1,7 +1,7 @@ - + en_US @@ -9,7 +9,7 @@ Python3 Console Dieser Loader wird über das Init-System geladen und führt das angegebene Pythonprogramm aus. Es ist für den RevolutionPi gedacht um automatisch das SPS-Programm zu starten. - 0.7.2 + 0.7.3 Sven Sager akira@narux.de diff --git a/revpipyload/mqttserver.py b/revpipyload/mqttserver.py index 575c855..a2d4e96 100644 --- a/revpipyload/mqttserver.py +++ b/revpipyload/mqttserver.py @@ -159,25 +159,34 @@ class MqttServer(Thread): io.reg_event(self._evt_io) self._exported_ios.append(io) - # RevPiLED Ausgang zerlegen und exportieren - if self._rpi.core._ioled.export: - lst_coreio = [ - self._rpi.core.a1green, self._rpi.core.a1red, - self._rpi.core.a2green, self._rpi.core.a2red, - ] + # CoreIOs prüfen und zu export hinzufügen + lst_coreio = [] + if self._rpi.core.a1green.export: + lst_coreio.append(self._rpi.core.a1green) + if self._rpi.core.a1red.export: + lst_coreio.append(self._rpi.core.a1red) + if self._rpi.core.a2green.export: + lst_coreio.append(self._rpi.core.a2green) + if self._rpi.core.a2red.export: + lst_coreio.append(self._rpi.core.a2red) - # Connect-IOs anhängen - if type(self._rpi.core) == revpimodio2.device.Connect: - lst_coreio += [ - self._rpi.core.a3green, self._rpi.core.a3red, - self._rpi.core.wd, - self._rpi.core.x2in, self._rpi.core.x2out, - ] + # Connect-IOs anhängen + if type(self._rpi.core) == revpimodio2.device.Connect: + if self._rpi.core.a3green.export: + lst_coreio.append(self._rpi.core.a3green) + if self._rpi.core.a3red.export: + lst_coreio.append(self._rpi.core.a3red) + if self._rpi.core.wd.export: + lst_coreio.append(self._rpi.core.wd) + if self._rpi.core.x2in.export: + lst_coreio.append(self._rpi.core.x2in) + if self._rpi.core.x2out.export: + lst_coreio.append(self._rpi.core.x2out) - # Events registrieren - for io in lst_coreio: - io.reg_event(self._evt_io) - self._exported_ios.append(io) + # IOs exportieren und Events anmelden + for io in lst_coreio: + io.reg_event(self._evt_io) + self._exported_ios.append(io) proginit.logger.debug("created revpimodio2 object") diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index d648b99..e87211e 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -28,7 +28,7 @@ begrenzt werden! __author__ = "Sven Sager" __copyright__ = "Copyright (C) 2018 Sven Sager" __license__ = "GPLv3" -__version__ = "0.7.2" +__version__ = "0.7.3" import gzip import logsystem import picontrolserver @@ -153,6 +153,7 @@ class RevPiPyLoad(): if self.plc is None: return True elif "XMLRPC" not in self.globalconfig: + # NOTE: Warum ist das hier? return True else: return ( @@ -169,7 +170,10 @@ class RevPiPyLoad(): self.pythonversion != self.globalconfig["DEFAULT"].getint("pythonversion", 3) or self.rtlevel != - self.globalconfig["DEFAULT"].getint("rtlevel", 0) + self.globalconfig["DEFAULT"].getint("rtlevel", 0) or ( + not self.plc.is_alive() and not self.autostart and + self.globalconfig["DEFAULT"].getboolean("autostart", False) + ) ) def _loadconfig(self): @@ -387,7 +391,7 @@ class RevPiPyLoad(): self.xml_ps = None proginit.logger.warning( "can not load revpimodio2 module. maybe its not installed " - "or an old version (required at least 2.2.4). if you " + "or an old version (required at least 2.2.5). if you " "like to use the process monitor feature, update/install " "revpimodio2: 'apt-get install python3-revpimodio2'" ) @@ -453,7 +457,7 @@ class RevPiPyLoad(): except Exception: proginit.logger.warning( "can not load revpimodio2 module. maybe its not installed " - "or an old version (required at least 2.2.4). if you " + "or an old version (required at least 2.2.5). if you " "like to use the mqtt feature, update/install " "revpimodio2: 'apt-get install python3-revpimodio2'" ) @@ -498,9 +502,9 @@ class RevPiPyLoad(): ) th_plc.autoreload = self.autoreload th_plc.autoreloaddelay = self.autoreloaddelay - th_plc.gid = int(self.plcgid) - th_plc.uid = int(self.plcuid) - th_plc.rtlevel = int(self.rtlevel) + th_plc.gid = self.plcgid + th_plc.uid = self.plcuid + th_plc.rtlevel = self.rtlevel th_plc.zeroonerror = self.zeroonerror th_plc.zeroonexit = self.zeroonexit @@ -749,7 +753,7 @@ class RevPiPyLoad(): dc["plcuid"] = self.plcuid dc["plcgid"] = self.plcgid dc["pythonversion"] = self.pythonversion - dc["rtlevel"] = int(self.rtlevel) + dc["rtlevel"] = self.rtlevel dc["zeroonerror"] = int(self.zeroonerror) dc["zeroonexit"] = int(self.zeroonexit) diff --git a/setup.py b/setup.py index 8c2facc..80bb502 100644 --- a/setup.py +++ b/setup.py @@ -27,11 +27,11 @@ setup( license="LGPLv3", name="revpipyload", - version="0.7.2", + version="0.7.3", scripts=["data/revpipyload"], - install_requires=["revpimodio2 >= 2.2.4"], + install_requires=["revpimodio2 >= 2.2.5"], python_requires=">=3.2", data_files=[ diff --git a/stdeb.cfg b/stdeb.cfg index 012449f..5cbcf63 100644 --- a/stdeb.cfg +++ b/stdeb.cfg @@ -1,5 +1,5 @@ [DEFAULT] Debian-Version: 1 -Depends3: python3-revpimodio2 (>= 2.2.4) +Depends3: python3-revpimodio2 (>= 2.2.5) Package: revpipyload Suite: stable