revpimodio2.modio

RevPiModIO Hauptklasse fuer piControl0 Zugriff.

Global Attributes

__author__
__copyright__
__license__

Classes

RevPiModIO Klasse fuer die Verwaltung der piCtory Konfiguration.
RevPiModIODriver Klasse um eigene Treiber fuer die virtuellen Devices zu erstellen.
RevPiModIOSelected Klasse fuer die Verwaltung einzelner Devices aus piCtory.

Functions

None


RevPiModIO

Klasse fuer die Verwaltung der piCtory Konfiguration.

Diese Klasse uebernimmt die gesamte Konfiguration aus piCtory und bilded die Devices und IOs ab. Sie uebernimmt die exklusive Verwaltung des Prozessabbilds und stellt sicher, dass die Daten synchron sind. Sollten nur einzelne Devices gesteuert werden, verwendet man RevPiModIOSelected() und uebergibt bei Instantiierung eine Liste mit Device Positionen oder Device Namen.

Derived from

object

Class Attributes

configrsc
cycletime
ioerrors
length
maxioerrors
monitoring
procimg
simulator

Class Methods

None

Methods

RevPiModIO Instantiiert die Grundfunktionen.
__del__ Zerstoert alle Klassen um aufzuraeumen.
__evt_exit Eventhandler fuer Programmende.
_configure Verarbeitet die piCtory Konfigurationsdatei.
_create_myfh Erstellt FileObject mit Pfad zum procimg.
_get_configrsc Getter function.
_get_cycletime Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus.
_get_ioerrors Getter function.
_get_length Getter function.
_get_maxioerrors Getter function.
_get_monitoring Getter function.
_get_procimg Getter function.
_get_simulator Getter function.
_gotioerror IOError Verwaltung fuer Prozessabbildzugriff.
_set_cycletime Setzt Aktualisierungsrate der Prozessabbild-Synchronisierung.
_set_maxioerrors Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.
autorefresh_all Setzt alle Devices in autorefresh Funktion.
cleanup Beendet autorefresh und alle Threads.
cycleloop Startet den Cycleloop.
exit Beendet mainloop() und optional autorefresh.
get_jconfigrsc Laedt die piCtory Konfiguration und erstellt ein .
handlesignalend Signalhandler fuer Programmende verwalten.
mainloop Startet den Mainloop mit Eventueberwachung.
readprocimg Einlesen aller Inputs aller/eines Devices vom Prozessabbild.
resetioerrors Setzt aktuellen IOError-Zaehler auf 0 zurueck.
setdefaultvalues Alle Outputbuffer werden auf die piCtory default Werte gesetzt.
syncoutputs Lesen aller aktuell gesetzten Outputs im Prozessabbild.
writeprocimg Schreiben aller Outputs aller Devices ins Prozessabbild.

Static Methods

None

RevPiModIO (Constructor)

RevPiModIO(autorefresh=False, monitoring=False, syncoutputs=True, procimg=None, configrsc=None, simulator=False)

Instantiiert die Grundfunktionen.

autorefresh
Wenn True, alle Devices zu autorefresh hinzufuegen
monitoring
In- und Outputs werden gelesen, niemals geschrieben
syncoutputs
Aktuell gesetzte Outputs vom Prozessabbild einlesen
procimg
Abweichender Pfad zum Prozessabbild
configrsc
Abweichender Pfad zur piCtory Konfigurationsdatei
simulator
Laedt das Modul als Simulator und vertauscht IOs

RevPiModIO.__del__

__del__()

Zerstoert alle Klassen um aufzuraeumen.

RevPiModIO.__evt_exit

__evt_exit(signum, sigframe)

Eventhandler fuer Programmende.

signum
Signalnummer
sigframe
Signalframe

RevPiModIO._configure

_configure(jconfigrsc)

Verarbeitet die piCtory Konfigurationsdatei.

RevPiModIO._create_myfh

_create_myfh()

Erstellt FileObject mit Pfad zum procimg. return FileObject

RevPiModIO._get_configrsc

_get_configrsc()

Getter function.

Returns:
Pfad der verwendeten piCtory Konfiguration

RevPiModIO._get_cycletime

_get_cycletime()

Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus.

Returns:
Millisekunden

RevPiModIO._get_ioerrors

_get_ioerrors()

Getter function.

Returns:
Aktuelle Anzahl gezaehlter Fehler

RevPiModIO._get_length

_get_length()

Getter function.

Returns:
Laenge in Bytes der Devices

RevPiModIO._get_maxioerrors

_get_maxioerrors()

Getter function.

Returns:
Anzahl erlaubte Fehler

RevPiModIO._get_monitoring

_get_monitoring()

Getter function.

Returns:
True, wenn als Monitoring gestartet

RevPiModIO._get_procimg

_get_procimg()

Getter function.

Returns:
Pfad des verwendeten Prozessabbilds

RevPiModIO._get_simulator

_get_simulator()

Getter function.

Returns:
True, wenn als Simulator gestartet

RevPiModIO._gotioerror

_gotioerror(action)

IOError Verwaltung fuer Prozessabbildzugriff.

RevPiModIO._set_cycletime

_set_cycletime(milliseconds)

Setzt Aktualisierungsrate der Prozessabbild-Synchronisierung.

milliseconds
in Millisekunden

RevPiModIO._set_maxioerrors

_set_maxioerrors(value)

Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.

value
Anzahl erlaubte Fehler

RevPiModIO.autorefresh_all

autorefresh_all()

Setzt alle Devices in autorefresh Funktion.

RevPiModIO.cleanup

cleanup()

Beendet autorefresh und alle Threads.

RevPiModIO.cycleloop

cycleloop(func, cycletime=None)

Startet den Cycleloop.

Der aktuelle Programmthread wird hier bis Aufruf von .exit() "gefangen". Er fuehrt nach jeder Aktualisierung des Prozessabbilds die uebergebene Funktion "func" aus und arbeitet sie ab. Waehrend der Ausfuehrung der Funktion wird das Prozessabbild nicht weiter aktualisiert. Die Inputs behalten bis zum Ende den aktuellen Wert. Gesetzte Outputs werden nach Ende des Funktionsdurchlaufs in das Prozessabbild geschrieben.

Verlassen wird der Cycleloop, wenn die aufgerufene Funktion einen Rueckgabewert nicht gleich None liefert, oder durch Aufruf von revpimodio.exit().

HINWEIS: Die Aktualisierungszeit und die Laufzeit der Funktion duerfen die eingestellte autorefresh Zeit, bzw. uebergebene cycletime nicht ueberschreiten!

Ueber das Attribut cycletime kann die Aktualisierungsrate fuer das Prozessabbild gesetzt werden.

func
Funktion, die ausgefuehrt werden soll
cycletime
Zykluszeit in Millisekunden, bei Nichtangabe wird aktuelle .cycletime Zeit verwendet - Standardwert 50 ms
Returns:
None

RevPiModIO.exit

exit(full=True)

Beendet mainloop() und optional autorefresh.

Wenn sich das Programm im mainloop() befindet, wird durch Aufruf von exit() die Kontrolle wieder an das Hauptprogramm zurueckgegeben.

Der Parameter full ist mit True vorbelegt und entfernt alle Devices aus dem autorefresh. Der Thread fuer die Prozessabbildsynchronisierung wird dann gestoppt und das Programm kann sauber beendet werden.

full
Entfernt auch alle Devices aus autorefresh

RevPiModIO.get_jconfigrsc

get_jconfigrsc()

Laedt die piCtory Konfiguration und erstellt ein .

Returns:
der piCtory Konfiguration

RevPiModIO.handlesignalend

handlesignalend(cleanupfunc=None)

Signalhandler fuer Programmende verwalten.

Wird diese Funktion aufgerufen, uebernimmt RevPiModIO die SignalHandler fuer SIGINT und SIGTERM. Diese werden Empfangen, wenn das Betriebssystem oder der Benutzer das Steuerungsprogramm sauber beenden will.

Die optionale Funktion "cleanupfunc" wird als letztes nach dem letzten Einlesen der Inputs ausgefuehrt. Dort gesetzte Outputs werden nach Ablauf der Funktion ein letztes Mal geschrieben. Gedacht ist dies fuer Aufraeumarbeiten, wie z.B. das abschalten der LEDs am RevPi-Core.

Nach einmaligem Empfangen eines der Signale und dem Beenden der RevPiModIO Thrads / Funktionen werden die SignalHandler wieder freigegeben.

cleanupfunc
Funktion wird nach dem letzten Lesen der Inputs ausgefuehrt, gefolgt vom letzten Schreiben der Outputs

RevPiModIO.mainloop

mainloop(blocking=True)

Startet den Mainloop mit Eventueberwachung.

Der aktuelle Programmthread wird hier bis Aufruf von RevPiDevicelist.exit() "gefangen" (es sei denn blocking=False). Er durchlaeuft die Eventueberwachung und prueft Aenderungen der, mit einem Event registrierten, IOs. Wird eine Veraenderung erkannt, fuert das Programm die dazugehoerigen Funktionen der Reihe nach aus.

Wenn der Parameter "blocking" mit False angegeben wird, aktiviert dies die Eventueberwachung und blockiert das Programm NICHT an der Stelle des Aufrufs. Eignet sich gut fuer die GUI Programmierung, wenn Events vom RevPi benoetigt werden, aber das Programm weiter ausgefuehrt werden soll.

blocking
Wenn False, blockiert das Programm NICHT
Returns:
None

RevPiModIO.readprocimg

readprocimg(device=None)

Einlesen aller Inputs aller/eines Devices vom Prozessabbild.

Devices mit aktiverem autorefresh werden ausgenommen!

device
nur auf einzelnes Device anwenden
Returns:
True, wenn Arbeiten an allen Devices erfolgreich waren

RevPiModIO.resetioerrors

resetioerrors()

Setzt aktuellen IOError-Zaehler auf 0 zurueck.

RevPiModIO.setdefaultvalues

setdefaultvalues(device=None)

Alle Outputbuffer werden auf die piCtory default Werte gesetzt.

device
nur auf einzelnes Device anwenden

RevPiModIO.syncoutputs

syncoutputs(device=None)

Lesen aller aktuell gesetzten Outputs im Prozessabbild.

Devices mit aktiverem autorefresh werden ausgenommen!

device
nur auf einzelnes Device anwenden
Returns:
True, wenn Arbeiten an allen Devices erfolgreich waren

RevPiModIO.writeprocimg

writeprocimg(device=None)

Schreiben aller Outputs aller Devices ins Prozessabbild.

Devices mit aktiverem autorefresh werden ausgenommen!

device
nur auf einzelnes Device anwenden
Returns:
True, wenn Arbeiten an allen Devices erfolgreich waren
Up


RevPiModIODriver

Klasse um eigene Treiber fuer die virtuellen Devices zu erstellen.

Mit dieser Klasse werden nur angegebene Virtuelle Devices mit RevPiModIO verwaltet. Bei Instantiierung werden automatisch die Inputs und Outputs verdreht, um das Schreiben der Inputs zu ermoeglichen. Die Daten koennen dann ueber logiCAD an den Devices abgerufen werden.

Derived from

RevPiModIOSelected

Class Attributes

None

Class Methods

None

Methods

RevPiModIODriver Instantiiert die Grundfunktionen.

Static Methods

None

RevPiModIODriver (Constructor)

RevPiModIODriver(virtdev, autorefresh=False, monitoring=False, syncoutputs=True, procimg=None, configrsc=None)

Instantiiert die Grundfunktionen.

Parameter 'monitoring' und 'simulator' stehen hier nicht zur Verfuegung, da diese automatisch gesetzt werden.

virtdev
Virtuelles Device oder mehrere als
See Also:
RevPiModIO.__init__(...)
Up


RevPiModIOSelected

Klasse fuer die Verwaltung einzelner Devices aus piCtory.

Diese Klasse uebernimmt nur angegebene Devices der piCtory Konfiguration und bilded sie inkl. IOs ab. Sie uebernimmt die exklusive Verwaltung des Adressbereichs im Prozessabbild an dem sich die angegebenen Devices befinden und stellt sicher, dass die Daten synchron sind.

Derived from

RevPiModIO

Class Attributes

None

Class Methods

None

Methods

RevPiModIOSelected Instantiiert nur fuer angegebene Devices die Grundfunktionen.

Static Methods

None

RevPiModIOSelected (Constructor)

RevPiModIOSelected(deviceselection, autorefresh=False, monitoring=False, syncoutputs=True, procimg=None, configrsc=None, simulator=False)

Instantiiert nur fuer angegebene Devices die Grundfunktionen.

Der Parameter deviceselection kann eine einzelne Device Position / einzelner Device Name sein oder eine Liste mit mehreren Positionen / Namen

deviceselection
Positionsnummer oder Devicename
See Also:
RevPiModIO.__init__(...)
Up