mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 13:53:53 +01:00
IOList.__setitem__ aus Leistungsgründen entfernt - .value ist schneller
IOBase.__bytes__ Entfernt, da sinnlos - .get_value() liefert Bytes Core._get_leda2 angepasst - weniger ifs
This commit is contained in:
@@ -140,9 +140,6 @@ Methods</h3>
|
|||||||
<td><a style="color:#0000FF" href="#IOBase.__bool__">__bool__</a></td>
|
<td><a style="color:#0000FF" href="#IOBase.__bool__">__bool__</a></td>
|
||||||
<td>bool()-wert der Klasse.</td>
|
<td>bool()-wert der Klasse.</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><a style="color:#0000FF" href="#IOBase.__bytes__">__bytes__</a></td>
|
|
||||||
<td>bytes()-wert der Klasse.</td>
|
|
||||||
</tr><tr>
|
|
||||||
<td><a style="color:#0000FF" href="#IOBase.__str__">__str__</a></td>
|
<td><a style="color:#0000FF" href="#IOBase.__str__">__str__</a></td>
|
||||||
<td>str()-wert der Klasse.</td>
|
<td>str()-wert der Klasse.</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
@@ -219,17 +216,6 @@ bool()-wert der Klasse.
|
|||||||
<dd>
|
<dd>
|
||||||
IO-Wert als bool(). Nur False wenn False oder 0 sonst True
|
IO-Wert als bool(). Nur False wenn False oder 0 sonst True
|
||||||
</dd>
|
</dd>
|
||||||
</dl><a NAME="IOBase.__bytes__" ID="IOBase.__bytes__"></a>
|
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
||||||
IOBase.__bytes__</h3>
|
|
||||||
<b>__bytes__</b>(<i></i>)
|
|
||||||
<p>
|
|
||||||
bytes()-wert der Klasse.
|
|
||||||
</p><dl>
|
|
||||||
<dt>Returns:</dt>
|
|
||||||
<dd>
|
|
||||||
IO-Wert als bytes()
|
|
||||||
</dd>
|
|
||||||
</dl><a NAME="IOBase.__str__" ID="IOBase.__str__"></a>
|
</dl><a NAME="IOBase.__str__" ID="IOBase.__str__"></a>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
IOBase.__str__</h3>
|
IOBase.__str__</h3>
|
||||||
@@ -484,19 +470,10 @@ Methods</h3>
|
|||||||
<td>Ersetzt bestehende IOs durch den neu Registrierten.</td>
|
<td>Ersetzt bestehende IOs durch den neu Registrierten.</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><a style="color:#0000FF" href="#IOList.__setattr__">__setattr__</a></td>
|
<td><a style="color:#0000FF" href="#IOList.__setattr__">__setattr__</a></td>
|
||||||
<td>Setzt IO Wert.</td>
|
<td>Verbietet aus Leistungsguenden das direkte Setzen von Attributen.</td>
|
||||||
</tr><tr>
|
|
||||||
<td><a style="color:#0000FF" href="#IOList.__setitem__">__setitem__</a></td>
|
|
||||||
<td>Setzt IO Wert.</td>
|
|
||||||
</tr><tr>
|
|
||||||
<td><a style="color:#0000FF" href="#IOList._getdict">_getdict</a></td>
|
|
||||||
<td></td>
|
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><a style="color:#0000FF" href="#IOList._private_register_new_io_object">_private_register_new_io_object</a></td>
|
<td><a style="color:#0000FF" href="#IOList._private_register_new_io_object">_private_register_new_io_object</a></td>
|
||||||
<td>Registriert neues IO Objekt unabhaenging von __setattr__.</td>
|
<td>Registriert neues IO Objekt unabhaenging von __setattr__.</td>
|
||||||
</tr><tr>
|
|
||||||
<td><a style="color:#0000FF" href="#IOList._testme">_testme</a></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
@@ -613,34 +590,8 @@ Neuer IO der eingefuegt werden soll
|
|||||||
IOList.__setattr__</h3>
|
IOList.__setattr__</h3>
|
||||||
<b>__setattr__</b>(<i>key, value</i>)
|
<b>__setattr__</b>(<i>key, value</i>)
|
||||||
<p>
|
<p>
|
||||||
Setzt IO Wert.
|
Verbietet aus Leistungsguenden das direkte Setzen von Attributen.
|
||||||
</p><dl>
|
</p><a NAME="IOList._private_register_new_io_object" ID="IOList._private_register_new_io_object"></a>
|
||||||
<dt><i>key</i></dt>
|
|
||||||
<dd>
|
|
||||||
IO Name oder Byte
|
|
||||||
</dd><dt><i>value</i></dt>
|
|
||||||
<dd>
|
|
||||||
Wert, auf den der IO gesetzt wird
|
|
||||||
</dd>
|
|
||||||
</dl><a NAME="IOList.__setitem__" ID="IOList.__setitem__"></a>
|
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
||||||
IOList.__setitem__</h3>
|
|
||||||
<b>__setitem__</b>(<i>key, value</i>)
|
|
||||||
<p>
|
|
||||||
Setzt IO Wert.
|
|
||||||
</p><dl>
|
|
||||||
<dt><i>key</i></dt>
|
|
||||||
<dd>
|
|
||||||
IO Name oder Byte
|
|
||||||
</dd><dt><i>value</i></dt>
|
|
||||||
<dd>
|
|
||||||
Wert, auf den der IO gesetzt wird
|
|
||||||
</dd>
|
|
||||||
</dl><a NAME="IOList._getdict" ID="IOList._getdict"></a>
|
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
||||||
IOList._getdict</h3>
|
|
||||||
<b>_getdict</b>(<i></i>)
|
|
||||||
<a NAME="IOList._private_register_new_io_object" ID="IOList._private_register_new_io_object"></a>
|
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
IOList._private_register_new_io_object</h3>
|
IOList._private_register_new_io_object</h3>
|
||||||
<b>_private_register_new_io_object</b>(<i>new_io</i>)
|
<b>_private_register_new_io_object</b>(<i>new_io</i>)
|
||||||
@@ -651,11 +602,7 @@ Registriert neues IO Objekt unabhaenging von __setattr__.
|
|||||||
<dd>
|
<dd>
|
||||||
Neues IO Objekt
|
Neues IO Objekt
|
||||||
</dd>
|
</dd>
|
||||||
</dl><a NAME="IOList._testme" ID="IOList._testme"></a>
|
</dl>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
||||||
IOList._testme</h3>
|
|
||||||
<b>_testme</b>(<i></i>)
|
|
||||||
|
|
||||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||||
<hr /><hr />
|
<hr /><hr />
|
||||||
<a NAME="IntIO" ID="IntIO"></a>
|
<a NAME="IntIO" ID="IntIO"></a>
|
||||||
|
|||||||
@@ -85,9 +85,7 @@ revpimodio2.io.IOBase.unreg_event?4(func=None, edge=None)
|
|||||||
revpimodio2.io.IOBase.value?7
|
revpimodio2.io.IOBase.value?7
|
||||||
revpimodio2.io.IOBase.wait?4(edge=BOTH, exitevent=None, okvalue=None, timeout=0)
|
revpimodio2.io.IOBase.wait?4(edge=BOTH, exitevent=None, okvalue=None, timeout=0)
|
||||||
revpimodio2.io.IOBase?1(parentdevice, valuelist, iotype, byteorder, signed)
|
revpimodio2.io.IOBase?1(parentdevice, valuelist, iotype, byteorder, signed)
|
||||||
revpimodio2.io.IOList._getdict?5()
|
|
||||||
revpimodio2.io.IOList._private_register_new_io_object?5(new_io)
|
revpimodio2.io.IOList._private_register_new_io_object?5(new_io)
|
||||||
revpimodio2.io.IOList._testme?5()
|
|
||||||
revpimodio2.io.IOList?1()
|
revpimodio2.io.IOList?1()
|
||||||
revpimodio2.io.IntIO._get_signed?5()
|
revpimodio2.io.IntIO._get_signed?5()
|
||||||
revpimodio2.io.IntIO._set_byteorder?5(value)
|
revpimodio2.io.IntIO._set_byteorder?5(value)
|
||||||
|
|||||||
@@ -419,9 +419,9 @@ class Core(Device):
|
|||||||
int_led = int.from_bytes(
|
int_led = int.from_bytes(
|
||||||
self.__lst_io[self._ioled].get_value(),
|
self.__lst_io[self._ioled].get_value(),
|
||||||
byteorder=self.__lst_io[self._ioled]._byteorder
|
byteorder=self.__lst_io[self._ioled]._byteorder
|
||||||
)
|
) >> 2
|
||||||
led = 1 if bool(int_led & 4) else 0
|
led = int_led & 1
|
||||||
led = led + 2 if bool(int_led & 8) else led
|
led += int_led & 2
|
||||||
return led
|
return led
|
||||||
|
|
||||||
def _set_leda1(self, value):
|
def _set_leda1(self, value):
|
||||||
|
|||||||
@@ -110,39 +110,17 @@ class IOList(object):
|
|||||||
int_ios += 1
|
int_ios += 1
|
||||||
return int_ios
|
return int_ios
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
|
||||||
"""Setzt IO Wert.
|
|
||||||
@param key IO Name oder Byte
|
|
||||||
@param value Wert, auf den der IO gesetzt wird"""
|
|
||||||
if type(key) == int:
|
|
||||||
if key not in self.__dict_iobyte:
|
|
||||||
raise KeyError(
|
|
||||||
"byte '{}' does not contain io object".format(key)
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(self.__dict_iobyte[key]) == 1:
|
|
||||||
self.__dict_iobyte[key][0].value = value
|
|
||||||
elif len(self.__dict_iobyte[key]) == 0:
|
|
||||||
raise KeyError("byte '{}' contains no input".format(key))
|
|
||||||
else:
|
|
||||||
raise KeyError(
|
|
||||||
"byte '{}' contains more than one bit-input".format(key)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
getattr(self, key).value = value
|
|
||||||
|
|
||||||
def __setattr__(self, key, value):
|
def __setattr__(self, key, value):
|
||||||
"""Setzt IO Wert.
|
"""Verbietet aus Leistungsguenden das direkte Setzen von Attributen."""
|
||||||
@param key IO Name oder Byte
|
|
||||||
@param value Wert, auf den der IO gesetzt wird"""
|
|
||||||
if key in [
|
if key in [
|
||||||
"_IOList__dict_iobyte",
|
"_IOList__dict_iobyte",
|
||||||
"_IOList__dict_iorefname"
|
"_IOList__dict_iorefname"
|
||||||
]:
|
]:
|
||||||
object.__setattr__(self, key, value)
|
object.__setattr__(self, key, value)
|
||||||
else:
|
else:
|
||||||
# Setzt Wert bei Zuweisung
|
raise TypeError(
|
||||||
getattr(self, key).value = value
|
"direct assignment is not supported - use .value Attribute"
|
||||||
|
)
|
||||||
|
|
||||||
def __private_replace_oldio_with_newio(self, io):
|
def __private_replace_oldio_with_newio(self, io):
|
||||||
"""Ersetzt bestehende IOs durch den neu Registrierten.
|
"""Ersetzt bestehende IOs durch den neu Registrierten.
|
||||||
@@ -205,17 +183,6 @@ class IOList(object):
|
|||||||
else:
|
else:
|
||||||
raise AttributeError("io must be <class 'IOBase'> or sub class")
|
raise AttributeError("io must be <class 'IOBase'> or sub class")
|
||||||
|
|
||||||
def _testme(self):
|
|
||||||
# NOTE: Nur Debugging
|
|
||||||
for x in self.__dict_iobyte:
|
|
||||||
if len(self.__dict_iobyte[x]) > 0:
|
|
||||||
print(x, self.__dict_iobyte[x])
|
|
||||||
print(self.__dict_iorefname)
|
|
||||||
|
|
||||||
def _getdict(self):
|
|
||||||
# NOTE: Nur Debugging
|
|
||||||
return self.__dict_iobyte.copy()
|
|
||||||
|
|
||||||
|
|
||||||
class DeadIO(object):
|
class DeadIO(object):
|
||||||
|
|
||||||
@@ -305,20 +272,14 @@ class IOBase(object):
|
|||||||
def __bool__(self):
|
def __bool__(self):
|
||||||
"""bool()-wert der Klasse.
|
"""bool()-wert der Klasse.
|
||||||
@return IO-Wert als bool(). Nur False wenn False oder 0 sonst True"""
|
@return IO-Wert als bool(). Nur False wenn False oder 0 sonst True"""
|
||||||
return bool(self.get_value())
|
|
||||||
|
|
||||||
def __bytes__(self):
|
|
||||||
"""bytes()-wert der Klasse.
|
|
||||||
@return IO-Wert als bytes()"""
|
|
||||||
if self._bitaddress >= 0:
|
if self._bitaddress >= 0:
|
||||||
int_byte = int.from_bytes(
|
int_byte = int.from_bytes(
|
||||||
self._parentdevice._ba_devdata[self._slc_address],
|
self._parentdevice._ba_devdata[self._slc_address],
|
||||||
byteorder=self._byteorder
|
byteorder=self._byteorder
|
||||||
)
|
)
|
||||||
return b'\x01' if bool(int_byte & 1 << self._bitaddress) \
|
return bool(int_byte & 1 << self._bitaddress)
|
||||||
else b'\x00'
|
|
||||||
else:
|
else:
|
||||||
return bytes(self._parentdevice._ba_devdata[self._slc_address])
|
return bool(self._parentdevice._ba_devdata[self._slc_address])
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"""str()-wert der Klasse.
|
"""str()-wert der Klasse.
|
||||||
@@ -359,7 +320,6 @@ class IOBase(object):
|
|||||||
byteorder=self._byteorder
|
byteorder=self._byteorder
|
||||||
)
|
)
|
||||||
return bool(int_byte & 1 << self._bitaddress)
|
return bool(int_byte & 1 << self._bitaddress)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return bytes(self._parentdevice._ba_devdata[self._slc_address])
|
return bytes(self._parentdevice._ba_devdata[self._slc_address])
|
||||||
|
|
||||||
@@ -661,7 +621,11 @@ class IntIO(IOBase):
|
|||||||
def __int__(self):
|
def __int__(self):
|
||||||
"""Gibt IO als int() Wert zurueck mit Beachtung byteorder/signed.
|
"""Gibt IO als int() Wert zurueck mit Beachtung byteorder/signed.
|
||||||
@return int() ohne Vorzeichen"""
|
@return int() ohne Vorzeichen"""
|
||||||
return self.get_int()
|
return int.from_bytes(
|
||||||
|
self._parentdevice._ba_devdata[self._slc_address],
|
||||||
|
byteorder=self._byteorder,
|
||||||
|
signed=self._signed
|
||||||
|
)
|
||||||
|
|
||||||
def _get_signed(self):
|
def _get_signed(self):
|
||||||
"""Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.
|
"""Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.
|
||||||
@@ -768,7 +732,6 @@ class StructIO(IOBase):
|
|||||||
raise AttributeError("parameter frm has to be a single sign")
|
raise AttributeError("parameter frm has to be a single sign")
|
||||||
|
|
||||||
# Basisklasse instantiieren
|
# Basisklasse instantiieren
|
||||||
# parentdevice, valuelist, iotype, byteorder, signed
|
|
||||||
super().__init__(
|
super().__init__(
|
||||||
parentio._parentdevice,
|
parentio._parentdevice,
|
||||||
valuelist,
|
valuelist,
|
||||||
|
|||||||
Reference in New Issue
Block a user