mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 15:13:52 +01:00
Ü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:
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
||||||
<!-- eric project file for project revpipyload -->
|
<!-- 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 -->
|
<!-- Copyright (C) 2019 Sven Sager, akira@narux.de -->
|
||||||
<Project version="5.1">
|
<Project version="5.1">
|
||||||
<Language>en_US</Language>
|
<Language>en_US</Language>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
||||||
<ProjectType>Console</ProjectType>
|
<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>
|
<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>
|
<Author>Sven Sager</Author>
|
||||||
<Email>akira@narux.de</Email>
|
<Email>akira@narux.de</Email>
|
||||||
<Eol index="1"/>
|
<Eol index="1"/>
|
||||||
|
|||||||
@@ -403,10 +403,9 @@ class RevPiSlaveDev(Thread):
|
|||||||
)
|
)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
continue
|
|
||||||
finally:
|
|
||||||
# End-of-Transmission character immer senden
|
# End-of-Transmission character immer senden
|
||||||
self._devcon.send(b'\x04')
|
self._devcon.send(b'\x04')
|
||||||
|
continue
|
||||||
|
|
||||||
elif cmd == b'PH':
|
elif cmd == b'PH':
|
||||||
# piCtory md5 Hashwert senden (16 Byte)
|
# piCtory md5 Hashwert senden (16 Byte)
|
||||||
@@ -416,26 +415,26 @@ class RevPiSlaveDev(Thread):
|
|||||||
self._devcon.sendall(HASH_PICT)
|
self._devcon.sendall(HASH_PICT)
|
||||||
|
|
||||||
elif cmd == b'RP':
|
elif cmd == b'RP':
|
||||||
# Replace_IOs Konfiguration senden
|
# Replace_IOs Konfiguration senden, wenn hash existiert
|
||||||
proginit.logger.debug(
|
proginit.logger.debug(
|
||||||
"transfair replace_io configuration: {0}"
|
"transfair replace_io configuration: {0}"
|
||||||
"".format(proginit.pargs.configrsc)
|
"".format(proginit.pargs.configrsc)
|
||||||
)
|
)
|
||||||
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", None)
|
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", "")
|
||||||
try:
|
try:
|
||||||
if replace_ios:
|
if HASH_RPIO != HASH_NULL and replace_ios:
|
||||||
with open(replace_ios, "rb") as fh:
|
with open(replace_ios, "rb") as fh:
|
||||||
# Komplette piCtory Datei senden
|
# Komplette replace_io Datei senden
|
||||||
self._devcon.sendall(fh.read())
|
self._devcon.sendall(fh.read())
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
proginit.logger.error(
|
proginit.logger.error(
|
||||||
"error on replace_io transfair: {0}".format(e)
|
"error on replace_io transfair: {0}".format(e)
|
||||||
)
|
)
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
continue
|
|
||||||
finally:
|
|
||||||
# End-of-Transmission character immer senden
|
# End-of-Transmission character immer senden
|
||||||
self._devcon.send(b'\x04')
|
self._devcon.send(b'\x04')
|
||||||
|
continue
|
||||||
|
|
||||||
elif cmd == b'RH':
|
elif cmd == b'RH':
|
||||||
# Replace_IOs md5 Hashwert senden (16 Byte)
|
# Replace_IOs md5 Hashwert senden (16 Byte)
|
||||||
|
|||||||
@@ -428,17 +428,18 @@ class RevPiPyLoad():
|
|||||||
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
||||||
"".format(min_revpimodio)
|
"".format(min_revpimodio)
|
||||||
)
|
)
|
||||||
try:
|
else:
|
||||||
self.xml_ps = procimgserver.ProcimgServer(
|
try:
|
||||||
self.xsrv,
|
self.xml_ps = procimgserver.ProcimgServer(
|
||||||
None if not self.replace_ios_config
|
self.xsrv,
|
||||||
else self.replace_ios_config,
|
None if not self.replace_ios_config
|
||||||
)
|
else self.replace_ios_config,
|
||||||
self.xsrv.register_function(1, self.xml_psstart, "psstart")
|
)
|
||||||
self.xsrv.register_function(1, self.xml_psstop, "psstop")
|
self.xsrv.register_function(1, self.xml_psstart, "psstart")
|
||||||
except Exception as e:
|
self.xsrv.register_function(1, self.xml_psstop, "psstop")
|
||||||
self.xml_ps = None
|
except Exception as e:
|
||||||
proginit.logger.error(e)
|
self.xml_ps = None
|
||||||
|
proginit.logger.error(e)
|
||||||
|
|
||||||
# XML Modus 2 Einstellungen lesen und Programm herunterladen
|
# XML Modus 2 Einstellungen lesen und Programm herunterladen
|
||||||
self.xsrv.register_function(
|
self.xsrv.register_function(
|
||||||
@@ -612,7 +613,7 @@ class RevPiPyLoad():
|
|||||||
# TODO: Nur "Devices" list vergleich
|
# TODO: Nur "Devices" list vergleich
|
||||||
|
|
||||||
with open(proginit.pargs.configrsc, "rb") as fh:
|
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:
|
if picontrolserver.HASH_PICT == file_hash:
|
||||||
return False
|
return False
|
||||||
picontrolserver.HASH_PICT = file_hash
|
picontrolserver.HASH_PICT = file_hash
|
||||||
@@ -650,14 +651,14 @@ class RevPiPyLoad():
|
|||||||
return False
|
return False
|
||||||
self.replaceiosmtime = mtime
|
self.replaceiosmtime = mtime
|
||||||
|
|
||||||
|
# TODO: Instanz von ConfigParser vergleichen
|
||||||
|
|
||||||
with open(self.replace_ios_config, "rb") as fh:
|
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:
|
if picontrolserver.HASH_RPIO == file_hash:
|
||||||
return False
|
return False
|
||||||
picontrolserver.HASH_RPIO = file_hash
|
picontrolserver.HASH_RPIO = file_hash
|
||||||
|
|
||||||
# TODO: Instanz von ConfigParser vergleichen
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user