From 1b3dc4e5958650a7fca8fcd532af283b787fcb63 Mon Sep 17 00:00:00 2001 From: NaruX Date: Thu, 23 Aug 2018 15:18:33 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cbertragung=20der=20Values=20f=C3=BCr=20Wa?= =?UTF-8?q?tch-Mode=20an=20python3.2=20angepasst=20Bei=20falschem=20ACL=20?= =?UTF-8?q?Wert=20mit=20\x18=20melden=20(Cancel)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpipyload.e4p | 4 ++-- revpipyload/picontrolserver.py | 20 +++++++++++++++++--- revpipyload/procimgserver.py | 2 +- revpipyload/revpipyload.py | 2 +- setup.py | 2 +- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/revpipyload.e4p b/revpipyload.e4p index 097630e..6b48e94 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.6.7 + 0.6.8 Sven Sager akira@narux.de diff --git a/revpipyload/picontrolserver.py b/revpipyload/picontrolserver.py index e30db0f..ab5b651 100644 --- a/revpipyload/picontrolserver.py +++ b/revpipyload/picontrolserver.py @@ -220,10 +220,15 @@ class RevPiSlaveDev(Thread): proginit.logger.error("error while send read data") break - elif cmd == b'SD' and self._acl == 1: + elif cmd == b'SD': # Ausgänge setzen, wenn acl es erlaubt # bCMiiiic0000000b = 16 + # Berechtigung prüfen und ggf. trennen + if self._acl < 1: + self._devcon.send(b'\x18') + break + position = int.from_bytes(netcmd[3:5], byteorder="little") length = int.from_bytes(netcmd[5:7], byteorder="little") control = netcmd[7:8] @@ -271,22 +276,31 @@ class RevPiSlaveDev(Thread): if 0 < timeoutms < 65535: self._deadtime = timeoutms / 1000 self._devcon.settimeout(self._deadtime) + proginit.logger.debug( + "set socket timeout to {0}".format(self._deadtime) + ) # Record seperator character self._devcon.send(b'\x1e') else: proginit.logger.error("timeout value must be 0 to 65535") + self._devcon.send(b'\xff') break elif cmd == b'EY': # Bytes bei Verbindungsabbruch schreiben # bCMiiiix0000000b = 16 + # Berechtigung prüfen und ggf. trennen + if self._acl < 1: + self._devcon.send(b'\x18') + break + position = int.from_bytes(netcmd[3:5], byteorder="little") length = int.from_bytes(netcmd[5:7], byteorder="little") control = netcmd[7:8] - if control == b'\xFF': + if control == b'\xff': # Alle Dirtybytes löschen self.ey_dict = {} @@ -294,7 +308,7 @@ class RevPiSlaveDev(Thread): self._devcon.send(b'\x1e') proginit.logger.info("cleared all dirty bytes") - elif control == b'\xFE': + elif control == b'\xfe': # Bestimmte Dirtybytes löschen if position in self.ey_dict: diff --git a/revpipyload/procimgserver.py b/revpipyload/procimgserver.py index e6d9a52..8085347 100644 --- a/revpipyload/procimgserver.py +++ b/revpipyload/procimgserver.py @@ -143,7 +143,7 @@ class ProcimgServer(): bytebuff = bytearray() for dev in self.rpi.device: bytebuff += bytes(dev) - return Binary(bytebuff) + return Binary(bytes(bytebuff)) else: return None diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index 925ce7b..ff3835f 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -28,7 +28,7 @@ begrenzt werden! __author__ = "Sven Sager" __copyright__ = "Copyright (C) 2018 Sven Sager" __license__ = "GPLv3" -__version__ = "0.6.7" +__version__ = "0.6.8" import gzip import logsystem import picontrolserver diff --git a/setup.py b/setup.py index c9ae824..06fc127 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ setup( license="LGPLv3", name="revpipyload", - version="0.6.7", + version="0.6.8", scripts=["data/revpipyload"],