mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 22:03:53 +01:00
Fehler bei NetIO im Hash load beseitigt
Core IOs geben keine Fehler mehr, wenn ein delay event draufgelegt wird Core IOs können nicht mehr überschrieben werden, wenn .value vergessen wrid
This commit is contained in:
@@ -106,6 +106,9 @@ Class Methods</h3>
|
||||
Methods</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#Connect.__setattr__">__setattr__</a></td>
|
||||
<td>Verhindert Ueberschreibung der LEDs.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#Connect.__wdtoggle">__wdtoggle</a></td>
|
||||
<td>WD Ausgang alle 10 Sekunden automatisch toggeln.</td>
|
||||
</tr><tr>
|
||||
@@ -130,7 +133,13 @@ Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="Connect.__wdtoggle" ID="Connect.__wdtoggle"></a>
|
||||
<a NAME="Connect.__setattr__" ID="Connect.__setattr__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Connect.__setattr__</h3>
|
||||
<b>__setattr__</b>(<i>key, value</i>)
|
||||
<p>
|
||||
Verhindert Ueberschreibung der LEDs.
|
||||
</p><a NAME="Connect.__wdtoggle" ID="Connect.__wdtoggle"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Connect.__wdtoggle</h3>
|
||||
<b>__wdtoggle</b>(<i></i>)
|
||||
@@ -227,6 +236,9 @@ Methods</h3>
|
||||
<td><a style="color:#0000FF" href="#Core.__errorlimit">__errorlimit</a></td>
|
||||
<td>Verwaltet das Schreiben der ErrorLimits.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#Core.__setattr__">__setattr__</a></td>
|
||||
<td>Verhindert Ueberschreibung der LEDs.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#Core._devconfigure">_devconfigure</a></td>
|
||||
<td>Core-Klasse vorbereiten.</td>
|
||||
</tr><tr>
|
||||
@@ -306,7 +318,13 @@ Byte Slice vom ErrorLimit
|
||||
<dd>
|
||||
Aktuellen ErrorLimit oder None wenn nicht verfuegbar
|
||||
</dd>
|
||||
</dl><a NAME="Core._devconfigure" ID="Core._devconfigure"></a>
|
||||
</dl><a NAME="Core.__setattr__" ID="Core.__setattr__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Core.__setattr__</h3>
|
||||
<b>__setattr__</b>(<i>key, value</i>)
|
||||
<p>
|
||||
Verhindert Ueberschreibung der LEDs.
|
||||
</p><a NAME="Core._devconfigure" ID="Core._devconfigure"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Core._devconfigure</h3>
|
||||
<b>_devconfigure</b>(<i></i>)
|
||||
|
||||
@@ -494,6 +494,16 @@ class Core(Base):
|
||||
"_slc_temperature", "_slc_errorlimit1", "_slc_errorlimit2", \
|
||||
"_slc_frequency", "_slc_led", "a1green", "a1red", "a2green", "a2red"
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
"""Verhindert Ueberschreibung der LEDs."""
|
||||
if hasattr(self, key) and key in (
|
||||
"a1green", "a1red", "a2green", "a2red"):
|
||||
raise AttributeError(
|
||||
"direct assignment is not supported - use .value Attribute"
|
||||
)
|
||||
else:
|
||||
object.__setattr__(self, key, value)
|
||||
|
||||
def _devconfigure(self):
|
||||
"""Core-Klasse vorbereiten."""
|
||||
|
||||
@@ -767,6 +777,17 @@ class Connect(Core):
|
||||
__slots__ = "__evt_wdtoggle", "__th_wdtoggle", "a3green", "a3red", "wd", \
|
||||
"x2in", "x2out"
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
"""Verhindert Ueberschreibung der LEDs."""
|
||||
if hasattr(self, key) and key in (
|
||||
"a1green", "a1red", "a2green", "a2red", "a3green", "a3red",
|
||||
"wd", "x2in", "x2out"):
|
||||
raise AttributeError(
|
||||
"direct assignment is not supported - use .value Attribute"
|
||||
)
|
||||
else:
|
||||
object.__setattr__(self, key, value)
|
||||
|
||||
def __wdtoggle(self):
|
||||
"""WD Ausgang alle 10 Sekunden automatisch toggeln."""
|
||||
while not self.__evt_wdtoggle.wait(10):
|
||||
|
||||
@@ -351,12 +351,13 @@ class ProcimgWriter(Thread):
|
||||
)
|
||||
else:
|
||||
# Verzögertes Event in dict einfügen
|
||||
tupfire = (
|
||||
regfunc, io_event._name, io_event.value
|
||||
tup_fire = (
|
||||
regfunc, io_event._name, io_event.value,
|
||||
io_event,
|
||||
)
|
||||
if regfunc.overwrite \
|
||||
or tupfire not in self.__dict_delay:
|
||||
self.__dict_delay[tupfire] = ceil(
|
||||
or tup_fire not in self.__dict_delay:
|
||||
self.__dict_delay[tup_fire] = ceil(
|
||||
regfunc.delay / 1000 / self._refresh
|
||||
)
|
||||
else:
|
||||
@@ -374,12 +375,13 @@ class ProcimgWriter(Thread):
|
||||
)
|
||||
else:
|
||||
# Verzögertes Event in dict einfügen
|
||||
tupfire = (
|
||||
regfunc, io_event._name, io_event.value
|
||||
tup_fire = (
|
||||
regfunc, io_event._name, io_event.value,
|
||||
io_event,
|
||||
)
|
||||
if regfunc.overwrite \
|
||||
or tupfire not in self.__dict_delay:
|
||||
self.__dict_delay[tupfire] = ceil(
|
||||
or tup_fire not in self.__dict_delay:
|
||||
self.__dict_delay[tup_fire] = ceil(
|
||||
regfunc.delay / 1000 / self._refresh
|
||||
)
|
||||
|
||||
@@ -525,8 +527,7 @@ class ProcimgWriter(Thread):
|
||||
if self.__eventwork:
|
||||
for tup_fire in tuple(self.__dict_delay.keys()):
|
||||
if tup_fire[0].overwrite and \
|
||||
getattr(self._modio.io, tup_fire[1]).value != \
|
||||
tup_fire[2]:
|
||||
tup_fire[3].value != tup_fire[2]:
|
||||
del self.__dict_delay[tup_fire]
|
||||
else:
|
||||
self.__dict_delay[tup_fire] -= 1
|
||||
|
||||
@@ -164,11 +164,12 @@ class NetFH(Thread):
|
||||
# Hashwerte empfangen
|
||||
byte_buff = bytearray()
|
||||
zero_byte = 0
|
||||
while not self.__sockend.is_set() and zero_byte < 100 \
|
||||
and len(byte_buff) < recv_len:
|
||||
while not self.__sockend.is_set() and len(byte_buff) < recv_len:
|
||||
data = so.recv(recv_len)
|
||||
if data == b'':
|
||||
zero_byte += 1
|
||||
if zero_byte == 100:
|
||||
raise OSError("too many zero bytes on hash load")
|
||||
byte_buff += data
|
||||
|
||||
# Änderung an piCtory prüfen
|
||||
|
||||
Reference in New Issue
Block a user