mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 15:13:52 +01:00
plcarguments können an Python Programm übergeben werden
This commit is contained in:
@@ -3,6 +3,7 @@ autoreload=1
|
|||||||
autostart=1
|
autostart=1
|
||||||
plcworkdir=/var/lib/revpipyload
|
plcworkdir=/var/lib/revpipyload
|
||||||
plcprogram=program.py
|
plcprogram=program.py
|
||||||
|
plcarguments=
|
||||||
plcuid=1000
|
plcuid=1000
|
||||||
plcgid=1000
|
plcgid=1000
|
||||||
plcslave=0
|
plcslave=0
|
||||||
|
|||||||
@@ -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: 2017-03-16, 10:59:23 -->
|
<!-- Saved: 2017-03-20, 11:43:28 -->
|
||||||
<!-- Copyright (C) 2017 Sven Sager, akira@narux.de -->
|
<!-- Copyright (C) 2017 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.2.7</Version>
|
<Version>0.2.8</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"/>
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ from xmlrpc.server import SimpleXMLRPCServer
|
|||||||
configrsc = "/opt/KUNBUS/config.rsc"
|
configrsc = "/opt/KUNBUS/config.rsc"
|
||||||
picontrolreset = "/opt/KUNBUS/piControlReset"
|
picontrolreset = "/opt/KUNBUS/piControlReset"
|
||||||
procimg = "/dev/piControl0"
|
procimg = "/dev/piControl0"
|
||||||
pyloadverion = "0.2.7"
|
pyloadverion = "0.2.8"
|
||||||
|
|
||||||
|
|
||||||
class LogReader():
|
class LogReader():
|
||||||
@@ -163,10 +163,11 @@ class RevPiPlc(Thread):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, program, pversion):
|
def __init__(self, program, arguments, pversion):
|
||||||
"""Instantiiert RevPiPlc-Klasse."""
|
"""Instantiiert RevPiPlc-Klasse."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.autoreload = False
|
self.autoreload = False
|
||||||
|
self._arguments = arguments
|
||||||
self._evt_exit = Event()
|
self._evt_exit = Event()
|
||||||
self.exitcode = None
|
self.exitcode = None
|
||||||
self._fh = None
|
self._fh = None
|
||||||
@@ -205,9 +206,13 @@ class RevPiPlc(Thread):
|
|||||||
def run(self):
|
def run(self):
|
||||||
"""Fuehrt PLC-Programm aus und ueberwacht es."""
|
"""Fuehrt PLC-Programm aus und ueberwacht es."""
|
||||||
if self._pversion == 2:
|
if self._pversion == 2:
|
||||||
lst_proc = shlex.split("/usr/bin/env python2 -u " + self._program)
|
lst_proc = shlex.split("/usr/bin/env python2 -u {} {}".format(
|
||||||
|
self._program, self._arguments
|
||||||
|
))
|
||||||
else:
|
else:
|
||||||
lst_proc = shlex.split("/usr/bin/env python3 -u " + self._program)
|
lst_proc = shlex.split("/usr/bin/env python3 -u {} {}".format(
|
||||||
|
self._program, self._arguments
|
||||||
|
))
|
||||||
|
|
||||||
# Ausgaben konfigurieren und ggf. umleiten
|
# Ausgaben konfigurieren und ggf. umleiten
|
||||||
logfile = None
|
logfile = None
|
||||||
@@ -359,6 +364,8 @@ class RevPiPyLoad(proginit.ProgInit):
|
|||||||
int(self.globalconfig["DEFAULT"].get("autostart", 0))
|
int(self.globalconfig["DEFAULT"].get("autostart", 0))
|
||||||
self.plcprog = \
|
self.plcprog = \
|
||||||
self.globalconfig["DEFAULT"].get("plcprogram", "none.py")
|
self.globalconfig["DEFAULT"].get("plcprogram", "none.py")
|
||||||
|
self.plcarguments = \
|
||||||
|
self.globalconfig["DEFAULT"].get("plcarguments", "")
|
||||||
self.plcworkdir = \
|
self.plcworkdir = \
|
||||||
self.globalconfig["DEFAULT"].get("plcworkdir", ".")
|
self.globalconfig["DEFAULT"].get("plcworkdir", ".")
|
||||||
self.plcslave = \
|
self.plcslave = \
|
||||||
@@ -449,7 +456,10 @@ class RevPiPyLoad(proginit.ProgInit):
|
|||||||
|
|
||||||
proginit.logger.debug("create PLC watcher")
|
proginit.logger.debug("create PLC watcher")
|
||||||
th_plc = RevPiPlc(
|
th_plc = RevPiPlc(
|
||||||
os.path.join(self.plcworkdir, self.plcprog), self.pythonver)
|
os.path.join(self.plcworkdir, self.plcprog),
|
||||||
|
self.plcarguments,
|
||||||
|
self.pythonver
|
||||||
|
)
|
||||||
th_plc.autoreload = self.autoreload
|
th_plc.autoreload = self.autoreload
|
||||||
th_plc.gid = int(self.globalconfig["DEFAULT"].get("plcgid", 65534))
|
th_plc.gid = int(self.globalconfig["DEFAULT"].get("plcgid", 65534))
|
||||||
th_plc.uid = int(self.globalconfig["DEFAULT"].get("plcuid", 65534))
|
th_plc.uid = int(self.globalconfig["DEFAULT"].get("plcuid", 65534))
|
||||||
@@ -561,6 +571,7 @@ class RevPiPyLoad(proginit.ProgInit):
|
|||||||
dc["autostart"] = self.autostart
|
dc["autostart"] = self.autostart
|
||||||
dc["plcworkdir"] = self.plcworkdir
|
dc["plcworkdir"] = self.plcworkdir
|
||||||
dc["plcprogram"] = self.plcprog
|
dc["plcprogram"] = self.plcprog
|
||||||
|
dc["plcarguments"] = self.plcarguments
|
||||||
dc["plcslave"] = self.plcslave
|
dc["plcslave"] = self.plcslave
|
||||||
dc["pythonversion"] = self.pythonver
|
dc["pythonversion"] = self.pythonver
|
||||||
dc["xmlrpc"] = self.xmlrpc
|
dc["xmlrpc"] = self.xmlrpc
|
||||||
@@ -727,6 +738,7 @@ class RevPiPyLoad(proginit.ProgInit):
|
|||||||
"autoreload": "[01]",
|
"autoreload": "[01]",
|
||||||
"autostart": "[01]",
|
"autostart": "[01]",
|
||||||
"plcprogram": ".+",
|
"plcprogram": ".+",
|
||||||
|
"plcarguments": ".*",
|
||||||
"plcslave": "[01]",
|
"plcslave": "[01]",
|
||||||
"pythonversion": "[23]",
|
"pythonversion": "[23]",
|
||||||
"xmlrpc": "[0-3]",
|
"xmlrpc": "[0-3]",
|
||||||
|
|||||||
Reference in New Issue
Block a user