revpimodio2.io

RevPiModIO Modul fuer die Verwaltung der IOs.

Global Attributes

__author__
__copyright__
__license__

Classes

DeadIO Klasse, mit der ersetzte IOs verwaltet werden.
IOBase Basisklasse fuer alle IO-Objekte.
IOEvent Basisklasse fuer IO-Events.
IOList Basisklasse fuer direkten Zugriff auf IO Objekte.
IntIO Klasse fuer den Zugriff auf die Daten mit Konvertierung in int.
StructIO Klasse fuer den Zugriff auf Daten ueber ein definierten struct.

Functions

None


DeadIO

Klasse, mit der ersetzte IOs verwaltet werden.

Derived from

object

Class Attributes

_parentdevice

Class Methods

None

Methods

DeadIO Instantiierung der DeadIO-Klasse.
replace_io Stellt Funktion fuer weiter Bit-Ersetzungen bereit.

Static Methods

None

DeadIO (Constructor)

DeadIO(deadio)

Instantiierung der DeadIO-Klasse.

deadio
IO, der ersetzt wurde

DeadIO.replace_io

replace_io(name, frm, **kwargs)

Stellt Funktion fuer weiter Bit-Ersetzungen bereit.

See Also:
replace_io(...)
Up


IOBase

Basisklasse fuer alle IO-Objekte.

Die Basisfunktionalitaet ermoeglicht das Lesen und Schreiben der Werte als oder . Dies entscheidet sich bei der Instantiierung. Wenn eine Bittadresse angegeben wird, werden -Werte erwartet und zurueckgegeben, ansonsten .

Diese Klasse dient als Basis fuer andere IO-Klassen mit denen die Werte auch als verwendet werden koennen.

Derived from

object

Class Attributes

address
byteorder
defaultvalue
length
name
type
value

Class Methods

None

Methods

IOBase Instantiierung der IOBase-Klasse.
__bool__ -Wert der Klasse.
__len__ Gibt die Bytelaenge des IO zurueck.
__reg_xevent Verwaltet reg_event und reg_timerevent.
__str__ -Wert der Klasse.
_get_address Gibt die absolute Byteadresse im Prozessabbild zurueck.
_get_byteorder Gibt konfigurierte Byteorder zurueck.
_get_iotype Gibt io type zurueck.
get_defaultvalue Gibt die Defaultvalue von piCtory zurueck.
get_value Gibt den Wert des IOs zurueck.
reg_event Registriert fuer IO ein Event bei der Eventueberwachung.
reg_timerevent Registriert fuer IO einen Timer, welcher nach delay func ausfuehrt.
replace_io Ersetzt bestehenden IO mit Neuem.
set_value Setzt den Wert des IOs.
unreg_event Entfernt ein Event aus der Eventueberwachung.
wait Wartet auf Wertaenderung eines IOs.

Static Methods

None

IOBase (Constructor)

IOBase(parentdevice, valuelist, iotype, byteorder, signed)

Instantiierung der IOBase-Klasse.

parentdevice
Parentdevice auf dem der IO liegt
valuelist
Datenliste fuer Instantiierung ["name","defval","bitlen","startaddrdev",exp,"idx","bmk","bitaddr"]
iotype
Wert
byteorder
Byteorder 'little'/'big' fuer Berechnung
sigend
Intberechnung mit Vorzeichen durchfuehren

IOBase.__bool__

__bool__()

-Wert der Klasse.

Returns:
Nur False wenn False oder 0 sonst True

IOBase.__len__

__len__()

Gibt die Bytelaenge des IO zurueck.

Returns:
Bytelaenge des IO - 0 bei BITs

IOBase.__reg_xevent

__reg_xevent(func, delay, edge, as_thread, overwrite)

Verwaltet reg_event und reg_timerevent.

func
Funktion die bei Aenderung aufgerufen werden soll
delay
Verzoegerung in ms zum Ausloesen - auch bei Wertaenderung
edge
Ausfuehren bei RISING, FALLING or BOTH Wertaenderung
as_thread
Bei True, Funktion als EventCallback-Thread ausfuehren
overwrite
Wenn True, wird Event bei ueberschrieben

IOBase.__str__

__str__()

-Wert der Klasse.

Returns:
Namen des IOs

IOBase._get_address

_get_address()

Gibt die absolute Byteadresse im Prozessabbild zurueck.

Returns:
Absolute Byteadresse

IOBase._get_byteorder

_get_byteorder()

Gibt konfigurierte Byteorder zurueck.

Returns:
Byteorder

IOBase._get_iotype

_get_iotype()

Gibt io type zurueck.

Returns:
io type

IOBase.get_defaultvalue

get_defaultvalue()

Gibt die Defaultvalue von piCtory zurueck.

Returns:
Defaultvalue als oder

IOBase.get_value

get_value()

Gibt den Wert des IOs zurueck.

Returns:
IO-Wert als oder

IOBase.reg_event

reg_event(func, delay=0, edge=BOTH, as_thread=False)

Registriert fuer IO ein Event bei der Eventueberwachung.

Die uebergebene Funktion wird ausgefuehrt, wenn sich der IO Wert aendert. Mit Angabe von optionalen Parametern kann das Ausloeseverhalten gesteuert werden.

HINWEIS: Die delay-Zeit muss in die .cycletime passen, ist dies nicht der Fall, wird IMMER aufgerundet!

func
Funktion die bei Aenderung aufgerufen werden soll
delay
Verzoegerung in ms zum Ausloesen wenn Wert gleich bleibt
edge
Ausfuehren bei RISING, FALLING or BOTH Wertaenderung
as_thread
Bei True, Funktion als EventCallback-Thread ausfuehren

IOBase.reg_timerevent

reg_timerevent(func, delay, edge=BOTH, as_thread=False)

Registriert fuer IO einen Timer, welcher nach delay func ausfuehrt.

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.

HINWEIS: Die delay-Zeit muss in die .cycletime passen, ist dies nicht der Fall, wird IMMER aufgerundet!

func
Funktion die bei Aenderung aufgerufen werden soll
delay
Verzoegerung in ms zum Ausloesen - auch bei Wertaenderung
edge
Ausfuehren bei RISING, FALLING or BOTH Wertaenderung
as_thread
Bei True, Funktion als EventCallback-Thread ausfuehren

IOBase.replace_io

replace_io(name, frm, **kwargs)

Ersetzt bestehenden IO mit Neuem.

Wenn die kwargs fuer byteorder und defaultvalue nicht angegeben werden, uebernimmt das System die Daten aus dem ersetzten IO.

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'!

Wenn durch die Formatierung mehr Bytes benoetigt werden, als der urspruenglige IO hat, werden die nachfolgenden IOs ebenfalls verwendet und entfernt.

name
Name des neuen Inputs
frm
struct formatierung (1 Zeichen) oder 'ANZAHLs' z.B. '8s'
kwargs
Weitere Parameter: - bmk: interne Bezeichnung fuer IO - bit: Registriert IO als 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
See Also:
Python3 struct

IOBase.set_value

set_value(value)

Setzt den Wert des IOs.

value
IO-Wert als oder

IOBase.unreg_event

unreg_event(func=None, edge=None)

Entfernt ein Event aus der Eventueberwachung.

func
Nur Events mit angegebener Funktion
edge
Nur Events mit angegebener Funktion und angegebener Edge

IOBase.wait

wait(edge=BOTH, exitevent=None, okvalue=None, timeout=0)

Wartet auf Wertaenderung eines IOs.

Die Wertaenderung wird immer uerberprueft, wenn fuer Devices mit aktiviertem autorefresh neue Daten gelesen wurden.

Bei Wertaenderung, wird das Warten mit 0 als Rueckgabewert beendet.

HINWEIS: Wenn keine neuen Daten liefert, wird bis in die Ewigkeit gewartet (nicht bei Angabe von "timeout").

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.

Als exitevent kann ein -Objekt uebergeben werden, welches das Warten bei is_set() sofort mit 1 als Rueckgabewert beendet.

Wenn der Wert okvalue an dem IO fuer das Warten anliegt, wird das Warten sofort mit -1 als Rueckgabewert beendet.

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!)

edge
Flanke RISING, FALLING, BOTH die eintreten muss
exitevent
fuer vorzeitiges Beenden
okvalue
IO-Wert, bei dem das Warten sofort beendet wird
timeout
Zeit in ms nach der abgebrochen wird
Returns:
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
Up


IOEvent

Basisklasse fuer IO-Events.

Derived from

object

Class Attributes

None

Class Methods

None

Methods

IOEvent Init IOEvent class.

Static Methods

None

IOEvent (Constructor)

IOEvent(func, edge, as_thread, delay, overwrite)

Init IOEvent class.

Up


IOList

Basisklasse fuer direkten Zugriff auf IO Objekte.

Derived from

object

Class Attributes

None

Class Methods

None

Methods

IOList Init IOList class.
__contains__ Prueft ob IO existiert.
__delattr__ Entfernt angegebenen IO.
__getattr__ Verwaltet geloeschte IOs (Attribute, die nicht existieren).
__getitem__ Ruft angegebenen IO ab.
__iter__ Gibt Iterator aller IOs zurueck.
__len__ Gibt die Anzahl aller IOs zurueck.
__private_replace_oldio_with_newio Ersetzt bestehende IOs durch den neu Registrierten.
__setattr__ Verbietet aus Leistungsguenden das direkte Setzen von Attributen.
_private_register_new_io_object Registriert neues IO Objekt unabhaenging von __setattr__.

Static Methods

None

IOList (Constructor)

IOList()

Init IOList class.

IOList.__contains__

__contains__(key)

Prueft ob IO existiert.

key
IO-Name oder Bytenummer
Returns:
True, wenn IO vorhanden / Byte belegt

IOList.__delattr__

__delattr__(key)

Entfernt angegebenen IO.

key
IO zum entfernen

IOList.__getattr__

__getattr__(key)

Verwaltet geloeschte IOs (Attribute, die nicht existieren).

key
Name oder Byte eines alten IOs
Returns:
Alten IO, wenn in Ref-Listen

IOList.__getitem__

__getitem__(key)

Ruft angegebenen IO ab.

Wenn der Key ist, wird ein einzelner IO geliefert. Wird der Key als uebergeben, wird eine geliefert mit 0, 1 oder 8 Eintraegen. Wird als Key gegeben, werden die Listen in einer Liste zurueckgegeben.

key
IO Name als oder Byte als .
Returns:
IO Objekt oder Liste der IOs

IOList.__iter__

__iter__()

Gibt Iterator aller IOs zurueck.

Returns:
Iterator aller IOs

IOList.__len__

__len__()

Gibt die Anzahl aller IOs zurueck.

Returns:
Anzahl aller IOs

IOList.__private_replace_oldio_with_newio

__private_replace_oldio_with_newio(io)

Ersetzt bestehende IOs durch den neu Registrierten.

io
Neuer IO der eingefuegt werden soll

IOList.__setattr__

__setattr__(key, value)

Verbietet aus Leistungsguenden das direkte Setzen von Attributen.

IOList._private_register_new_io_object

_private_register_new_io_object(new_io)

Registriert neues IO Objekt unabhaenging von __setattr__.

new_io
Neues IO Objekt
Up


IntIO

Klasse fuer den Zugriff auf die Daten mit Konvertierung in int.

Diese Klasse erweitert die Funktion von um Funktionen, ueber die mit Werten gearbeitet werden kann. Fuer die Umwandlung koennen 'Byteorder' (Default 'little') und 'signed' (Default False) als Parameter gesetzt werden.

See Also:
IOBase

Derived from

IOBase

Class Attributes

byteorder
defaultvalue
signed
value

Class Methods

None

Methods

__int__ Gibt IO-Wert zurueck mit Beachtung byteorder/signed.
_get_signed Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.
_set_byteorder Setzt Byteorder fuer Umwandlung.
_set_signed Left fest, ob der Wert Vorzeichenbehaftet behandelt werden soll.
get_intdefaultvalue Gibt die Defaultvalue als zurueck.
get_intvalue Gibt IO-Wert zurueck mit Beachtung byteorder/signed.
set_intvalue Setzt IO mit Beachtung byteorder/signed.

Static Methods

None

IntIO.__int__

__int__()

Gibt IO-Wert zurueck mit Beachtung byteorder/signed.

Returns:
IO-Wert als

IntIO._get_signed

_get_signed()

Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.

Returns:
True, wenn Vorzeichenbehaftet

IntIO._set_byteorder

_set_byteorder(value)

Setzt Byteorder fuer Umwandlung.

value
'little' or 'big'

IntIO._set_signed

_set_signed(value)

Left fest, ob der Wert Vorzeichenbehaftet behandelt werden soll.

value
True, wenn mit Vorzeichen behandel

IntIO.get_intdefaultvalue

get_intdefaultvalue()

Gibt die Defaultvalue als zurueck.

Returns:
Defaultvalue

IntIO.get_intvalue

get_intvalue()

Gibt IO-Wert zurueck mit Beachtung byteorder/signed.

Returns:
IO-Wert als

IntIO.set_intvalue

set_intvalue(value)

Setzt IO mit Beachtung byteorder/signed.

value
Wert
Up


StructIO

Klasse fuer den Zugriff auf Daten ueber ein definierten struct.

Sie stellt ueber struct die Werte in der gewuenschten Formatierung bereit. Der struct-Formatwert wird bei der Instantiierung festgelegt.

See Also:
IOBase

Derived from

IOBase

Class Attributes

defaultvalue
frm
signed
value

Class Methods

None

Methods

StructIO Erstellt einen IO mit struct-Formatierung.
_get_frm Ruft die struct Formatierung ab.
_get_signed Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.
get_structdefaultvalue Gibt die Defaultvalue mit struct Formatierung zurueck.
get_structvalue Gibt den Wert mit struct Formatierung zurueck.
set_structvalue Setzt den Wert mit struct Formatierung.

Static Methods

None

StructIO (Constructor)

StructIO(parentio, name, frm, **kwargs)

Erstellt einen IO mit struct-Formatierung.

parentio
ParentIO Objekt, welches ersetzt wird
name
Name des neuen IO
frm
struct formatierung (1 Zeichen) oder 'ANZAHLs' z.B. '8s'
kwargs
Weitere Parameter: - bmk: Bezeichnung fuer IO - bit: Registriert IO als am angegebenen Bit im Byte - byteorder: Byteorder fuer IO, Standardwert vom ersetzter IO - defaultvalue: Standardwert fuer IO, Standard vom ersetzter IO

StructIO._get_frm

_get_frm()

Ruft die struct Formatierung ab.

Returns:
struct Formatierung

StructIO._get_signed

_get_signed()

Ruft ab, ob der Wert Vorzeichenbehaftet behandelt werden soll.

Returns:
True, wenn Vorzeichenbehaftet

StructIO.get_structdefaultvalue

get_structdefaultvalue()

Gibt die Defaultvalue mit struct Formatierung zurueck.

Returns:
Defaultvalue vom Typ der struct-Formatierung

StructIO.get_structvalue

get_structvalue()

Gibt den Wert mit struct Formatierung zurueck.

Returns:
Wert vom Typ der struct-Formatierung

StructIO.set_structvalue

set_structvalue(value)

Setzt den Wert mit struct Formatierung.

value
Wert vom Typ der struct-Formatierung
Up