mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 13:53:53 +01:00
no_warn parameter aus mainloop entfernt (jetzt über debug einstellbar) Kein Warnungsspam mehr - debug ist True als Vorbelegung
799 lines
27 KiB
HTML
799 lines
27 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<title>revpimodio2.modio</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.modio</h1>
|
|
<p>
|
|
RevPiModIO Hauptklasse fuer piControl0 Zugriff.
|
|
</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="#RevPiModIO">RevPiModIO</a></td>
|
|
<td>Klasse fuer die Verwaltung der piCtory Konfiguration.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIODriver">RevPiModIODriver</a></td>
|
|
<td>Klasse um eigene Treiber fuer die virtuellen Devices zu erstellen.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIOSelected">RevPiModIOSelected</a></td>
|
|
<td>Klasse fuer die Verwaltung einzelner Devices aus piCtory.</td>
|
|
</tr>
|
|
</table>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
Functions</h3>
|
|
<table>
|
|
<tr><td>None</td></tr>
|
|
</table>
|
|
<hr /><hr />
|
|
<a NAME="RevPiModIO" ID="RevPiModIO"></a>
|
|
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiModIO</h2>
|
|
<p>
|
|
Klasse fuer die Verwaltung der piCtory Konfiguration.
|
|
</p><p>
|
|
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.
|
|
</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>configrsc</td></tr><tr><td>cycletime</td></tr><tr><td>debug</td></tr><tr><td>ioerrors</td></tr><tr><td>length</td></tr><tr><td>maxioerrors</td></tr><tr><td>monitoring</td></tr><tr><td>procimg</td></tr><tr><td>replace_io_file</td></tr><tr><td>simulator</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="#RevPiModIO.__init__">RevPiModIO</a></td>
|
|
<td>Instantiiert die Grundfunktionen.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.__del__">__del__</a></td>
|
|
<td>Zerstoert alle Klassen um aufzuraeumen.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.__evt_exit">__evt_exit</a></td>
|
|
<td>Eventhandler fuer Programmende.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._configure">_configure</a></td>
|
|
<td>Verarbeitet die piCtory Konfigurationsdatei.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._configure_replace_io">_configure_replace_io</a></td>
|
|
<td>Importiert ersetzte IOs in diese Instanz.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._create_myfh">_create_myfh</a></td>
|
|
<td>Erstellt FileObject mit Pfad zum procimg.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_configrsc">_get_configrsc</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_cpreplaceio">_get_cpreplaceio</a></td>
|
|
<td>Laed die replace_io_file Konfiguration und verarbeitet sie.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_cycletime">_get_cycletime</a></td>
|
|
<td>Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_debug">_get_debug</a></td>
|
|
<td>Gibt Status des Debugflags zurueck.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_ioerrors">_get_ioerrors</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_length">_get_length</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_maxioerrors">_get_maxioerrors</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_monitoring">_get_monitoring</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_procimg">_get_procimg</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_replace_io_file">_get_replace_io_file</a></td>
|
|
<td>Gibt Pfad zur verwendeten replace IO Datei aus.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._get_simulator">_get_simulator</a></td>
|
|
<td>Getter function.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._gotioerror">_gotioerror</a></td>
|
|
<td>IOError Verwaltung fuer Prozessabbildzugriff.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._set_cycletime">_set_cycletime</a></td>
|
|
<td>Setzt Aktualisierungsrate der Prozessabbild-Synchronisierung.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._set_debug">_set_debug</a></td>
|
|
<td>Setzt debugging Status um mehr Meldungen zu erhalten oder nicht.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._set_maxioerrors">_set_maxioerrors</a></td>
|
|
<td>Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO._simulate_ioctl">_simulate_ioctl</a></td>
|
|
<td>Simuliert IOCTL Funktionen auf procimg Datei.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.autorefresh_all">autorefresh_all</a></td>
|
|
<td>Setzt alle Devices in autorefresh Funktion.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.cleanup">cleanup</a></td>
|
|
<td>Beendet autorefresh und alle Threads.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.cycleloop">cycleloop</a></td>
|
|
<td>Startet den Cycleloop.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.exit">exit</a></td>
|
|
<td>Beendet mainloop() und optional autorefresh.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.export_replaced_ios">export_replaced_ios</a></td>
|
|
<td>Exportiert ersetzte IOs dieser Instanz.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.get_jconfigrsc">get_jconfigrsc</a></td>
|
|
<td>Laedt die piCtory Konfiguration und erstellt ein <class 'dict'>.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.handlesignalend">handlesignalend</a></td>
|
|
<td>Signalhandler fuer Programmende verwalten.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.mainloop">mainloop</a></td>
|
|
<td>Startet den Mainloop mit Eventueberwachung.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.readprocimg">readprocimg</a></td>
|
|
<td>Einlesen aller Inputs aller/eines Devices vom Prozessabbild.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.resetioerrors">resetioerrors</a></td>
|
|
<td>Setzt aktuellen IOError-Zaehler auf 0 zurueck.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.setdefaultvalues">setdefaultvalues</a></td>
|
|
<td>Alle Outputbuffer werden auf die piCtory default Werte gesetzt.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.syncoutputs">syncoutputs</a></td>
|
|
<td>Lesen aller aktuell gesetzten Outputs im Prozessabbild.</td>
|
|
</tr><tr>
|
|
<td><a style="color:#0000FF" href="#RevPiModIO.writeprocimg">writeprocimg</a></td>
|
|
<td>Schreiben aller Outputs aller Devices ins Prozessabbild.</td>
|
|
</tr>
|
|
</table>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
Static Methods</h3>
|
|
<table>
|
|
<tr><td>None</td></tr>
|
|
</table>
|
|
<a NAME="RevPiModIO.__init__" ID="RevPiModIO.__init__"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO (Constructor)</h3>
|
|
<b>RevPiModIO</b>(<i>autorefresh=False, monitoring=False, syncoutputs=True, procimg=None, configrsc=None, simulator=False, debug=True, replace_io_file=None, direct_output=False</i>)
|
|
<p>
|
|
Instantiiert die Grundfunktionen.
|
|
</p><dl>
|
|
<dt><i>autorefresh</i></dt>
|
|
<dd>
|
|
Wenn True, alle Devices zu autorefresh hinzufuegen
|
|
</dd><dt><i>monitoring</i></dt>
|
|
<dd>
|
|
In- und Outputs werden gelesen, niemals geschrieben
|
|
</dd><dt><i>syncoutputs</i></dt>
|
|
<dd>
|
|
Aktuell gesetzte Outputs vom Prozessabbild einlesen
|
|
</dd><dt><i>procimg</i></dt>
|
|
<dd>
|
|
Abweichender Pfad zum Prozessabbild
|
|
</dd><dt><i>configrsc</i></dt>
|
|
<dd>
|
|
Abweichender Pfad zur piCtory Konfigurationsdatei
|
|
</dd><dt><i>simulator</i></dt>
|
|
<dd>
|
|
Laedt das Modul als Simulator und vertauscht IOs
|
|
</dd><dt><i>debug</i></dt>
|
|
<dd>
|
|
Gibt alle Warnungen inkl. Zyklusprobleme aus
|
|
</dd><dt><i>replace_io_file</i></dt>
|
|
<dd>
|
|
Replace IO Konfiguration aus Datei laden
|
|
</dd><dt><i>direct_output</i></dt>
|
|
<dd>
|
|
Write outputs immediately to process image (slow)
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.__del__" ID="RevPiModIO.__del__"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.__del__</h3>
|
|
<b>__del__</b>(<i></i>)
|
|
<p>
|
|
Zerstoert alle Klassen um aufzuraeumen.
|
|
</p><a NAME="RevPiModIO.__evt_exit" ID="RevPiModIO.__evt_exit"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.__evt_exit</h3>
|
|
<b>__evt_exit</b>(<i>signum, sigframe</i>)
|
|
<p>
|
|
Eventhandler fuer Programmende.
|
|
</p><dl>
|
|
<dt><i>signum</i></dt>
|
|
<dd>
|
|
Signalnummer
|
|
</dd><dt><i>sigframe</i></dt>
|
|
<dd>
|
|
Signalframe
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._configure" ID="RevPiModIO._configure"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._configure</h3>
|
|
<b>_configure</b>(<i>jconfigrsc</i>)
|
|
<p>
|
|
Verarbeitet die piCtory Konfigurationsdatei.
|
|
</p><dl>
|
|
<dt><i>jconfigrsc:</i></dt>
|
|
<dd>
|
|
Data to build IOs as <class 'dict'> of JSON
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._configure_replace_io" ID="RevPiModIO._configure_replace_io"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._configure_replace_io</h3>
|
|
<b>_configure_replace_io</b>(<i>creplaceio</i>)
|
|
<p>
|
|
Importiert ersetzte IOs in diese Instanz.
|
|
</p><p>
|
|
Importiert ersetzte IOs, welche vorher mit .export_replaced_ios(...)
|
|
in eine Datei exportiert worden sind. Diese IOs werden in dieser
|
|
Instanz wiederhergestellt.
|
|
</p><dl>
|
|
<dt><i>ireplaceio:</i></dt>
|
|
<dd>
|
|
Data to replace ios as <class 'ConfigParser'>
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._create_myfh" ID="RevPiModIO._create_myfh"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._create_myfh</h3>
|
|
<b>_create_myfh</b>(<i></i>)
|
|
<p>
|
|
Erstellt FileObject mit Pfad zum procimg.
|
|
return FileObject
|
|
</p><a NAME="RevPiModIO._get_configrsc" ID="RevPiModIO._get_configrsc"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_configrsc</h3>
|
|
<b>_get_configrsc</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Pfad der verwendeten piCtory Konfiguration
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_cpreplaceio" ID="RevPiModIO._get_cpreplaceio"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_cpreplaceio</h3>
|
|
<b>_get_cpreplaceio</b>(<i></i>)
|
|
<p>
|
|
Laed die replace_io_file Konfiguration und verarbeitet sie.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
<class 'ConfigParser'> der replace io daten
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_cycletime" ID="RevPiModIO._get_cycletime"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_cycletime</h3>
|
|
<b>_get_cycletime</b>(<i></i>)
|
|
<p>
|
|
Gibt Aktualisierungsrate in ms der Prozessabbildsynchronisierung aus.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Millisekunden
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_debug" ID="RevPiModIO._get_debug"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_debug</h3>
|
|
<b>_get_debug</b>(<i></i>)
|
|
<p>
|
|
Gibt Status des Debugflags zurueck.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Status des Debugflags
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_ioerrors" ID="RevPiModIO._get_ioerrors"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_ioerrors</h3>
|
|
<b>_get_ioerrors</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Aktuelle Anzahl gezaehlter Fehler
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_length" ID="RevPiModIO._get_length"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_length</h3>
|
|
<b>_get_length</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Laenge in Bytes der Devices
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_maxioerrors" ID="RevPiModIO._get_maxioerrors"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_maxioerrors</h3>
|
|
<b>_get_maxioerrors</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Anzahl erlaubte Fehler
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_monitoring" ID="RevPiModIO._get_monitoring"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_monitoring</h3>
|
|
<b>_get_monitoring</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
True, wenn als Monitoring gestartet
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_procimg" ID="RevPiModIO._get_procimg"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_procimg</h3>
|
|
<b>_get_procimg</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Pfad des verwendeten Prozessabbilds
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_replace_io_file" ID="RevPiModIO._get_replace_io_file"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_replace_io_file</h3>
|
|
<b>_get_replace_io_file</b>(<i></i>)
|
|
<p>
|
|
Gibt Pfad zur verwendeten replace IO Datei aus.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
Pfad zur replace IO Datei
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._get_simulator" ID="RevPiModIO._get_simulator"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._get_simulator</h3>
|
|
<b>_get_simulator</b>(<i></i>)
|
|
<p>
|
|
Getter function.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
True, wenn als Simulator gestartet
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._gotioerror" ID="RevPiModIO._gotioerror"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._gotioerror</h3>
|
|
<b>_gotioerror</b>(<i>action, e=None, show_warn=True</i>)
|
|
<p>
|
|
IOError Verwaltung fuer Prozessabbildzugriff.
|
|
</p><dl>
|
|
<dt><i>action</i></dt>
|
|
<dd>
|
|
Zusatzinformationen zum loggen
|
|
</dd><dt><i>e</i></dt>
|
|
<dd>
|
|
Exception to log if debug is enabled
|
|
</dd><dt><i>show_warn</i></dt>
|
|
<dd>
|
|
Warnung anzeigen
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._set_cycletime" ID="RevPiModIO._set_cycletime"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._set_cycletime</h3>
|
|
<b>_set_cycletime</b>(<i>milliseconds</i>)
|
|
<p>
|
|
Setzt Aktualisierungsrate der Prozessabbild-Synchronisierung.
|
|
</p><dl>
|
|
<dt><i>milliseconds</i></dt>
|
|
<dd>
|
|
<class 'int'> in Millisekunden
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._set_debug" ID="RevPiModIO._set_debug"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._set_debug</h3>
|
|
<b>_set_debug</b>(<i>value</i>)
|
|
<p>
|
|
Setzt debugging Status um mehr Meldungen zu erhalten oder nicht.
|
|
</p><dl>
|
|
<dt><i>value</i></dt>
|
|
<dd>
|
|
Wenn True, werden umfangreiche Medungen angezeigt
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._set_maxioerrors" ID="RevPiModIO._set_maxioerrors"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._set_maxioerrors</h3>
|
|
<b>_set_maxioerrors</b>(<i>value</i>)
|
|
<p>
|
|
Setzt Anzahl der maximal erlaubten Fehler bei Prozessabbildzugriff.
|
|
</p><dl>
|
|
<dt><i>value</i></dt>
|
|
<dd>
|
|
Anzahl erlaubte Fehler
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO._simulate_ioctl" ID="RevPiModIO._simulate_ioctl"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO._simulate_ioctl</h3>
|
|
<b>_simulate_ioctl</b>(<i>request, arg=b''</i>)
|
|
<p>
|
|
Simuliert IOCTL Funktionen auf procimg Datei.
|
|
</p><dl>
|
|
<dt><i>request</i></dt>
|
|
<dd>
|
|
IO Request
|
|
</dd><dt><i>arg:</i></dt>
|
|
<dd>
|
|
Request argument
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.autorefresh_all" ID="RevPiModIO.autorefresh_all"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.autorefresh_all</h3>
|
|
<b>autorefresh_all</b>(<i></i>)
|
|
<p>
|
|
Setzt alle Devices in autorefresh Funktion.
|
|
</p><a NAME="RevPiModIO.cleanup" ID="RevPiModIO.cleanup"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.cleanup</h3>
|
|
<b>cleanup</b>(<i></i>)
|
|
<p>
|
|
Beendet autorefresh und alle Threads.
|
|
</p><a NAME="RevPiModIO.cycleloop" ID="RevPiModIO.cycleloop"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.cycleloop</h3>
|
|
<b>cycleloop</b>(<i>func, cycletime=50</i>)
|
|
<p>
|
|
Startet den Cycleloop.
|
|
</p><p>
|
|
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.
|
|
</p><p>
|
|
Verlassen wird der Cycleloop, wenn die aufgerufene Funktion einen
|
|
Rueckgabewert nicht gleich None liefert (z.B. return True), oder durch
|
|
Aufruf von .exit().
|
|
</p><p>
|
|
HINWEIS: Die Aktualisierungszeit und die Laufzeit der Funktion duerfen
|
|
die eingestellte autorefresh Zeit, bzw. uebergebene cycletime nicht
|
|
ueberschreiten!
|
|
</p><p>
|
|
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.
|
|
</p><dl>
|
|
<dt><i>func</i></dt>
|
|
<dd>
|
|
Funktion, die ausgefuehrt werden soll
|
|
</dd><dt><i>cycletime</i></dt>
|
|
<dd>
|
|
Zykluszeit in Millisekunden - Standardwert 50 ms
|
|
</dd>
|
|
</dl><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
None
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.exit" ID="RevPiModIO.exit"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.exit</h3>
|
|
<b>exit</b>(<i>full=True</i>)
|
|
<p>
|
|
Beendet mainloop() und optional autorefresh.
|
|
</p><p>
|
|
Wenn sich das Programm im mainloop() befindet, wird durch Aufruf
|
|
von exit() die Kontrolle wieder an das Hauptprogramm zurueckgegeben.
|
|
</p><p>
|
|
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.
|
|
</p><dl>
|
|
<dt><i>full</i></dt>
|
|
<dd>
|
|
Entfernt auch alle Devices aus autorefresh
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.export_replaced_ios" ID="RevPiModIO.export_replaced_ios"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.export_replaced_ios</h3>
|
|
<b>export_replaced_ios</b>(<i>filename="replace_ios.conf"</i>)
|
|
<p>
|
|
Exportiert ersetzte IOs dieser Instanz.
|
|
</p><p>
|
|
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.
|
|
</p><dl>
|
|
<dt><i>filename</i></dt>
|
|
<dd>
|
|
Dateiname fuer Exportdatei
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.get_jconfigrsc" ID="RevPiModIO.get_jconfigrsc"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.get_jconfigrsc</h3>
|
|
<b>get_jconfigrsc</b>(<i></i>)
|
|
<p>
|
|
Laedt die piCtory Konfiguration und erstellt ein <class 'dict'>.
|
|
</p><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
<class 'dict'> der piCtory Konfiguration
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.handlesignalend" ID="RevPiModIO.handlesignalend"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.handlesignalend</h3>
|
|
<b>handlesignalend</b>(<i>cleanupfunc=None</i>)
|
|
<p>
|
|
Signalhandler fuer Programmende verwalten.
|
|
</p><p>
|
|
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.
|
|
</p><p>
|
|
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.
|
|
</p><p>
|
|
Nach einmaligem Empfangen eines der Signale und dem Beenden der
|
|
RevPiModIO Thrads / Funktionen werden die SignalHandler wieder
|
|
freigegeben.
|
|
</p><dl>
|
|
<dt><i>cleanupfunc</i></dt>
|
|
<dd>
|
|
Funktion wird nach dem letzten Lesen der Inputs
|
|
ausgefuehrt, gefolgt vom letzten Schreiben der Outputs
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.mainloop" ID="RevPiModIO.mainloop"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.mainloop</h3>
|
|
<b>mainloop</b>(<i>blocking=True</i>)
|
|
<p>
|
|
Startet den Mainloop mit Eventueberwachung.
|
|
</p><p>
|
|
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.
|
|
</p><p>
|
|
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.
|
|
</p><dl>
|
|
<dt><i>blocking</i></dt>
|
|
<dd>
|
|
Wenn False, blockiert das Programm hier NICHT
|
|
</dd>
|
|
</dl><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
None
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.readprocimg" ID="RevPiModIO.readprocimg"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.readprocimg</h3>
|
|
<b>readprocimg</b>(<i>device=None</i>)
|
|
<p>
|
|
Einlesen aller Inputs aller/eines Devices vom Prozessabbild.
|
|
</p><p>
|
|
Devices mit aktiverem autorefresh werden ausgenommen!
|
|
</p><dl>
|
|
<dt><i>device</i></dt>
|
|
<dd>
|
|
nur auf einzelnes Device anwenden
|
|
</dd>
|
|
</dl><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
True, wenn Arbeiten an allen Devices erfolgreich waren
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.resetioerrors" ID="RevPiModIO.resetioerrors"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.resetioerrors</h3>
|
|
<b>resetioerrors</b>(<i></i>)
|
|
<p>
|
|
Setzt aktuellen IOError-Zaehler auf 0 zurueck.
|
|
</p><a NAME="RevPiModIO.setdefaultvalues" ID="RevPiModIO.setdefaultvalues"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.setdefaultvalues</h3>
|
|
<b>setdefaultvalues</b>(<i>device=None</i>)
|
|
<p>
|
|
Alle Outputbuffer werden auf die piCtory default Werte gesetzt.
|
|
</p><dl>
|
|
<dt><i>device</i></dt>
|
|
<dd>
|
|
nur auf einzelnes Device anwenden
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.syncoutputs" ID="RevPiModIO.syncoutputs"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.syncoutputs</h3>
|
|
<b>syncoutputs</b>(<i>device=None</i>)
|
|
<p>
|
|
Lesen aller aktuell gesetzten Outputs im Prozessabbild.
|
|
</p><p>
|
|
Devices mit aktiverem autorefresh werden ausgenommen!
|
|
</p><dl>
|
|
<dt><i>device</i></dt>
|
|
<dd>
|
|
nur auf einzelnes Device anwenden
|
|
</dd>
|
|
</dl><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
True, wenn Arbeiten an allen Devices erfolgreich waren
|
|
</dd>
|
|
</dl><a NAME="RevPiModIO.writeprocimg" ID="RevPiModIO.writeprocimg"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIO.writeprocimg</h3>
|
|
<b>writeprocimg</b>(<i>device=None</i>)
|
|
<p>
|
|
Schreiben aller Outputs aller Devices ins Prozessabbild.
|
|
</p><p>
|
|
Devices mit aktiverem autorefresh werden ausgenommen!
|
|
</p><dl>
|
|
<dt><i>device</i></dt>
|
|
<dd>
|
|
nur auf einzelnes Device anwenden
|
|
</dd>
|
|
</dl><dl>
|
|
<dt>Returns:</dt>
|
|
<dd>
|
|
True, wenn Arbeiten an allen Devices erfolgreich waren
|
|
</dd>
|
|
</dl>
|
|
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
|
<hr /><hr />
|
|
<a NAME="RevPiModIODriver" ID="RevPiModIODriver"></a>
|
|
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiModIODriver</h2>
|
|
<p>
|
|
Klasse um eigene Treiber fuer die virtuellen Devices zu erstellen.
|
|
</p><p>
|
|
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.
|
|
</p><p>
|
|
|
|
</p>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
Derived from</h3>
|
|
RevPiModIOSelected
|
|
<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="#RevPiModIODriver.__init__">RevPiModIODriver</a></td>
|
|
<td>Instantiiert die Grundfunktionen.</td>
|
|
</tr>
|
|
</table>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
Static Methods</h3>
|
|
<table>
|
|
<tr><td>None</td></tr>
|
|
</table>
|
|
<a NAME="RevPiModIODriver.__init__" ID="RevPiModIODriver.__init__"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIODriver (Constructor)</h3>
|
|
<b>RevPiModIODriver</b>(<i>virtdev, autorefresh=False, monitoring=False, syncoutputs=True, procimg=None, configrsc=None, debug=True, replace_io_file=None, direct_output=False</i>)
|
|
<p>
|
|
Instantiiert die Grundfunktionen.
|
|
</p><p>
|
|
Parameter 'monitoring' und 'simulator' stehen hier nicht zur
|
|
Verfuegung, da diese automatisch gesetzt werden.
|
|
</p><dl>
|
|
<dt><i>virtdev</i></dt>
|
|
<dd>
|
|
Virtuelles Device oder mehrere als <class 'list'>
|
|
</dd>
|
|
</dl><dl>
|
|
<dt><b>See Also:</b></dt>
|
|
<dd>
|
|
<a style="color:#0000FF" href="#RevPiModIO.__init__">RevPiModIO.__init__(...)</a>
|
|
</dd>
|
|
</dl>
|
|
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
|
<hr /><hr />
|
|
<a NAME="RevPiModIOSelected" ID="RevPiModIOSelected"></a>
|
|
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiModIOSelected</h2>
|
|
<p>
|
|
Klasse fuer die Verwaltung einzelner Devices aus piCtory.
|
|
</p><p>
|
|
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.
|
|
</p><p>
|
|
|
|
</p>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
Derived from</h3>
|
|
RevPiModIO
|
|
<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="#RevPiModIOSelected.__init__">RevPiModIOSelected</a></td>
|
|
<td>Instantiiert nur fuer angegebene Devices die Grundfunktionen.</td>
|
|
</tr>
|
|
</table>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
Static Methods</h3>
|
|
<table>
|
|
<tr><td>None</td></tr>
|
|
</table>
|
|
<a NAME="RevPiModIOSelected.__init__" ID="RevPiModIOSelected.__init__"></a>
|
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
|
RevPiModIOSelected (Constructor)</h3>
|
|
<b>RevPiModIOSelected</b>(<i>deviceselection, autorefresh=False, monitoring=False, syncoutputs=True, procimg=None, configrsc=None, simulator=False, debug=True, replace_io_file=None, direct_output=False</i>)
|
|
<p>
|
|
Instantiiert nur fuer angegebene Devices die Grundfunktionen.
|
|
</p><p>
|
|
Der Parameter deviceselection kann eine einzelne
|
|
Device Position / einzelner Device Name sein oder eine Liste mit
|
|
mehreren Positionen / Namen
|
|
</p><dl>
|
|
<dt><i>deviceselection</i></dt>
|
|
<dd>
|
|
Positionsnummer oder Devicename
|
|
</dd>
|
|
</dl><dl>
|
|
<dt><b>See Also:</b></dt>
|
|
<dd>
|
|
<a style="color:#0000FF" href="#RevPiModIO.__init__">RevPiModIO.__init__(...)</a>
|
|
</dd>
|
|
</dl>
|
|
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
|
<hr />
|
|
</body></html> |