mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +01:00
Übertragung der replace_io über das Netzwerk begonnen
This commit is contained in:
@@ -12,7 +12,7 @@ Main functions of our program.
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>forked</td></tr><tr><td>globalconffile</td></tr><tr><td>logapp</td></tr><tr><td>logger</td></tr><tr><td>logplc</td></tr><tr><td>pargs</td></tr><tr><td>picontrolreset</td></tr><tr><td>rapcatalog</td></tr><tr><td>startdir</td></tr>
|
||||
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>conf</td></tr><tr><td>forked</td></tr><tr><td>globalconffile</td></tr><tr><td>logapp</td></tr><tr><td>logger</td></tr><tr><td>logplc</td></tr><tr><td>pargs</td></tr><tr><td>picontrolreset</td></tr><tr><td>rapcatalog</td></tr><tr><td>startdir</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user