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.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 6374bcd..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 diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index 5ed7c6a..702448a 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 socket @@ -53,7 +54,7 @@ from timeit import default_timer 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.3.0" @@ -95,7 +96,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) @@ -113,7 +114,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. @@ -122,12 +123,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. @@ -136,7 +137,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) @@ -154,7 +155,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. @@ -163,12 +164,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): @@ -201,6 +202,7 @@ class PipeLogwriter(Thread): )) def __del__(self): + """Close file handler.""" if self._fh is not None: self._fh.close() @@ -667,6 +669,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() @@ -774,6 +797,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(