From 1eb38407f5ec92756a4d2f60c5a4c1e223ef9f68 Mon Sep 17 00:00:00 2001 From: NaruX Date: Mon, 26 Aug 2019 13:18:47 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cbertragung=20piCtory=20Datei=20trennt=20b?= =?UTF-8?q?ei=20Fehler=20Verbindung=20=C3=9Cbertragung=20replace=5Fio=20Da?= =?UTF-8?q?tei=20trennt=20bei=20Fehler=20Verbindung=20Replace=20IO=20wird?= =?UTF-8?q?=20nur=20=C3=BCbertragen,=20wenn=20HASH=20nicht=20HASH=5FNULL?= =?UTF-8?q?=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpipyload.e4p | 4 ++-- revpipyload/picontrolserver.py | 15 +++++++-------- revpipyload/revpipyload.py | 31 ++++++++++++++++--------------- setup.py | 2 +- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/revpipyload.e4p b/revpipyload.e4p index c4f6847..6ed2e35 100644 --- a/revpipyload.e4p +++ b/revpipyload.e4p @@ -1,7 +1,7 @@ - + en_US @@ -9,7 +9,7 @@ Python3 Console 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. - 0.7.6 + 0.8.0 Sven Sager akira@narux.de diff --git a/revpipyload/picontrolserver.py b/revpipyload/picontrolserver.py index 19a7960..4283b2b 100644 --- a/revpipyload/picontrolserver.py +++ b/revpipyload/picontrolserver.py @@ -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) diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index 625e31f..e8ecb1e 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -428,17 +428,18 @@ class RevPiPyLoad(): "revpimodio2: 'apt-get install python3-revpimodio2'" "".format(min_revpimodio) ) - try: - self.xml_ps = procimgserver.ProcimgServer( - self.xsrv, - 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") - except Exception as e: - self.xml_ps = None - proginit.logger.error(e) + else: + try: + self.xml_ps = procimgserver.ProcimgServer( + self.xsrv, + 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") + except Exception as e: + self.xml_ps = None + proginit.logger.error(e) # XML Modus 2 Einstellungen lesen und Programm herunterladen self.xsrv.register_function( @@ -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 diff --git a/setup.py b/setup.py index cdb1b3c..304d814 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ setup( license="LGPLv3", name="revpipyload", - version="0.7.6", + version="0.8.0", scripts=["data/revpipyload"],