RevPiSlaveDev SD deutlich schneller - meldet nur bei sysflush schreibstatus

This commit is contained in:
2017-09-11 18:26:34 +02:00
parent 239cd9eee7
commit f881e08c73
3 changed files with 24 additions and 16 deletions

View File

@@ -1,17 +1,17 @@
[DEFAULT] [DEFAULT]
autoreload=1 autoreload = 1
autostart=1 autostart = 1
plcworkdir=/var/lib/revpipyload plcworkdir = /var/lib/revpipyload
plcprogram=program.py plcprogram = program.py
plcarguments= plcarguments=
plcuid=1000 plcuid = 1000
plcgid=1000 plcgid = 1000
plcslave=0 plcslave = 0
plcslaveacl= plcslaveacl =
plcslaveport = 55234 plcslaveport = 55234
pythonversion=3 pythonversion = 3
xmlrpc=0 xmlrpc = 0
xmlrpcacl = xmlrpcacl =
xmlrpcport=55123 xmlrpcport = 55123
zeroonerror=0 zeroonerror = 0
zeroonexit=0 zeroonexit = 0

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: 2017-07-21, 22:24:05 --> <!-- Saved: 2017-08-26, 09:25:46 -->
<!-- Copyright (C) 2017 Sven Sager, akira@narux.de --> <!-- Copyright (C) 2017 Sven Sager, akira@narux.de -->
<Project version="5.1"> <Project version="5.1">
<Language>en_US</Language> <Language>en_US</Language>
@@ -12,7 +12,7 @@
<Version>0.5.0</Version> <Version>0.5.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"/>
<Sources> <Sources>
<Source>revpipyload/proginit.py</Source> <Source>revpipyload/proginit.py</Source>
<Source>setup.py</Source> <Source>setup.py</Source>

View File

@@ -597,6 +597,7 @@ class RevPiSlaveDev(Thread):
self._deadtime = None self._deadtime = None
self._devcon, self._addr = devcon self._devcon, self._addr = devcon
self._evt_exit = Event() self._evt_exit = Event()
self._writeerror = False
# Sicherheitsbytes # Sicherheitsbytes
self.ey_dict = {} self.ey_dict = {}
@@ -660,6 +661,7 @@ class RevPiSlaveDev(Thread):
block = self._devcon.recv(length) block = self._devcon.recv(length)
except: except:
proginit.logger.error("error while recv data to write") proginit.logger.error("error while recv data to write")
self._writeerror = True
break break
fh_proc.seek(position) fh_proc.seek(position)
@@ -671,7 +673,12 @@ class RevPiSlaveDev(Thread):
break break
# Record seperator character # Record seperator character
self._devcon.send(b'\x1e') if control == b'\x1c':
if self._writeerror:
self._devcon.send(b'\xff')
else:
self._devcon.send(b'\x1e')
self._writeerror = False
elif cmd == b'\x06\x16': elif cmd == b'\x06\x16':
# Just sync # Just sync
@@ -749,6 +756,7 @@ class RevPiSlaveDev(Thread):
while True: while True:
data = fh_pic.read(1024) data = fh_pic.read(1024)
if data: if data:
# FIXME: Fehler fangen
self._devcon.send(data) self._devcon.send(data)
else: else:
fh_pic.close() fh_pic.close()