From b26fbc2dc0ae0fcd1f81252021a6f4c854d9cf90 Mon Sep 17 00:00:00 2001 From: NaruX Date: Tue, 11 Apr 2017 12:39:58 +0200 Subject: [PATCH 1/6] =?UTF-8?q?Logdateien=20als=20Binary=20=C3=BCbertragen?= =?UTF-8?q?=20resetpicontrol=20f=C3=BCr=20XML=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpipyload.e4p | 4 ++-- revpipyload/revpipyload.py | 21 ++++++++++++--------- setup.py | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/revpipyload.e4p b/revpipyload.e4p index b5a080e..e78a34c 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.2.11 + 0.2.12 Sven Sager akira@narux.de diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index 2ce5da4..6e81291 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -33,6 +33,7 @@ begrenzt werden! import gzip import proginit import os +import pickle import shlex import signal import subprocess @@ -53,7 +54,7 @@ from xmlrpc.server import SimpleXMLRPCServer configrsc = "/opt/KUNBUS/config.rsc" picontrolreset = "/opt/KUNBUS/piControlReset" procimg = "/dev/piControl0" -pyloadverion = "0.2.11" +pyloadverion = "0.2.12" class LogReader(): @@ -85,7 +86,7 @@ class LogReader(): """Gibt neue Zeilen ab letzen Aufruf zurueck. @returns: list() mit neuen Zeilen""" if not os.access(proginit.logapp, os.R_OK): - return [] + return Binary(pickle.dumps([])) else: if self.fhapp is None or self.fhapp.closed: self.fhapp = open(proginit.logapp) @@ -103,7 +104,7 @@ class LogReader(): proginit.logger.debug( "got {} new app log lines".format(len(lst_new)) ) - return lst_new + return Binary(pickle.dumps(lst_new)) def get_applog(self): """Gibt die gesamte Logdatei zurueck. @@ -112,12 +113,12 @@ class LogReader(): proginit.logger.error( "can not access logfile {}".format(proginit.logapp) ) - return "" + return Binary(pickle.dumps("")) else: if self.fhapp is None or self.fhapp.closed: self.fhapp = open(proginit.logapp) self.fhapp.seek(0) - return self.fhapp.read() + return Binary(pickle.dumps(self.fhapp.read())) def get_plclines(self): """Gibt neue Zeilen ab letzen Aufruf zurueck. @@ -126,7 +127,7 @@ class LogReader(): proginit.logger.error( "can not access logfile {}".format(proginit.logplc) ) - return [] + return Binary(pickle.dumps([])) else: if self.fhplc is None or self.fhplc.closed: self.fhplc = open(proginit.logplc) @@ -144,7 +145,7 @@ class LogReader(): proginit.logger.debug( "got {} new pyloader log lines".format(len(lst_new)) ) - return lst_new + return Binary(pickle.dumps(lst_new)) def get_plclog(self): """Gibt die gesamte Logdatei zurueck. @@ -153,12 +154,12 @@ class LogReader(): proginit.logger.error( "can not access logfile {}".format(proginit.logplc) ) - return "" + return Binary(pickle.dumps("")) else: if self.fhplc is None or self.fhplc.closed: self.fhplc = open(proginit.logplc) self.fhplc.seek(0) - return self.fhplc.read() + return Binary(pickle.dumps(self.fhplc.read())) class PipeLogwriter(Thread): @@ -588,6 +589,8 @@ class RevPiPyLoad(): self.xml_plcupload, "plcupload") self.xsrv.register_function( self.xml_plcuploadclean, "plcuploadclean") + self.xsrv.register_function( + lambda: os.system(picontrolreset), "resetpicontrol") self.xsrv.register_function( self.xml_setconfig, "set_config") self.xsrv.register_function( diff --git a/setup.py b/setup.py index 0ef2d3e..d0fa2cb 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ setup( license="LGPLv3", name="revpipyload", - version="0.2.11", + version="0.2.12", scripts=["data/revpipyload"], From 38f67e2b83f8609d583a00c5a3b708f226629cc9 Mon Sep 17 00:00:00 2001 From: NaruX Date: Tue, 11 Apr 2017 12:48:19 +0200 Subject: [PATCH 2/6] codestyle docstrings --- doc/revpipyload.html | 6 ++++-- revpipyload/proginit.py | 2 +- revpipyload/revpipyload.py | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/revpipyload.html b/doc/revpipyload.html index eff826f..16b3a4e 100644 --- a/doc/revpipyload.html +++ b/doc/revpipyload.html @@ -202,7 +202,7 @@ Methods Instantiiert PipeLogwriter-Klasse. __del__ - +Close file handler. _configurefh Konfiguriert den FileHandler fuer Ausgaben der PLCAPP. @@ -240,7 +240,9 @@ Dateiname fuer Logdatei

PipeLogwriter.__del__

__del__() - +

+Close file handler. +

PipeLogwriter._configurefh

_configurefh() diff --git a/revpipyload/proginit.py b/revpipyload/proginit.py index adce346..6340bd6 100644 --- a/revpipyload/proginit.py +++ b/revpipyload/proginit.py @@ -63,7 +63,7 @@ def configure(): pargs.conffile = os.path.join(startdir, pargs.conffile) if pargs.logfile is not None and os.path.dirname(pargs.logfile) == "": pargs.logfile = os.path.join(startdir, pargs.logfile) - + # Prüfen ob als Daemon ausgeführt werden soll global forked pidfile = "/var/run/revpipyload.pid" diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index 6e81291..78034c9 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -192,6 +192,7 @@ class PipeLogwriter(Thread): )) def __del__(self): + """Close file handler.""" if self._fh is not None: self._fh.close() @@ -305,7 +306,7 @@ class RevPiPlc(Thread): elif proginit.pargs.logfile is not None: logfile = proginit.pargs.logfile - if not logfile is None: + if logfile is not None: logfile = PipeLogwriter(logfile) proginit.logger.debug("leave RevPiPlc._configureplw()") From 3585bd7039a90b01cdd1d833fe0b4ecde307ef5b Mon Sep 17 00:00:00 2001 From: NaruX Date: Tue, 30 May 2017 11:46:40 +0200 Subject: [PATCH 4/6] =?UTF-8?q?add:=20Pr=C3=BCfung=20f=C3=BCr=20config.rsc?= =?UTF-8?q?=20Pfad=20add:=20Pr=C3=BCfung=20piControlReset=20oder=20piTest?= =?UTF-8?q?=20-x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpipyload.e4p | 4 ++-- revpipyload/revpipyload.py | 25 +++++++++++++++++++++++-- setup.py | 2 +- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/revpipyload.e4p b/revpipyload.e4p index e78a34c..716912e 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.2.12 + 0.3.0 Sven Sager akira@narux.de diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index 78034c9..a639f46 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -51,10 +51,10 @@ from time import sleep, asctime from xmlrpc.client import Binary from xmlrpc.server import SimpleXMLRPCServer -configrsc = "/opt/KUNBUS/config.rsc" +configrsc = None picontrolreset = "/opt/KUNBUS/piControlReset" procimg = "/dev/piControl0" -pyloadverion = "0.2.12" +pyloadverion = "0.3.0" class LogReader(): @@ -483,6 +483,27 @@ class RevPiPyLoad(): """Instantiiert RevPiPyLoad-Klasse.""" proginit.configure() + # Globale Werte anpassen + global configrsc + global picontrolreset + + # piCtory Konfiguration an bekannten Stellen prüfen + lst_rsc = ["/etc/revpi/config.rsc", "/opt/KUNBUS/config.rsc"] + for rscfile in lst_rsc: + if os.access(rscfile, os.F_OK | os.R_OK): + configrsc = rscfile + break + if configrsc is None: + raise RuntimeError( + "can not access known pictory configurations at {}" + "".format(", ".join(lst_rsc)) + ) + + # piControlReset suchen + if not os.access(picontrolreset, os.F_OK | os.X_OK): + picontrolreset = "/usr/bin/piTest -x" + + # Klassenattribute self._exit = True self.evt_loadconfig = Event() self.globalconfig = ConfigParser() diff --git a/setup.py b/setup.py index d0fa2cb..ae17d66 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ setup( license="LGPLv3", name="revpipyload", - version="0.2.12", + version="0.3.0", scripts=["data/revpipyload"], From d35f6346062e9295c558b59acfb9f4e1856b98ab Mon Sep 17 00:00:00 2001 From: NaruX Date: Tue, 6 Jun 2017 08:47:11 +0200 Subject: [PATCH 5/6] codestyle docstrings --- revpipyload.api => eric-revpipyload.api | 0 revpipyload.bas => eric-revpipyload.bas | 0 revpipyload.e4p | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) rename revpipyload.api => eric-revpipyload.api (100%) rename revpipyload.bas => eric-revpipyload.bas (100%) diff --git a/revpipyload.api b/eric-revpipyload.api similarity index 100% rename from revpipyload.api rename to eric-revpipyload.api diff --git a/revpipyload.bas b/eric-revpipyload.bas similarity index 100% rename from revpipyload.bas rename to eric-revpipyload.bas diff --git a/revpipyload.e4p b/revpipyload.e4p index 716912e..279b131 100644 --- a/revpipyload.e4p +++ b/revpipyload.e4p @@ -1,7 +1,7 @@ - + en_US @@ -27,7 +27,7 @@ MANIFEST.in doc debian - revpipyload.api + eric-revpipyload.api Mercurial @@ -176,7 +176,7 @@ outputFile - revpipyload.api + eric-revpipyload.api useRecursion