diff --git a/doc/picontrolserver.html b/doc/picontrolserver.html
index 2b8fcb1..3a6243e 100644
--- a/doc/picontrolserver.html
+++ b/doc/picontrolserver.html
@@ -12,7 +12,7 @@ Modul fuer die Verwaltung der PLC-Slave Funktionen.
Global Attributes
-| HASH_FAIL |
| HASH_NULL |
| __author__ |
| __copyright__ |
| __license__ |
+| HASH_FAIL |
| HASH_NULL |
| HASH_PICT |
| HASH_RPIO |
| __author__ |
| __copyright__ |
| __license__ |
Classes
diff --git a/eric-revpipyload.api b/eric-revpipyload.api
index 86a5bd7..b9fa29e 100644
--- a/eric-revpipyload.api
+++ b/eric-revpipyload.api
@@ -34,6 +34,8 @@ mqttserver.__copyright__?9
mqttserver.__license__?9
picontrolserver.HASH_FAIL?7
picontrolserver.HASH_NULL?7
+picontrolserver.HASH_PICT?7
+picontrolserver.HASH_RPIO?7
picontrolserver.RevPiSlave.check_connectedacl?4()
picontrolserver.RevPiSlave.disconnect_all?4()
picontrolserver.RevPiSlave.disconnect_replace_ios?4()
diff --git a/revpipyload/picontrolserver.py b/revpipyload/picontrolserver.py
index ca132a6..19a7960 100644
--- a/revpipyload/picontrolserver.py
+++ b/revpipyload/picontrolserver.py
@@ -6,7 +6,6 @@ __license__ = "GPLv3"
import proginit
import socket
from fcntl import ioctl
-from hashlib import md5
from shared.ipaclmanager import IpAclManager
from threading import Event, Thread
from timeit import default_timer
@@ -14,6 +13,8 @@ from timeit import default_timer
# Hashvalues
HASH_NULL = b'\x00' * 16
HASH_FAIL = b'\xff' * 16
+HASH_PICT = HASH_FAIL
+HASH_RPIO = HASH_NULL
class RevPiSlave(Thread):
@@ -409,22 +410,10 @@ class RevPiSlaveDev(Thread):
elif cmd == b'PH':
# piCtory md5 Hashwert senden (16 Byte)
- try:
- with open(proginit.pargs.configrsc, "rb") as fh_pic:
- # Hashwert erzeugen und senden
- file_hash = md5(fh_pic.read()).digest()
- proginit.logger.debug(
- "send pictory hashvalue: {0}"
- "".format(file_hash)
- )
- self._devcon.sendall(file_hash)
- except Exception as e:
- proginit.logger.error(
- "error on pictory hash value transfair: {0}".format(e)
- )
- break
- else:
- continue
+ proginit.logger.debug(
+ "send pictory hashvalue: {0}".format(HASH_PICT)
+ )
+ self._devcon.sendall(HASH_PICT)
elif cmd == b'RP':
# Replace_IOs Konfiguration senden
@@ -452,27 +441,10 @@ class RevPiSlaveDev(Thread):
# Replace_IOs md5 Hashwert senden (16 Byte)
self.got_replace_ios = True
- replace_ios = proginit.conf["DEFAULT"].get("replace_ios", "")
- try:
- if replace_ios:
- with open(replace_ios, "rb") as fh:
- # Hashwert erzeugen und senden
- file_hash = md5(fh.read()).digest()
- else:
- file_hash = HASH_NULL
- proginit.logger.debug(
- "send replace_ios hashvalue: {0}"
- "".format(file_hash)
- )
- self._devcon.sendall(file_hash)
- except Exception as e:
- proginit.logger.error(
- "error on replace_ios hash value transfair: {0}"
- "".format(e)
- )
- self._devcon.sendall(HASH_FAIL)
- else:
- continue
+ proginit.logger.debug(
+ "send replace_ios hashvalue: {0}".format(HASH_RPIO)
+ )
+ self._devcon.sendall(HASH_RPIO)
elif cmd == b'EX':
# Sauber Verbindung verlassen
diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py
index 8af8049..625e31f 100755
--- a/revpipyload/revpipyload.py
+++ b/revpipyload/revpipyload.py
@@ -77,9 +77,7 @@ class RevPiPyLoad():
# Dateimerker
self.pictorymtime = 0
- self.pictoryhash = b''
self.replaceiosmtime = 0
- self.replaceiohash = b''
self.replaceiofail = False
# Berechtigungsmanger
@@ -611,11 +609,13 @@ class RevPiPyLoad():
return False
self.pictorymtime = mtime
+ # TODO: Nur "Devices" list vergleich
+
with open(proginit.pargs.configrsc, "rb") as fh:
file_hash = md5(fh.read()).hexdigest()
- if self.pictoryhash == file_hash:
+ if picontrolserver.HASH_PICT == file_hash:
return False
- self.pictoryhash = file_hash
+ picontrolserver.HASH_PICT = file_hash
return True
@@ -638,9 +638,10 @@ class RevPiPyLoad():
if not self.replace_ios_config or self.replaceiofail:
# Dateipfad leer, prüfen ob es vorher einen gab
- if self.replaceiosmtime > 0 or self.replaceiohash:
+ if self.replaceiosmtime > 0 \
+ or picontrolserver.HASH_RPIO != picontrolserver.HASH_NULL:
self.replaceiosmtime = 0
- self.replaceiohash = b''
+ picontrolserver.HASH_RPIO = picontrolserver.HASH_NULL
return True
else:
@@ -651,9 +652,11 @@ class RevPiPyLoad():
with open(self.replace_ios_config, "rb") as fh:
file_hash = md5(fh.read()).hexdigest()
- if self.replaceiohash == file_hash:
+ if picontrolserver.HASH_RPIO == file_hash:
return False
- self.replaceiohash = file_hash
+ picontrolserver.HASH_RPIO = file_hash
+
+ # TODO: Instanz von ConfigParser vergleichen
return True