mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +01:00
Verarbeitung der Exportflags von Core IOs in MQTT überarbeitet
Bei reload und autostart 0->1 wird PLC Programm nun sofort gestartet
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
||||||
<!-- eric project file for project revpipyload -->
|
<!-- eric project file for project revpipyload -->
|
||||||
<!-- Saved: 2018-09-26, 10:58:41 -->
|
<!-- Saved: 2018-09-30, 16:31:40 -->
|
||||||
<!-- Copyright (C) 2018 Sven Sager, akira@narux.de -->
|
<!-- Copyright (C) 2018 Sven Sager, akira@narux.de -->
|
||||||
<Project version="5.1">
|
<Project version="5.1">
|
||||||
<Language>en_US</Language>
|
<Language>en_US</Language>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
||||||
<ProjectType>Console</ProjectType>
|
<ProjectType>Console</ProjectType>
|
||||||
<Description>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.</Description>
|
<Description>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.</Description>
|
||||||
<Version>0.7.2</Version>
|
<Version>0.7.3</Version>
|
||||||
<Author>Sven Sager</Author>
|
<Author>Sven Sager</Author>
|
||||||
<Email>akira@narux.de</Email>
|
<Email>akira@narux.de</Email>
|
||||||
<Eol index="1"/>
|
<Eol index="1"/>
|
||||||
|
|||||||
@@ -159,25 +159,34 @@ class MqttServer(Thread):
|
|||||||
io.reg_event(self._evt_io)
|
io.reg_event(self._evt_io)
|
||||||
self._exported_ios.append(io)
|
self._exported_ios.append(io)
|
||||||
|
|
||||||
# RevPiLED Ausgang zerlegen und exportieren
|
# CoreIOs prüfen und zu export hinzufügen
|
||||||
if self._rpi.core._ioled.export:
|
lst_coreio = []
|
||||||
lst_coreio = [
|
if self._rpi.core.a1green.export:
|
||||||
self._rpi.core.a1green, self._rpi.core.a1red,
|
lst_coreio.append(self._rpi.core.a1green)
|
||||||
self._rpi.core.a2green, self._rpi.core.a2red,
|
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
|
# Connect-IOs anhängen
|
||||||
if type(self._rpi.core) == revpimodio2.device.Connect:
|
if type(self._rpi.core) == revpimodio2.device.Connect:
|
||||||
lst_coreio += [
|
if self._rpi.core.a3green.export:
|
||||||
self._rpi.core.a3green, self._rpi.core.a3red,
|
lst_coreio.append(self._rpi.core.a3green)
|
||||||
self._rpi.core.wd,
|
if self._rpi.core.a3red.export:
|
||||||
self._rpi.core.x2in, self._rpi.core.x2out,
|
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
|
# IOs exportieren und Events anmelden
|
||||||
for io in lst_coreio:
|
for io in lst_coreio:
|
||||||
io.reg_event(self._evt_io)
|
io.reg_event(self._evt_io)
|
||||||
self._exported_ios.append(io)
|
self._exported_ios.append(io)
|
||||||
|
|
||||||
proginit.logger.debug("created revpimodio2 object")
|
proginit.logger.debug("created revpimodio2 object")
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ begrenzt werden!
|
|||||||
__author__ = "Sven Sager"
|
__author__ = "Sven Sager"
|
||||||
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
||||||
__license__ = "GPLv3"
|
__license__ = "GPLv3"
|
||||||
__version__ = "0.7.2"
|
__version__ = "0.7.3"
|
||||||
import gzip
|
import gzip
|
||||||
import logsystem
|
import logsystem
|
||||||
import picontrolserver
|
import picontrolserver
|
||||||
@@ -153,6 +153,7 @@ class RevPiPyLoad():
|
|||||||
if self.plc is None:
|
if self.plc is None:
|
||||||
return True
|
return True
|
||||||
elif "XMLRPC" not in self.globalconfig:
|
elif "XMLRPC" not in self.globalconfig:
|
||||||
|
# NOTE: Warum ist das hier?
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return (
|
return (
|
||||||
@@ -169,7 +170,10 @@ class RevPiPyLoad():
|
|||||||
self.pythonversion !=
|
self.pythonversion !=
|
||||||
self.globalconfig["DEFAULT"].getint("pythonversion", 3) or
|
self.globalconfig["DEFAULT"].getint("pythonversion", 3) or
|
||||||
self.rtlevel !=
|
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):
|
def _loadconfig(self):
|
||||||
@@ -387,7 +391,7 @@ class RevPiPyLoad():
|
|||||||
self.xml_ps = None
|
self.xml_ps = None
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
"can not load revpimodio2 module. maybe its not installed "
|
"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 "
|
"like to use the process monitor feature, update/install "
|
||||||
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
||||||
)
|
)
|
||||||
@@ -453,7 +457,7 @@ class RevPiPyLoad():
|
|||||||
except Exception:
|
except Exception:
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
"can not load revpimodio2 module. maybe its not installed "
|
"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 "
|
"like to use the mqtt feature, update/install "
|
||||||
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
||||||
)
|
)
|
||||||
@@ -498,9 +502,9 @@ class RevPiPyLoad():
|
|||||||
)
|
)
|
||||||
th_plc.autoreload = self.autoreload
|
th_plc.autoreload = self.autoreload
|
||||||
th_plc.autoreloaddelay = self.autoreloaddelay
|
th_plc.autoreloaddelay = self.autoreloaddelay
|
||||||
th_plc.gid = int(self.plcgid)
|
th_plc.gid = self.plcgid
|
||||||
th_plc.uid = int(self.plcuid)
|
th_plc.uid = self.plcuid
|
||||||
th_plc.rtlevel = int(self.rtlevel)
|
th_plc.rtlevel = self.rtlevel
|
||||||
th_plc.zeroonerror = self.zeroonerror
|
th_plc.zeroonerror = self.zeroonerror
|
||||||
th_plc.zeroonexit = self.zeroonexit
|
th_plc.zeroonexit = self.zeroonexit
|
||||||
|
|
||||||
@@ -749,7 +753,7 @@ class RevPiPyLoad():
|
|||||||
dc["plcuid"] = self.plcuid
|
dc["plcuid"] = self.plcuid
|
||||||
dc["plcgid"] = self.plcgid
|
dc["plcgid"] = self.plcgid
|
||||||
dc["pythonversion"] = self.pythonversion
|
dc["pythonversion"] = self.pythonversion
|
||||||
dc["rtlevel"] = int(self.rtlevel)
|
dc["rtlevel"] = self.rtlevel
|
||||||
dc["zeroonerror"] = int(self.zeroonerror)
|
dc["zeroonerror"] = int(self.zeroonerror)
|
||||||
dc["zeroonexit"] = int(self.zeroonexit)
|
dc["zeroonexit"] = int(self.zeroonexit)
|
||||||
|
|
||||||
|
|||||||
4
setup.py
4
setup.py
@@ -27,11 +27,11 @@ setup(
|
|||||||
|
|
||||||
license="LGPLv3",
|
license="LGPLv3",
|
||||||
name="revpipyload",
|
name="revpipyload",
|
||||||
version="0.7.2",
|
version="0.7.3",
|
||||||
|
|
||||||
scripts=["data/revpipyload"],
|
scripts=["data/revpipyload"],
|
||||||
|
|
||||||
install_requires=["revpimodio2 >= 2.2.4"],
|
install_requires=["revpimodio2 >= 2.2.5"],
|
||||||
python_requires=">=3.2",
|
python_requires=">=3.2",
|
||||||
|
|
||||||
data_files=[
|
data_files=[
|
||||||
|
|||||||
Reference in New Issue
Block a user