RevPiModIO Hauptklasse fuer piControl0 Zugriff.
| __author__ |
| __copyright__ |
| __license__ |
| 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. |
| None |
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.
| __slots__ |
| configrsc |
| cycletime |
| debug |
| ioerrors |
| length |
| maxioerrors |
| monitoring |
| procimg |
| replace_io_file |
| simulator |
| None |
| RevPiModIO | Instantiiert die Grundfunktionen. |
| __del__ | Zerstoert alle Klassen um aufzuraeumen. |
| __evt_exit | Eventhandler fuer Programmende. |
| _configure | Verarbeitet die piCtory Konfigurationsdatei. |
| _configure_replace_io | Importiert ersetzte IOs in diese Instanz. |
| _create_myfh | Erstellt FileObject mit Pfad zum procimg. |
| _get_configrsc | Getter function. |
| _get_cpreplaceio | Laed die replace_io_file Konfiguration und verarbeitet sie. |
| _get_cycletime | Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus. |
| _get_debug | Gibt Status des Debugflags zurueck. |
| _get_ioerrors | Getter function. |
| _get_length | Getter function. |
| _get_maxioerrors | Getter function. |
| _get_monitoring | Getter function. |
| _get_procimg | Getter function. |
| _get_replace_io_file | Gibt Pfad zur verwendeten replace IO Datei aus. |
| _get_simulator | Getter function. |
| _gotioerror | IOError Verwaltung fuer Prozessabbildzugriff. |
| _set_cycletime | Setzt Aktualisierungsrate der Prozessabbild-Synchronisierung. |
| _set_debug | Setzt debugging Status um mehr Meldungen zu erhalten oder nicht. |
| _set_maxioerrors | Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff. |
| _simulate_ioctl | Simuliert IOCTL Funktionen auf procimg Datei. |
| autorefresh_all | Setzt alle Devices in autorefresh Funktion. |
| cleanup | Beendet autorefresh und alle Threads. |
| cycleloop | Startet den Cycleloop. |
| exit | Beendet mainloop() und optional autorefresh. |
| export_replaced_ios | Exportiert ersetzte IOs dieser Instanz. |
| 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. |
| None |
Instantiiert die Grundfunktionen.
Zerstoert alle Klassen um aufzuraeumen.
Eventhandler fuer Programmende.
Verarbeitet die piCtory Konfigurationsdatei.
Importiert ersetzte IOs in diese Instanz.
Importiert ersetzte IOs, welche vorher mit .export_replaced_ios(...) in eine Datei exportiert worden sind. Diese IOs werden in dieser Instanz wiederhergestellt.
Erstellt FileObject mit Pfad zum procimg. return FileObject
Getter function.
Laed die replace_io_file Konfiguration und verarbeitet sie.
Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus.
Gibt Status des Debugflags zurueck.
Getter function.
Getter function.
Getter function.
Getter function.
Getter function.
Gibt Pfad zur verwendeten replace IO Datei aus.
Getter function.
IOError Verwaltung fuer Prozessabbildzugriff.
Setzt Aktualisierungsrate der Prozessabbild-Synchronisierung.
Setzt debugging Status um mehr Meldungen zu erhalten oder nicht.
Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.
Simuliert IOCTL Funktionen auf procimg Datei.
Setzt alle Devices in autorefresh Funktion.
Beendet autorefresh und alle Threads.
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 (z.B. return True), oder durch Aufruf von .exit().
HINWEIS: Die Aktualisierungszeit und die Laufzeit der Funktion duerfen die eingestellte autorefresh Zeit, bzw. uebergebene cycletime nicht ueberschreiten!
Ueber den Parameter cycletime wird die gewuenschte Zukluszeit der uebergebenen Funktion gesetzt. Der Standardwert betraegt 50 Millisekunden, in denen das Prozessabild eingelesen, die uebergebene Funktion ausgefuert und das Prozessabbild geschrieben wird.
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.
Exportiert ersetzte IOs dieser Instanz.
Exportiert alle ersetzten IOs, welche mit .replace_io(...) angelegt wurden. Die Datei kann z.B. fuer RevPiPyLoad verwndet werden um Daten in den neuen Formaten per MQTT zu uebertragen oder mit RevPiPyControl anzusehen.
Laedt die piCtory Konfiguration und erstellt ein
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.
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.
Einlesen aller Inputs aller/eines Devices vom Prozessabbild.
Devices mit aktiverem autorefresh werden ausgenommen!
Setzt aktuellen IOError-Zaehler auf 0 zurueck.
Alle Outputbuffer werden auf die piCtory default Werte gesetzt.
Lesen aller aktuell gesetzten Outputs im Prozessabbild.
Devices mit aktiverem autorefresh werden ausgenommen!
Schreiben aller Outputs aller Devices ins Prozessabbild.
Devices mit aktiverem autorefresh werden ausgenommen!
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.
| __slots__ |
| None |
| RevPiModIODriver | Instantiiert die Grundfunktionen. |
| None |
Instantiiert die Grundfunktionen.
Parameter 'monitoring' und 'simulator' stehen hier nicht zur Verfuegung, da diese automatisch gesetzt werden.
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.
| __slots__ |
| None |
| RevPiModIOSelected | Instantiiert nur fuer angegebene Devices die Grundfunktionen. |
| None |
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