Übertragung der replace_io über das Netzwerk begonnen

This commit is contained in:
2019-08-07 12:05:30 +02:00
parent 89f29b0496
commit 80c2550739
6 changed files with 34 additions and 3 deletions

View File

@@ -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>

View File

@@ -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

View File

@@ -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)

View File

@@ -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"

View File

@@ -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)

View File

@@ -1,5 +1,5 @@
[DEFAULT]
Debian-Version: 1
Depends3: python3-revpimodio2 (>= 2.2.5)
Depends3: python3-revpimodio2 (>= 2.3.3)
Package: revpipyload
Suite: stable