diff --git a/doc/proginit.html b/doc/proginit.html index 61d58df..c1901e6 100644 --- a/doc/proginit.html +++ b/doc/proginit.html @@ -12,7 +12,7 @@ Main functions of our program.

Global Attributes

- +
__author__
__copyright__
__license__
forked
globalconffile
logapp
logger
logplc
pargs
picontrolreset
rapcatalog
startdir
__author__
__copyright__
__license__
conf
forked
globalconffile
logapp
logger
logplc
pargs
picontrolreset
rapcatalog
startdir

Classes

diff --git a/eric-revpipyload.api b/eric-revpipyload.api index 813f47c..fa7112a 100644 --- a/eric-revpipyload.api +++ b/eric-revpipyload.api @@ -72,6 +72,7 @@ proginit.__author__?9 proginit.__copyright__?9 proginit.__license__?9 proginit.cleanup?4() +proginit.conf?7 proginit.configure?4() proginit.forked?7 proginit.globalconffile?7 diff --git a/revpipyload/picontrolserver.py b/revpipyload/picontrolserver.py index 8105ced..cb3501d 100644 --- a/revpipyload/picontrolserver.py +++ b/revpipyload/picontrolserver.py @@ -11,7 +11,6 @@ from threading import Event, Thread from timeit import default_timer -# NOTE: Sollte dies als Process ausgeführt werden? class RevPiSlave(Thread): """RevPi PLC-Server. @@ -386,6 +385,29 @@ class RevPiSlaveDev(Thread): # End-of-Transmission character immer senden self._devcon.send(b'\x04') + elif cmd == b'RP': + # piCtory Konfiguration senden + proginit.logger.debug( + "transfair replace_io configuration: {0}" + "".format(proginit.pargs.configrsc) + ) + replace_ios = proginit.conf["DEFAULT"].get("replace_ios", None) + try: + if replace_ios: + with open(replace_ios, "rb") as fh: + # Komplette piCtory Datei senden + self._devcon.sendall(fh.read()) + except Exception as e: + proginit.logger.error( + "error on replace_io transfair: {0}".format(e) + ) + break + else: + continue + finally: + # End-of-Transmission character immer senden + self._devcon.send(b'\x04') + elif cmd == b'EX': # Sauber Verbindung verlassen dirty = False @@ -407,6 +429,7 @@ class RevPiSlaveDev(Thread): break try: + # FIXME: IOCTL für Dateien implementieren if proginit.pargs.procimg == "/dev/piControl0": # Läuft auf RevPi ioctl(fh_proc, request, arg) diff --git a/revpipyload/proginit.py b/revpipyload/proginit.py index a0bf0fd..63dddf3 100644 --- a/revpipyload/proginit.py +++ b/revpipyload/proginit.py @@ -7,7 +7,9 @@ import logging import os import sys from argparse import ArgumentParser +from configparser import ConfigParser +conf = ConfigParser() forked = False globalconffile = None logapp = "revpipyloadapp.log" diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index c25dcee..ea6b286 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -71,6 +71,7 @@ class RevPiPyLoad(): self.replaceiosmtime = 0 self.evt_loadconfig = Event() self.globalconfig = ConfigParser() + proginit.conf = self.globalconfig self.logr = logsystem.LogReader() self.xsrv = None self.xml_ps = None @@ -197,6 +198,7 @@ class RevPiPyLoad(): "loading config file: {0}".format(proginit.globalconffile) ) self.globalconfig.read(proginit.globalconffile) + proginit.conf = self.globalconfig # Merker für Subsystem-Neustart nach laden, vor setzen restart_plcmqtt = self._check_mustrestart_mqtt() @@ -706,6 +708,8 @@ class RevPiPyLoad(): if self.mqtt and self.th_plcmqtt is not None: self.th_plcmqtt.reload_revpimodio() + # FIXME: ProcImgServer muss alle Verbindungen vernichten + # XML Prozessabbildserver neu laden if self.xml_ps is not None: self.xml_psstop() @@ -1085,6 +1089,7 @@ class RevPiPyLoad(): # conf-Datei schreiben with open(proginit.globalconffile, "w") as fh: self.globalconfig.write(fh) + proginit.conf = self.globalconfig proginit.logger.info( "got new config and wrote it to {0}" "".format(proginit.globalconffile) diff --git a/stdeb.cfg b/stdeb.cfg index 5cbcf63..afbf121 100644 --- a/stdeb.cfg +++ b/stdeb.cfg @@ -1,5 +1,5 @@ [DEFAULT] Debian-Version: 1 -Depends3: python3-revpimodio2 (>= 2.2.5) +Depends3: python3-revpimodio2 (>= 2.3.3) Package: revpipyload Suite: stable