Files
revpimodio2/doc/revpimodio2.io.html

1009 lines
32 KiB
HTML

<!DOCTYPE html>
<html><head>
<title>revpimodio2.io</title>
<meta charset="UTF-8">
</head>
<body style="background-color:#FFFFFF;color:#000000"><a NAME="top" ID="top"></a>
<h1 style="background-color:#FFFFFF;color:#0000FF">
revpimodio2.io</h1>
<p>
RevPiModIO Modul fuer die Verwaltung der IOs.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#DeadIO">DeadIO</a></td>
<td>Klasse, mit der ersetzte IOs verwaltet werden.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase">IOBase</a></td>
<td>Basisklasse fuer alle IO-Objekte.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOEvent">IOEvent</a></td>
<td>Basisklasse fuer IO-Events.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList">IOList</a></td>
<td>Basisklasse fuer direkten Zugriff auf IO Objekte.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO">IntIO</a></td>
<td>Klasse fuer den Zugriff auf die Daten mit Konvertierung in int.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#StructIO">StructIO</a></td>
<td>Klasse fuer den Zugriff auf Daten ueber ein definierten struct.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="DeadIO" ID="DeadIO"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">DeadIO</h2>
<p>
Klasse, mit der ersetzte IOs verwaltet werden.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
object
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>__slots__</td></tr><tr><td>_parentdevice</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Methods</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#DeadIO.__init__">DeadIO</a></td>
<td>Instantiierung der DeadIO-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#DeadIO.replace_io">replace_io</a></td>
<td>Stellt Funktion fuer weiter Bit-Ersetzungen bereit.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="DeadIO.__init__" ID="DeadIO.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
DeadIO (Constructor)</h3>
<b>DeadIO</b>(<i>deadio</i>)
<p>
Instantiierung der DeadIO-Klasse.
</p><dl>
<dt><i>deadio</i></dt>
<dd>
IO, der ersetzt wurde
</dd>
</dl><a NAME="DeadIO.replace_io" ID="DeadIO.replace_io"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
DeadIO.replace_io</h3>
<b>replace_io</b>(<i>name, frm, **kwargs</i>)
<p>
Stellt Funktion fuer weiter Bit-Ersetzungen bereit.
</p><dl>
<dt><b>See Also:</b></dt>
<dd>
<a style="color:#0000FF" href="#IOBase.replace_io">replace_io(...)</a>
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="IOBase" ID="IOBase"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">IOBase</h2>
<p>
Basisklasse fuer alle IO-Objekte.
</p><p>
Die Basisfunktionalitaet ermoeglicht das Lesen und Schreiben der Werte
als <class bytes'> oder <class 'bool'>. Dies entscheidet sich bei der
Instantiierung.
Wenn eine Bittadresse angegeben wird, werden <class 'bool'>-Werte erwartet
und zurueckgegeben, ansonsten <class bytes'>.
</p><p>
Diese Klasse dient als Basis fuer andere IO-Klassen mit denen die Werte
auch als <class 'int'> verwendet werden koennen.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
object
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>__slots__</td></tr><tr><td>address</td></tr><tr><td>byteorder</td></tr><tr><td>defaultvalue</td></tr><tr><td>length</td></tr><tr><td>name</td></tr><tr><td>type</td></tr><tr><td>value</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Methods</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#IOBase.__init__">IOBase</a></td>
<td>Instantiierung der IOBase-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.__bool__">__bool__</a></td>
<td><class 'bool'>-Wert der Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.__len__">__len__</a></td>
<td>Gibt die Bytelaenge des IO zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.__reg_xevent">__reg_xevent</a></td>
<td>Verwaltet reg_event und reg_timerevent.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.__str__">__str__</a></td>
<td><class 'str'>-Wert der Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase._get_address">_get_address</a></td>
<td>Gibt die absolute Byteadresse im Prozessabbild zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase._get_byteorder">_get_byteorder</a></td>
<td>Gibt konfigurierte Byteorder zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase._get_iotype">_get_iotype</a></td>
<td>Gibt io type zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.get_defaultvalue">get_defaultvalue</a></td>
<td>Gibt die Defaultvalue von piCtory zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.get_value">get_value</a></td>
<td>Gibt den Wert des IOs zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.reg_event">reg_event</a></td>
<td>Registriert fuer IO ein Event bei der Eventueberwachung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.reg_timerevent">reg_timerevent</a></td>
<td>Registriert fuer IO einen Timer, welcher nach delay func ausfuehrt.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.replace_io">replace_io</a></td>
<td>Ersetzt bestehenden IO mit Neuem.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.set_value">set_value</a></td>
<td>Setzt den Wert des IOs.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.unreg_event">unreg_event</a></td>
<td>Entfernt ein Event aus der Eventueberwachung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOBase.wait">wait</a></td>
<td>Wartet auf Wertaenderung eines IOs.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="IOBase.__init__" ID="IOBase.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase (Constructor)</h3>
<b>IOBase</b>(<i>parentdevice, valuelist, iotype, byteorder, signed</i>)
<p>
Instantiierung der IOBase-Klasse.
</p><dl>
<dt><i>parentdevice</i></dt>
<dd>
Parentdevice auf dem der IO liegt
</dd><dt><i>valuelist</i></dt>
<dd>
Datenliste fuer Instantiierung
["name","defval","bitlen","startaddrdev",exp,"idx","bmk","bitaddr"]
</dd><dt><i>iotype</i></dt>
<dd>
<class 'int'> Wert
</dd><dt><i>byteorder</i></dt>
<dd>
Byteorder 'little'/'big' fuer <class 'int'> Berechnung
</dd><dt><i>sigend</i></dt>
<dd>
Intberechnung mit Vorzeichen durchfuehren
</dd>
</dl><a NAME="IOBase.__bool__" ID="IOBase.__bool__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.__bool__</h3>
<b>__bool__</b>(<i></i>)
<p>
<class 'bool'>-Wert der Klasse.
</p><dl>
<dt>Returns:</dt>
<dd>
<class 'bool'> Nur False wenn False oder 0 sonst True
</dd>
</dl><a NAME="IOBase.__len__" ID="IOBase.__len__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.__len__</h3>
<b>__len__</b>(<i></i>)
<p>
Gibt die Bytelaenge des IO zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Bytelaenge des IO - 0 bei BITs
</dd>
</dl><a NAME="IOBase.__reg_xevent" ID="IOBase.__reg_xevent"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.__reg_xevent</h3>
<b>__reg_xevent</b>(<i>func, delay, edge, as_thread, overwrite</i>)
<p>
Verwaltet reg_event und reg_timerevent.
</p><dl>
<dt><i>func</i></dt>
<dd>
Funktion die bei Aenderung aufgerufen werden soll
</dd><dt><i>delay</i></dt>
<dd>
Verzoegerung in ms zum Ausloesen - auch bei Wertaenderung
</dd><dt><i>edge</i></dt>
<dd>
Ausfuehren bei RISING, FALLING or BOTH Wertaenderung
</dd><dt><i>as_thread</i></dt>
<dd>
Bei True, Funktion als EventCallback-Thread ausfuehren
</dd><dt><i>overwrite</i></dt>
<dd>
Wenn True, wird Event bei ueberschrieben
</dd>
</dl><a NAME="IOBase.__str__" ID="IOBase.__str__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.__str__</h3>
<b>__str__</b>(<i></i>)
<p>
<class 'str'>-Wert der Klasse.
</p><dl>
<dt>Returns:</dt>
<dd>
Namen des IOs
</dd>
</dl><a NAME="IOBase._get_address" ID="IOBase._get_address"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase._get_address</h3>
<b>_get_address</b>(<i></i>)
<p>
Gibt die absolute Byteadresse im Prozessabbild zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Absolute Byteadresse
</dd>
</dl><a NAME="IOBase._get_byteorder" ID="IOBase._get_byteorder"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase._get_byteorder</h3>
<b>_get_byteorder</b>(<i></i>)
<p>
Gibt konfigurierte Byteorder zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
<class 'str'> Byteorder
</dd>
</dl><a NAME="IOBase._get_iotype" ID="IOBase._get_iotype"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase._get_iotype</h3>
<b>_get_iotype</b>(<i></i>)
<p>
Gibt io type zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
<class 'int'> io type
</dd>
</dl><a NAME="IOBase.get_defaultvalue" ID="IOBase.get_defaultvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.get_defaultvalue</h3>
<b>get_defaultvalue</b>(<i></i>)
<p>
Gibt die Defaultvalue von piCtory zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Defaultvalue als <class 'byte'> oder <class 'bool'>
</dd>
</dl><a NAME="IOBase.get_value" ID="IOBase.get_value"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.get_value</h3>
<b>get_value</b>(<i></i>)
<p>
Gibt den Wert des IOs zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
IO-Wert als <class 'bytes'> oder <class 'bool'>
</dd>
</dl><a NAME="IOBase.reg_event" ID="IOBase.reg_event"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.reg_event</h3>
<b>reg_event</b>(<i>func, delay=0, edge=BOTH, as_thread=False</i>)
<p>
Registriert fuer IO ein Event bei der Eventueberwachung.
</p><p>
Die uebergebene Funktion wird ausgefuehrt, wenn sich der IO Wert
aendert. Mit Angabe von optionalen Parametern kann das
Ausloeseverhalten gesteuert werden.
</p><p>
HINWEIS: Die delay-Zeit muss in die .cycletime passen, ist dies nicht
der Fall, wird IMMER aufgerundet!
</p><dl>
<dt><i>func</i></dt>
<dd>
Funktion die bei Aenderung aufgerufen werden soll
</dd><dt><i>delay</i></dt>
<dd>
Verzoegerung in ms zum Ausloesen wenn Wert gleich bleibt
</dd><dt><i>edge</i></dt>
<dd>
Ausfuehren bei RISING, FALLING or BOTH Wertaenderung
</dd><dt><i>as_thread</i></dt>
<dd>
Bei True, Funktion als EventCallback-Thread ausfuehren
</dd>
</dl><a NAME="IOBase.reg_timerevent" ID="IOBase.reg_timerevent"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.reg_timerevent</h3>
<b>reg_timerevent</b>(<i>func, delay, edge=BOTH, as_thread=False</i>)
<p>
Registriert fuer IO einen Timer, welcher nach delay func ausfuehrt.
</p><p>
Der Timer wird gestartet, wenn sich der IO Wert aendert und fuehrt die
uebergebene Funktion aus - auch wenn sich der IO Wert in der
zwischenzeit geaendert hat. Sollte der Timer nicht abelaufen sein und
die Bedingugn erneut zutreffen, wird der Timer NICHT auf den delay Wert
zurueckgesetzt oder ein zweites Mal gestartet. Fuer dieses Verhalten
kann .reg_event(..., delay=wert) verwendet werden.
</p><p>
HINWEIS: Die delay-Zeit muss in die .cycletime passen, ist dies nicht
der Fall, wird IMMER aufgerundet!
</p><dl>
<dt><i>func</i></dt>
<dd>
Funktion die bei Aenderung aufgerufen werden soll
</dd><dt><i>delay</i></dt>
<dd>
Verzoegerung in ms zum Ausloesen - auch bei Wertaenderung
</dd><dt><i>edge</i></dt>
<dd>
Ausfuehren bei RISING, FALLING or BOTH Wertaenderung
</dd><dt><i>as_thread</i></dt>
<dd>
Bei True, Funktion als EventCallback-Thread ausfuehren
</dd>
</dl><a NAME="IOBase.replace_io" ID="IOBase.replace_io"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.replace_io</h3>
<b>replace_io</b>(<i>name, frm, **kwargs</i>)
<p>
Ersetzt bestehenden IO mit Neuem.
</p><p>
Wenn die kwargs fuer byteorder und defaultvalue nicht angegeben werden,
uebernimmt das System die Daten aus dem ersetzten IO.
</p><p>
Es darf nur ein einzelnes Formatzeichen 'frm' uebergeben werden. Daraus
wird dann die benoetigte Laenge an Bytes berechnet und der Datentyp
festgelegt.
Eine Ausnahme ist die Formatierung 's'. Hier koennen mehrere Bytes
zu einem langen IO zusammengefasst werden. Die Formatierung muss
'8s' fuer z.B. 8 Bytes sein - NICHT 'ssssssss'!
</p><p>
Wenn durch die Formatierung mehr Bytes benoetigt werden, als
der urspruenglige IO hat, werden die nachfolgenden IOs ebenfalls
verwendet und entfernt.
</p><dl>
<dt><i>name</i></dt>
<dd>
Name des neuen Inputs
</dd><dt><i>frm</i></dt>
<dd>
struct formatierung (1 Zeichen) oder 'ANZAHLs' z.B. '8s'
</dd><dt><i>kwargs</i></dt>
<dd>
Weitere Parameter:
- bmk: interne Bezeichnung fuer IO
- bit: Registriert IO als <class 'bool'> am angegebenen Bit im Byte
- byteorder: Byteorder fuer den IO, Standardwert=little
- defaultvalue: Standardwert fuer IO
- event: Funktion fuer Eventhandling registrieren
- delay: Verzoegerung in ms zum Ausloesen wenn Wert gleich bleibt
- edge: Event ausfuehren bei RISING, FALLING or BOTH Wertaenderung
- as_thread: Fuehrt die event-Funktion als RevPiCallback-Thread aus
</dd>
</dl><dl>
<dt><b>See Also:</b></dt>
<dd>
<a style="color:#0000FF" target="_blank" href="https://docs.python.org/3/library/struct.html#format-characters" >Python3 struct</a>
</dd>
</dl><a NAME="IOBase.set_value" ID="IOBase.set_value"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.set_value</h3>
<b>set_value</b>(<i>value</i>)
<p>
Setzt den Wert des IOs.
</p><dl>
<dt><i>value</i></dt>
<dd>
IO-Wert als <class bytes'> oder <class 'bool'>
</dd>
</dl><a NAME="IOBase.unreg_event" ID="IOBase.unreg_event"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.unreg_event</h3>
<b>unreg_event</b>(<i>func=None, edge=None</i>)
<p>
Entfernt ein Event aus der Eventueberwachung.
</p><dl>
<dt><i>func</i></dt>
<dd>
Nur Events mit angegebener Funktion
</dd><dt><i>edge</i></dt>
<dd>
Nur Events mit angegebener Funktion und angegebener Edge
</dd>
</dl><a NAME="IOBase.wait" ID="IOBase.wait"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOBase.wait</h3>
<b>wait</b>(<i>edge=BOTH, exitevent=None, okvalue=None, timeout=0</i>)
<p>
Wartet auf Wertaenderung eines IOs.
</p><p>
Die Wertaenderung wird immer uerberprueft, wenn fuer Devices
mit aktiviertem autorefresh neue Daten gelesen wurden.
</p><p>
Bei Wertaenderung, wird das Warten mit 0 als Rueckgabewert beendet.
</p><p>
HINWEIS: Wenn <class 'ProcimgWriter'> keine neuen Daten liefert, wird
bis in die Ewigkeit gewartet (nicht bei Angabe von "timeout").
</p><p>
Wenn edge mit RISING oder FALLING angegeben wird, muss diese Flanke
ausgeloest werden. Sollte der Wert 1 sein beim Eintritt mit Flanke
RISING, wird das Warten erst bei Aenderung von 0 auf 1 beendet.
</p><p>
Als exitevent kann ein <class 'threading.Event'>-Objekt uebergeben
werden, welches das Warten bei is_set() sofort mit 1 als Rueckgabewert
beendet.
</p><p>
Wenn der Wert okvalue an dem IO fuer das Warten anliegt, wird
das Warten sofort mit -1 als Rueckgabewert beendet.
</p><p>
Der Timeoutwert bricht beim Erreichen das Warten sofort mit
Wert 2 Rueckgabewert ab. (Das Timeout wird ueber die Zykluszeit
der autorefresh Funktion berechnet, entspricht also nicht exakt den
angegeben Millisekunden! Es wird immer nach oben gerundet!)
</p><dl>
<dt><i>edge</i></dt>
<dd>
Flanke RISING, FALLING, BOTH die eintreten muss
</dd><dt><i>exitevent</i></dt>
<dd>
<class 'thrading.Event'> fuer vorzeitiges Beenden
</dd><dt><i>okvalue</i></dt>
<dd>
IO-Wert, bei dem das Warten sofort beendet wird
</dd><dt><i>timeout</i></dt>
<dd>
Zeit in ms nach der abgebrochen wird
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
<class 'int'> erfolgreich Werte <= 0
- Erfolgreich gewartet
Wert 0: IO hat den Wert gewechselt
Wert -1: okvalue stimmte mit IO ueberein
- Fehlerhaft gewartet
Wert 1: exitevent wurde gesetzt
Wert 2: timeout abgelaufen
Wert 100: Devicelist.exit() wurde aufgerufen
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="IOEvent" ID="IOEvent"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">IOEvent</h2>
<p>
Basisklasse fuer IO-Events.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
object
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>__slots__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Methods</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#IOEvent.__init__">IOEvent</a></td>
<td>Init IOEvent class.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="IOEvent.__init__" ID="IOEvent.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOEvent (Constructor)</h3>
<b>IOEvent</b>(<i>func, edge, as_thread, delay, overwrite</i>)
<p>
Init IOEvent class.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="IOList" ID="IOList"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">IOList</h2>
<p>
Basisklasse fuer direkten Zugriff auf IO Objekte.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
object
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Methods</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#IOList.__init__">IOList</a></td>
<td>Init IOList class.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__contains__">__contains__</a></td>
<td>Prueft ob IO existiert.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__delattr__">__delattr__</a></td>
<td>Entfernt angegebenen IO.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__getattr__">__getattr__</a></td>
<td>Verwaltet geloeschte IOs (Attribute, die nicht existieren).</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__getitem__">__getitem__</a></td>
<td>Ruft angegebenen IO ab.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__iter__">__iter__</a></td>
<td>Gibt Iterator aller IOs zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__len__">__len__</a></td>
<td>Gibt die Anzahl aller IOs zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__private_replace_oldio_with_newio">__private_replace_oldio_with_newio</a></td>
<td>Ersetzt bestehende IOs durch den neu Registrierten.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IOList.__setattr__">__setattr__</a></td>
<td>Verbietet aus Leistungsguenden das direkte Setzen von Attributen.</td>
</tr><tr>
<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>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="IOList.__init__" ID="IOList.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList (Constructor)</h3>
<b>IOList</b>(<i></i>)
<p>
Init IOList class.
</p><a NAME="IOList.__contains__" ID="IOList.__contains__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__contains__</h3>
<b>__contains__</b>(<i>key</i>)
<p>
Prueft ob IO existiert.
</p><dl>
<dt><i>key</i></dt>
<dd>
IO-Name <class 'str'> oder Bytenummer <class 'int'>
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
True, wenn IO vorhanden / Byte belegt
</dd>
</dl><a NAME="IOList.__delattr__" ID="IOList.__delattr__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__delattr__</h3>
<b>__delattr__</b>(<i>key</i>)
<p>
Entfernt angegebenen IO.
</p><dl>
<dt><i>key</i></dt>
<dd>
IO zum entfernen
</dd>
</dl><a NAME="IOList.__getattr__" ID="IOList.__getattr__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__getattr__</h3>
<b>__getattr__</b>(<i>key</i>)
<p>
Verwaltet geloeschte IOs (Attribute, die nicht existieren).
</p><dl>
<dt><i>key</i></dt>
<dd>
Name oder Byte eines alten IOs
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Alten IO, wenn in Ref-Listen
</dd>
</dl><a NAME="IOList.__getitem__" ID="IOList.__getitem__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__getitem__</h3>
<b>__getitem__</b>(<i>key</i>)
<p>
Ruft angegebenen IO ab.
</p><p>
Wenn der Key <class 'str'> ist, wird ein einzelner IO geliefert. Wird
der Key als <class 'int'> uebergeben, wird eine <class 'list'>
geliefert mit 0, 1 oder 8 Eintraegen.
Wird als Key <class 'slice'> gegeben, werden die Listen in einer Liste
zurueckgegeben.
</p><dl>
<dt><i>key</i></dt>
<dd>
IO Name als <class 'str> oder Byte als <class 'int'>.
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
IO Objekt oder Liste der IOs
</dd>
</dl><a NAME="IOList.__iter__" ID="IOList.__iter__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__iter__</h3>
<b>__iter__</b>(<i></i>)
<p>
Gibt Iterator aller IOs zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Iterator aller IOs
</dd>
</dl><a NAME="IOList.__len__" ID="IOList.__len__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__len__</h3>
<b>__len__</b>(<i></i>)
<p>
Gibt die Anzahl aller IOs zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Anzahl aller IOs
</dd>
</dl><a NAME="IOList.__private_replace_oldio_with_newio" ID="IOList.__private_replace_oldio_with_newio"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__private_replace_oldio_with_newio</h3>
<b>__private_replace_oldio_with_newio</b>(<i>io</i>)
<p>
Ersetzt bestehende IOs durch den neu Registrierten.
</p><dl>
<dt><i>io</i></dt>
<dd>
Neuer IO der eingefuegt werden soll
</dd>
</dl><a NAME="IOList.__setattr__" ID="IOList.__setattr__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList.__setattr__</h3>
<b>__setattr__</b>(<i>key, value</i>)
<p>
Verbietet aus Leistungsguenden das direkte Setzen von Attributen.
</p><a NAME="IOList._private_register_new_io_object" ID="IOList._private_register_new_io_object"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IOList._private_register_new_io_object</h3>
<b>_private_register_new_io_object</b>(<i>new_io</i>)
<p>
Registriert neues IO Objekt unabhaenging von __setattr__.
</p><dl>
<dt><i>new_io</i></dt>
<dd>
Neues IO Objekt
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="IntIO" ID="IntIO"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">IntIO</h2>
<p>
Klasse fuer den Zugriff auf die Daten mit Konvertierung in int.
</p><p>
Diese Klasse erweitert die Funktion von <class 'IOBase'> um Funktionen,
ueber die mit <class 'int'> Werten gearbeitet werden kann. Fuer die
Umwandlung koennen 'Byteorder' (Default 'little') und 'signed' (Default
False) als Parameter gesetzt werden.
</p><dl>
<dt><b>See Also:</b></dt>
<dd>
<a style="color:#0000FF" href="#IOBase">IOBase</a>
</dd>
</dl>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
IOBase
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>__slots__</td></tr><tr><td>byteorder</td></tr><tr><td>defaultvalue</td></tr><tr><td>signed</td></tr><tr><td>value</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Methods</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#IntIO.__int__">__int__</a></td>
<td>Gibt IO-Wert zurueck mit Beachtung byteorder/signed.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO._get_signed">_get_signed</a></td>
<td>Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO._set_byteorder">_set_byteorder</a></td>
<td>Setzt Byteorder fuer <class 'int'> Umwandlung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO._set_signed">_set_signed</a></td>
<td>Left fest, ob der Wert Vorzeichenbehaftet behandelt werden soll.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO.get_intdefaultvalue">get_intdefaultvalue</a></td>
<td>Gibt die Defaultvalue als <class 'int'> zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO.get_intvalue">get_intvalue</a></td>
<td>Gibt IO-Wert zurueck mit Beachtung byteorder/signed.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IntIO.set_intvalue">set_intvalue</a></td>
<td>Setzt IO mit Beachtung byteorder/signed.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="IntIO.__int__" ID="IntIO.__int__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO.__int__</h3>
<b>__int__</b>(<i></i>)
<p>
Gibt IO-Wert zurueck mit Beachtung byteorder/signed.
</p><dl>
<dt>Returns:</dt>
<dd>
IO-Wert als <class 'int'>
</dd>
</dl><a NAME="IntIO._get_signed" ID="IntIO._get_signed"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO._get_signed</h3>
<b>_get_signed</b>(<i></i>)
<p>
Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Vorzeichenbehaftet
</dd>
</dl><a NAME="IntIO._set_byteorder" ID="IntIO._set_byteorder"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO._set_byteorder</h3>
<b>_set_byteorder</b>(<i>value</i>)
<p>
Setzt Byteorder fuer <class 'int'> Umwandlung.
</p><dl>
<dt><i>value</i></dt>
<dd>
<class 'str'> 'little' or 'big'
</dd>
</dl><a NAME="IntIO._set_signed" ID="IntIO._set_signed"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO._set_signed</h3>
<b>_set_signed</b>(<i>value</i>)
<p>
Left fest, ob der Wert Vorzeichenbehaftet behandelt werden soll.
</p><dl>
<dt><i>value</i></dt>
<dd>
True, wenn mit Vorzeichen behandel
</dd>
</dl><a NAME="IntIO.get_intdefaultvalue" ID="IntIO.get_intdefaultvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO.get_intdefaultvalue</h3>
<b>get_intdefaultvalue</b>(<i></i>)
<p>
Gibt die Defaultvalue als <class 'int'> zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
<class 'int'> Defaultvalue
</dd>
</dl><a NAME="IntIO.get_intvalue" ID="IntIO.get_intvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO.get_intvalue</h3>
<b>get_intvalue</b>(<i></i>)
<p>
Gibt IO-Wert zurueck mit Beachtung byteorder/signed.
</p><dl>
<dt>Returns:</dt>
<dd>
IO-Wert als <class 'int'>
</dd>
</dl><a NAME="IntIO.set_intvalue" ID="IntIO.set_intvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IntIO.set_intvalue</h3>
<b>set_intvalue</b>(<i>value</i>)
<p>
Setzt IO mit Beachtung byteorder/signed.
</p><dl>
<dt><i>value</i></dt>
<dd>
<class 'int'> Wert
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="StructIO" ID="StructIO"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">StructIO</h2>
<p>
Klasse fuer den Zugriff auf Daten ueber ein definierten struct.
</p><p>
Sie stellt ueber struct die Werte in der gewuenschten Formatierung
bereit. Der struct-Formatwert wird bei der Instantiierung festgelegt.
</p><dl>
<dt><b>See Also:</b></dt>
<dd>
<a style="color:#0000FF" href="#IOBase">IOBase</a>
</dd>
</dl>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
IOBase
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>__slots__</td></tr><tr><td>defaultvalue</td></tr><tr><td>frm</td></tr><tr><td>signed</td></tr><tr><td>value</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Methods</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#StructIO.__init__">StructIO</a></td>
<td>Erstellt einen IO mit struct-Formatierung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#StructIO._get_frm">_get_frm</a></td>
<td>Ruft die struct Formatierung ab.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#StructIO._get_signed">_get_signed</a></td>
<td>Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#StructIO.get_structdefaultvalue">get_structdefaultvalue</a></td>
<td>Gibt die Defaultvalue mit struct Formatierung zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#StructIO.get_structvalue">get_structvalue</a></td>
<td>Gibt den Wert mit struct Formatierung zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#StructIO.set_structvalue">set_structvalue</a></td>
<td>Setzt den Wert mit struct Formatierung.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="StructIO.__init__" ID="StructIO.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
StructIO (Constructor)</h3>
<b>StructIO</b>(<i>parentio, name, frm, **kwargs</i>)
<p>
Erstellt einen IO mit struct-Formatierung.
</p><dl>
<dt><i>parentio</i></dt>
<dd>
ParentIO Objekt, welches ersetzt wird
</dd><dt><i>name</i></dt>
<dd>
Name des neuen IO
</dd><dt><i>frm</i></dt>
<dd>
struct formatierung (1 Zeichen) oder 'ANZAHLs' z.B. '8s'
</dd><dt><i>kwargs</i></dt>
<dd>
Weitere Parameter:
- bmk: Bezeichnung fuer IO
- bit: Registriert IO als <class 'bool'> am angegebenen Bit im Byte
- byteorder: Byteorder fuer IO, Standardwert vom ersetzter IO
- defaultvalue: Standardwert fuer IO, Standard vom ersetzter IO
</dd>
</dl><a NAME="StructIO._get_frm" ID="StructIO._get_frm"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
StructIO._get_frm</h3>
<b>_get_frm</b>(<i></i>)
<p>
Ruft die struct Formatierung ab.
</p><dl>
<dt>Returns:</dt>
<dd>
struct Formatierung
</dd>
</dl><a NAME="StructIO._get_signed" ID="StructIO._get_signed"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
StructIO._get_signed</h3>
<b>_get_signed</b>(<i></i>)
<p>
Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Vorzeichenbehaftet
</dd>
</dl><a NAME="StructIO.get_structdefaultvalue" ID="StructIO.get_structdefaultvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
StructIO.get_structdefaultvalue</h3>
<b>get_structdefaultvalue</b>(<i></i>)
<p>
Gibt die Defaultvalue mit struct Formatierung zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Defaultvalue vom Typ der struct-Formatierung
</dd>
</dl><a NAME="StructIO.get_structvalue" ID="StructIO.get_structvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
StructIO.get_structvalue</h3>
<b>get_structvalue</b>(<i></i>)
<p>
Gibt den Wert mit struct Formatierung zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
Wert vom Typ der struct-Formatierung
</dd>
</dl><a NAME="StructIO.set_structvalue" ID="StructIO.set_structvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
StructIO.set_structvalue</h3>
<b>set_structvalue</b>(<i>value</i>)
<p>
Setzt den Wert mit struct Formatierung.
</p><dl>
<dt><i>value</i></dt>
<dd>
Wert vom Typ der struct-Formatierung
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>