Übertragung der Values für Watch-Mode an python3.2 angepasst

Bei falschem ACL Wert mit \x18 melden (Cancel)
This commit is contained in:
2018-08-23 15:18:33 +02:00
parent 58629a62a4
commit 1b3dc4e595
5 changed files with 22 additions and 8 deletions

View File

@@ -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: 2018-08-12, 18:40:18 --> <!-- Saved: 2018-08-23, 10:37:20 -->
<!-- Copyright (C) 2018 Sven Sager, akira@narux.de --> <!-- Copyright (C) 2018 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.6.7</Version> <Version>0.6.8</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"/>

View File

@@ -220,10 +220,15 @@ class RevPiSlaveDev(Thread):
proginit.logger.error("error while send read data") proginit.logger.error("error while send read data")
break break
elif cmd == b'SD' and self._acl == 1: elif cmd == b'SD':
# Ausgänge setzen, wenn acl es erlaubt # Ausgänge setzen, wenn acl es erlaubt
# bCMiiiic0000000b = 16 # 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") position = int.from_bytes(netcmd[3:5], byteorder="little")
length = int.from_bytes(netcmd[5:7], byteorder="little") length = int.from_bytes(netcmd[5:7], byteorder="little")
control = netcmd[7:8] control = netcmd[7:8]
@@ -271,22 +276,31 @@ class RevPiSlaveDev(Thread):
if 0 < timeoutms < 65535: if 0 < timeoutms < 65535:
self._deadtime = timeoutms / 1000 self._deadtime = timeoutms / 1000
self._devcon.settimeout(self._deadtime) self._devcon.settimeout(self._deadtime)
proginit.logger.debug(
"set socket timeout to {0}".format(self._deadtime)
)
# Record seperator character # Record seperator character
self._devcon.send(b'\x1e') self._devcon.send(b'\x1e')
else: else:
proginit.logger.error("timeout value must be 0 to 65535") proginit.logger.error("timeout value must be 0 to 65535")
self._devcon.send(b'\xff')
break break
elif cmd == b'EY': elif cmd == b'EY':
# Bytes bei Verbindungsabbruch schreiben # Bytes bei Verbindungsabbruch schreiben
# bCMiiiix0000000b = 16 # 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") position = int.from_bytes(netcmd[3:5], byteorder="little")
length = int.from_bytes(netcmd[5:7], byteorder="little") length = int.from_bytes(netcmd[5:7], byteorder="little")
control = netcmd[7:8] control = netcmd[7:8]
if control == b'\xFF': if control == b'\xff':
# Alle Dirtybytes löschen # Alle Dirtybytes löschen
self.ey_dict = {} self.ey_dict = {}
@@ -294,7 +308,7 @@ class RevPiSlaveDev(Thread):
self._devcon.send(b'\x1e') self._devcon.send(b'\x1e')
proginit.logger.info("cleared all dirty bytes") proginit.logger.info("cleared all dirty bytes")
elif control == b'\xFE': elif control == b'\xfe':
# Bestimmte Dirtybytes löschen # Bestimmte Dirtybytes löschen
if position in self.ey_dict: if position in self.ey_dict:

View File

@@ -143,7 +143,7 @@ class ProcimgServer():
bytebuff = bytearray() bytebuff = bytearray()
for dev in self.rpi.device: for dev in self.rpi.device:
bytebuff += bytes(dev) bytebuff += bytes(dev)
return Binary(bytebuff) return Binary(bytes(bytebuff))
else: else:
return None return None

View File

@@ -28,7 +28,7 @@ begrenzt werden!
__author__ = "Sven Sager" __author__ = "Sven Sager"
__copyright__ = "Copyright (C) 2018 Sven Sager" __copyright__ = "Copyright (C) 2018 Sven Sager"
__license__ = "GPLv3" __license__ = "GPLv3"
__version__ = "0.6.7" __version__ = "0.6.8"
import gzip import gzip
import logsystem import logsystem
import picontrolserver import picontrolserver

View File

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