Übertragung piCtory Datei trennt bei Fehler Verbindung

Übertragung replace_io Datei trennt bei Fehler Verbindung
Replace IO wird nur übertragen, wenn HASH nicht HASH_NULL ist
This commit is contained in:
2019-08-26 13:18:47 +02:00
parent 43969d8162
commit 1eb38407f5
4 changed files with 26 additions and 26 deletions

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
<!-- eric project file for project revpipyload -->
<!-- Saved: 2019-06-16, 15:47:42 -->
<!-- Saved: 2019-08-26, 13:17:52 -->
<!-- Copyright (C) 2019 Sven Sager, akira@narux.de -->
<Project version="5.1">
<Language>en_US</Language>
@@ -9,7 +9,7 @@
<ProgLanguage mixed="0">Python3</ProgLanguage>
<ProjectType>Console</ProjectType>
<Description>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.</Description>
<Version>0.7.6</Version>
<Version>0.8.0</Version>
<Author>Sven Sager</Author>
<Email>akira@narux.de</Email>
<Eol index="1"/>

View File

@@ -403,10 +403,9 @@ class RevPiSlaveDev(Thread):
)
break
else:
continue
finally:
# End-of-Transmission character immer senden
self._devcon.send(b'\x04')
continue
elif cmd == b'PH':
# piCtory md5 Hashwert senden (16 Byte)
@@ -416,26 +415,26 @@ class RevPiSlaveDev(Thread):
self._devcon.sendall(HASH_PICT)
elif cmd == b'RP':
# Replace_IOs Konfiguration senden
# Replace_IOs Konfiguration senden, wenn hash existiert
proginit.logger.debug(
"transfair replace_io configuration: {0}"
"".format(proginit.pargs.configrsc)
)
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", None)
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", "")
try:
if replace_ios:
if HASH_RPIO != HASH_NULL and replace_ios:
with open(replace_ios, "rb") as fh:
# Komplette piCtory Datei senden
# Komplette replace_io 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')
continue
elif cmd == b'RH':
# Replace_IOs md5 Hashwert senden (16 Byte)

View File

@@ -428,6 +428,7 @@ class RevPiPyLoad():
"revpimodio2: 'apt-get install python3-revpimodio2'"
"".format(min_revpimodio)
)
else:
try:
self.xml_ps = procimgserver.ProcimgServer(
self.xsrv,
@@ -612,7 +613,7 @@ class RevPiPyLoad():
# TODO: Nur "Devices" list vergleich
with open(proginit.pargs.configrsc, "rb") as fh:
file_hash = md5(fh.read()).hexdigest()
file_hash = md5(fh.read()).digest()
if picontrolserver.HASH_PICT == file_hash:
return False
picontrolserver.HASH_PICT = file_hash
@@ -650,14 +651,14 @@ class RevPiPyLoad():
return False
self.replaceiosmtime = mtime
# TODO: Instanz von ConfigParser vergleichen
with open(self.replace_ios_config, "rb") as fh:
file_hash = md5(fh.read()).hexdigest()
file_hash = md5(fh.read()).digest()
if picontrolserver.HASH_RPIO == file_hash:
return False
picontrolserver.HASH_RPIO = file_hash
# TODO: Instanz von ConfigParser vergleichen
return True
return False

View File

@@ -27,7 +27,7 @@ setup(
license="LGPLv3",
name="revpipyload",
version="0.7.6",
version="0.8.0",
scripts=["data/revpipyload"],