1
0
mirror of https://github.com/naruxde/revpipycontrol.git synced 2025-11-08 15:43:52 +01:00

docstrings angepasst

This commit is contained in:
2017-07-01 13:37:06 +02:00
parent 256a95aa8b
commit 0653c6c8eb
16 changed files with 215 additions and 100 deletions

View File

@@ -38,7 +38,7 @@ Hängt root-dir der Anwendung vor Dateinamen.
Je nach Ausführungsart der Anwendung muss das root-dir über Je nach Ausführungsart der Anwendung muss das root-dir über
andere Arten abgerufen werden. andere Arten abgerufen werden.
</p><dl> </p><dl>
<dt><i>filename:</i></dt> <dt><i>filename</i></dt>
<dd> <dd>
Datei oder Ordnername Datei oder Ordnername
</dd> </dd>

View File

@@ -125,10 +125,10 @@ RevPiCheckClient.__hidewin</h3>
<p> <p>
Verbergt &#252;bergebenes Fenster. Verbergt &#252;bergebenes Fenster.
</p><dl> </p><dl>
<dt><i>win:</i></dt> <dt><i>win</i></dt>
<dd> <dd>
Fenster zum verbergen Fenster zum verbergen
</dd><dt><i>event:</i></dt> </dd><dt><i>event</i></dt>
<dd> <dd>
Tkinter Event Tkinter Event
</dd> </dd>
@@ -145,7 +145,7 @@ RevPiCheckClient.__showwin</h3>
<p> <p>
Zeigt oder verbergt &#252;bergebenes Fenster. Zeigt oder verbergt &#252;bergebenes Fenster.
</p><dl> </p><dl>
<dt><i>win:</i></dt> <dt><i>win</i></dt>
<dd> <dd>
Fenster zum anzeigen/verbergen Fenster zum anzeigen/verbergen
</dd> </dd>
@@ -156,13 +156,30 @@ RevPiCheckClient.__spinboxkey</h3>
<p> <p>
Pr&#252;ft die Eingabe auf plausibilit&#228;t. Pr&#252;ft die Eingabe auf plausibilit&#228;t.
</p><dl> </p><dl>
<dt><i>event:</i></dt> <dt><i>event</i></dt>
<dd> <dd>
tkinter Event tkinter Event
</dd><dt><i>io:</i></dt> </dd><dt><i>io</i></dt>
<dd> <dd>
IO Liste mit tkinter Variable IO Liste mit tkinter Variable
</dd> </dd>
</dl><a NAME="RevPiCheckClient._createiogroup" ID="RevPiCheckClient._createiogroup"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiCheckClient._createiogroup</h3>
<b>_createiogroup</b>(<i>device, frame, iotype</i>)
<p>
Erstellt IO-Gruppen.
</p><dl>
<dt><i>device</i></dt>
<dd>
Deviceposition
</dd><dt><i>frame</i></dt>
<dd>
tkinter Frame
</dd><dt><i>iotype</i></dt>
<dd>
'inp' oder 'out' als str()
</dd>
</dl><a NAME="RevPiCheckClient._createwidgets" ID="RevPiCheckClient._createwidgets"></a> </dl><a NAME="RevPiCheckClient._createwidgets" ID="RevPiCheckClient._createwidgets"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiCheckClient._createwidgets</h3> RevPiCheckClient._createwidgets</h3>
@@ -176,7 +193,7 @@ RevPiCheckClient._onfrmconf</h3>
<p> <p>
Erstellt Fenster in einem Canvas. Erstellt Fenster in einem Canvas.
</p><dl> </p><dl>
<dt><i>canvas:</i></dt> <dt><i>canvas</i></dt>
<dd> <dd>
Canvas in dem Objekte erstellt werden sollen Canvas in dem Objekte erstellt werden sollen
</dd> </dd>
@@ -198,10 +215,10 @@ RevPiCheckClient._workvalues</h3>
<p> <p>
Alle Werte der Inputs und Outputs abrufen. Alle Werte der Inputs und Outputs abrufen.
</p><dl> </p><dl>
<dt><i>io_dicts:</i></dt> <dt><i>io_dicts</i></dt>
<dd> <dd>
Arbeit nur f&#252;r dieses Dict() Arbeit nur f&#252;r dieses Dict()
</dd><dt><i>writeout:</i></dt> </dd><dt><i>writeout</i></dt>
<dd> <dd>
&#196;nderungen auf RevPi schreiben &#196;nderungen auf RevPi schreiben
</dd> </dd>
@@ -242,7 +259,7 @@ RevPiCheckClient.validatereturn</h3>
<p> <p>
&#220;berpr&#252;ft die R&#252;ckgaben der setvalue Funktion. &#220;berpr&#252;ft die R&#252;ckgaben der setvalue Funktion.
</p><dl> </p><dl>
<dt><i>returnlist:</i></dt> <dt><i>returnlist</i></dt>
<dd> <dd>
list() der xml R&#252;ckgabe list() der xml R&#252;ckgabe
</dd> </dd>

View File

@@ -77,7 +77,7 @@ RevPiInfo._checkclose</h3>
<p> <p>
Pr&#252;ft ob Fenster beendet werden soll. Pr&#252;ft ob Fenster beendet werden soll.
</p><dl> </p><dl>
<dt><i>event:</i></dt> <dt><i>event</i></dt>
<dd> <dd>
tkinter-Event tkinter-Event
</dd> </dd>

View File

@@ -89,7 +89,7 @@ RevPiLogfile._checkclose</h3>
<p> <p>
Pr&#252;ft ob Fenster beendet werden soll. Pr&#252;ft ob Fenster beendet werden soll.
</p><dl> </p><dl>
<dt><i>event:</i></dt> <dt><i>event</i></dt>
<dd> <dd>
tkinter-Event tkinter-Event
</dd> </dd>
@@ -106,16 +106,16 @@ RevPiLogfile._load_log</h3>
<p> <p>
L&#228;d die angegebenen Logfiles herunter. L&#228;d die angegebenen Logfiles herunter.
</p><dl> </p><dl>
<dt><i>textwidget:</i></dt> <dt><i>textwidget</i></dt>
<dd> <dd>
Widget in das Logs eingef&#252;gt werden sollen Widget in das Logs eingef&#252;gt werden sollen
</dd><dt><i>xmlcall:</i></dt> </dd><dt><i>xmlcall</i></dt>
<dd> <dd>
xmlrpc Funktion zum Abrufen der Logdaten xmlrpc Funktion zum Abrufen der Logdaten
</dd><dt><i>startposition:</i></dt> </dd><dt><i>startposition</i></dt>
<dd> <dd>
Startposition ab der Logdaten kommen sollen Startposition ab der Logdaten kommen sollen
</dd><dt><i>full:</i></dt> </dd><dt><i>full</i></dt>
<dd> <dd>
Komplettes Logbuch laden Komplettes Logbuch laden
</dd> </dd>
@@ -143,7 +143,7 @@ RevPiLogfile.get_applog</h3>
<p> <p>
Ruft App Logbuch ab. Ruft App Logbuch ab.
</p><dl> </p><dl>
<dt><i>full:</i></dt> <dt><i>full</i></dt>
<dd> <dd>
Ganzes Logbuch laden Ganzes Logbuch laden
</dd> </dd>
@@ -154,7 +154,7 @@ RevPiLogfile.get_plclog</h3>
<p> <p>
Ruft PLC Logbuch ab. Ruft PLC Logbuch ab.
</p><dl> </p><dl>
<dt><i>full:</i></dt> <dt><i>full</i></dt>
<dd> <dd>
Ganzes Logbuch laden Ganzes Logbuch laden
</dd> </dd>

View File

@@ -105,7 +105,7 @@ RevPiOption._checkclose</h3>
<p> <p>
Pr&#252;ft ob Fenster beendet werden soll. Pr&#252;ft ob Fenster beendet werden soll.
</p><dl> </p><dl>
<dt><i>event:</i></dt> <dt><i>event</i></dt>
<dd> <dd>
tkinter-Event tkinter-Event
</dd> </dd>

View File

@@ -65,22 +65,22 @@ Methods</h3>
<td>F&#252;llt Verbindungsliste.</td> <td>F&#252;llt Verbindungsliste.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnadd">evt_btnadd</a></td> <td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnadd">evt_btnadd</a></td>
<td></td> <td>Verbindungseinstellungen &#252;bernehmen.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnnew">evt_btnnew</a></td> <td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnnew">evt_btnnew</a></td>
<td></td> <td>Neue Verbindung erstellen.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnremove">evt_btnremove</a></td> <td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnremove">evt_btnremove</a></td>
<td></td> <td>Verbindung l&#246;schen.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnsave">evt_btnsave</a></td> <td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnsave">evt_btnsave</a></td>
<td></td> <td>Alle Verbindungen speichern.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_keypress">evt_keypress</a></td> <td><a style="color:#0000FF" href="#RevPiPlcList.evt_keypress">evt_keypress</a></td>
<td></td> <td>Passt bei Tastendruck den Status der Buttons an.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_listconn">evt_listconn</a></td> <td><a style="color:#0000FF" href="#RevPiPlcList.evt_listconn">evt_listconn</a></td>
<td></td> <td>&#220;bernimmt Einstellungen in Eingabefelder.</td>
</tr> </tr>
</table> </table>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
@@ -95,7 +95,7 @@ RevPiPlcList (Constructor)</h3>
<p> <p>
Init RevPiPlcList-class. Init RevPiPlcList-class.
</p><dl> </p><dl>
<dt><i>master:</i></dt> <dt><i>master</i></dt>
<dd> <dd>
tkinter master tkinter master
</dd> </dd>
@@ -106,7 +106,7 @@ RevPiPlcList._checkclose</h3>
<p> <p>
Pr&#252;ft ob Fenster beendet werden soll. Pr&#252;ft ob Fenster beendet werden soll.
</p><dl> </p><dl>
<dt><i>event:</i></dt> <dt><i>event</i></dt>
<dd> <dd>
tkinter-Event tkinter-Event
</dd> </dd>
@@ -122,7 +122,12 @@ RevPiPlcList._saveappdata</h3>
<b>_saveappdata</b>(<i></i>) <b>_saveappdata</b>(<i></i>)
<p> <p>
Speichert Verbindungen im home Dir. Speichert Verbindungen im home Dir.
</p><a NAME="RevPiPlcList.build_listconn" ID="RevPiPlcList.build_listconn"></a> </p><dl>
<dt>Returns:</dt>
<dd>
True, bei erfolgreicher Verarbeitung
</dd>
</dl><a NAME="RevPiPlcList.build_listconn" ID="RevPiPlcList.build_listconn"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.build_listconn</h3> RevPiPlcList.build_listconn</h3>
<b>build_listconn</b>(<i></i>) <b>build_listconn</b>(<i></i>)
@@ -132,27 +137,39 @@ F&#252;llt Verbindungsliste.
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.evt_btnadd</h3> RevPiPlcList.evt_btnadd</h3>
<b>evt_btnadd</b>(<i></i>) <b>evt_btnadd</b>(<i></i>)
<a NAME="RevPiPlcList.evt_btnnew" ID="RevPiPlcList.evt_btnnew"></a> <p>
Verbindungseinstellungen &#252;bernehmen.
</p><a NAME="RevPiPlcList.evt_btnnew" ID="RevPiPlcList.evt_btnnew"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.evt_btnnew</h3> RevPiPlcList.evt_btnnew</h3>
<b>evt_btnnew</b>(<i></i>) <b>evt_btnnew</b>(<i></i>)
<a NAME="RevPiPlcList.evt_btnremove" ID="RevPiPlcList.evt_btnremove"></a> <p>
Neue Verbindung erstellen.
</p><a NAME="RevPiPlcList.evt_btnremove" ID="RevPiPlcList.evt_btnremove"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.evt_btnremove</h3> RevPiPlcList.evt_btnremove</h3>
<b>evt_btnremove</b>(<i></i>) <b>evt_btnremove</b>(<i></i>)
<a NAME="RevPiPlcList.evt_btnsave" ID="RevPiPlcList.evt_btnsave"></a> <p>
Verbindung l&#246;schen.
</p><a NAME="RevPiPlcList.evt_btnsave" ID="RevPiPlcList.evt_btnsave"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.evt_btnsave</h3> RevPiPlcList.evt_btnsave</h3>
<b>evt_btnsave</b>(<i></i>) <b>evt_btnsave</b>(<i></i>)
<a NAME="RevPiPlcList.evt_keypress" ID="RevPiPlcList.evt_keypress"></a> <p>
Alle Verbindungen speichern.
</p><a NAME="RevPiPlcList.evt_keypress" ID="RevPiPlcList.evt_keypress"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.evt_keypress</h3> RevPiPlcList.evt_keypress</h3>
<b>evt_keypress</b>(<i>evt=None</i>) <b>evt_keypress</b>(<i>evt=None</i>)
<a NAME="RevPiPlcList.evt_listconn" ID="RevPiPlcList.evt_listconn"></a> <p>
Passt bei Tastendruck den Status der Buttons an.
</p><a NAME="RevPiPlcList.evt_listconn" ID="RevPiPlcList.evt_listconn"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlcList.evt_listconn</h3> RevPiPlcList.evt_listconn</h3>
<b>evt_listconn</b>(<i>evt=None</i>) <b>evt_listconn</b>(<i>evt=None</i>)
<p>
&#220;bernimmt Einstellungen in Eingabefelder.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div> <div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr /> <hr /><hr />
<a NAME="get_connections" ID="get_connections"></a> <a NAME="get_connections" ID="get_connections"></a>
@@ -160,7 +177,12 @@ RevPiPlcList.evt_listconn</h3>
<b>get_connections</b>(<i></i>) <b>get_connections</b>(<i></i>)
<p> <p>
Verbindungen aus Datei laden. Verbindungen aus Datei laden.
</p> </p><dl>
<dt>Returns:</dt>
<dd>
dict() mit Verbindungen
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div> <div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /> <hr />
</body></html> </body></html>

View File

@@ -50,19 +50,19 @@ Methods</h3>
<td>Init RevPiProgram-Class.</td> <td>Init RevPiProgram-Class.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiProgram._checkclose">_checkclose</a></td> <td><a style="color:#0000FF" href="#RevPiProgram._checkclose">_checkclose</a></td>
<td></td> <td>Pr&#252;ft ob Fenster beendet werden soll.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiProgram._createwidgets">_createwidgets</a></td> <td><a style="color:#0000FF" href="#RevPiProgram._createwidgets">_createwidgets</a></td>
<td></td> <td>Erstellt alle Widgets.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiProgram._evt_optdown">_evt_optdown</a></td> <td><a style="color:#0000FF" href="#RevPiProgram._evt_optdown">_evt_optdown</a></td>
<td></td> <td>Passt je nach gew&#228;hlter Option den Status der Widgets an.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiProgram._evt_optup">_evt_optup</a></td> <td><a style="color:#0000FF" href="#RevPiProgram._evt_optup">_evt_optup</a></td>
<td></td> <td>Passt je nach gew&#228;hlter Option den Status der Widgets an.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiProgram._loaddefault">_loaddefault</a></td> <td><a style="color:#0000FF" href="#RevPiProgram._loaddefault">_loaddefault</a></td>
<td>Uebernimmt fuer den Pi die letzen Pfade.</td> <td>&#220;bernimmt f&#252;r den Pi die letzen Pfade.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiProgram._savedefaults">_savedefaults</a></td> <td><a style="color:#0000FF" href="#RevPiProgram._savedefaults">_savedefaults</a></td>
<td>Schreibt fuer den Pi die letzen Pfade.</td> <td>Schreibt fuer den Pi die letzen Pfade.</td>
@@ -103,35 +103,68 @@ RevPiProgram (Constructor)</h3>
<b>RevPiProgram</b>(<i>master, xmlcli, xmlmode, revpi</i>) <b>RevPiProgram</b>(<i>master, xmlcli, xmlmode, revpi</i>)
<p> <p>
Init RevPiProgram-Class. Init RevPiProgram-Class.
</p><a NAME="RevPiProgram._checkclose" ID="RevPiProgram._checkclose"></a> </p><dl>
<dt>Returns:</dt>
<dd>
None
</dd>
</dl><a NAME="RevPiProgram._checkclose" ID="RevPiProgram._checkclose"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram._checkclose</h3> RevPiProgram._checkclose</h3>
<b>_checkclose</b>(<i>event=None</i>) <b>_checkclose</b>(<i>event=None</i>)
<a NAME="RevPiProgram._createwidgets" ID="RevPiProgram._createwidgets"></a> <p>
Pr&#252;ft ob Fenster beendet werden soll.
</p><dl>
<dt><i>event</i></dt>
<dd>
tkinter-Event
</dd>
</dl><a NAME="RevPiProgram._createwidgets" ID="RevPiProgram._createwidgets"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram._createwidgets</h3> RevPiProgram._createwidgets</h3>
<b>_createwidgets</b>(<i></i>) <b>_createwidgets</b>(<i></i>)
<a NAME="RevPiProgram._evt_optdown" ID="RevPiProgram._evt_optdown"></a> <p>
Erstellt alle Widgets.
</p><a NAME="RevPiProgram._evt_optdown" ID="RevPiProgram._evt_optdown"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram._evt_optdown</h3> RevPiProgram._evt_optdown</h3>
<b>_evt_optdown</b>(<i>text=""</i>) <b>_evt_optdown</b>(<i>text=""</i>)
<a NAME="RevPiProgram._evt_optup" ID="RevPiProgram._evt_optup"></a> <p>
Passt je nach gew&#228;hlter Option den Status der Widgets an.
</p><a NAME="RevPiProgram._evt_optup" ID="RevPiProgram._evt_optup"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram._evt_optup</h3> RevPiProgram._evt_optup</h3>
<b>_evt_optup</b>(<i>text=""</i>) <b>_evt_optup</b>(<i>text=""</i>)
<a NAME="RevPiProgram._loaddefault" ID="RevPiProgram._loaddefault"></a> <p>
Passt je nach gew&#228;hlter Option den Status der Widgets an.
</p><a NAME="RevPiProgram._loaddefault" ID="RevPiProgram._loaddefault"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram._loaddefault</h3> RevPiProgram._loaddefault</h3>
<b>_loaddefault</b>(<i>full=False</i>) <b>_loaddefault</b>(<i>full=False</i>)
<p> <p>
Uebernimmt fuer den Pi die letzen Pfade. &#220;bernimmt f&#252;r den Pi die letzen Pfade.
</p><a NAME="RevPiProgram._savedefaults" ID="RevPiProgram._savedefaults"></a> </p><dl>
<dt><i>full</i></dt>
<dd>
Einstellungen f&#252;r alle Verbindungen laden
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
dict() mit Einstellungen
</dd>
</dl><a NAME="RevPiProgram._savedefaults" ID="RevPiProgram._savedefaults"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram._savedefaults</h3> RevPiProgram._savedefaults</h3>
<b>_savedefaults</b>(<i></i>) <b>_savedefaults</b>(<i></i>)
<p> <p>
Schreibt fuer den Pi die letzen Pfade. Schreibt fuer den Pi die letzen Pfade.
</p><a NAME="RevPiProgram.check_replacedir" ID="RevPiProgram.check_replacedir"></a> </p><dl>
<dt>Returns:</dt>
<dd>
True, bei erfolgreicher Verarbeitung
</dd>
</dl><a NAME="RevPiProgram.check_replacedir" ID="RevPiProgram.check_replacedir"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram.check_replacedir</h3> RevPiProgram.check_replacedir</h3>
<b>check_replacedir</b>(<i>rootdir</i>) <b>check_replacedir</b>(<i>rootdir</i>)
@@ -141,7 +174,7 @@ Gibt das rootdir von einem entpackten Verzeichnis zurueck.
Dabei wird geprueft, ob es sich um einen einzelnen Ordner handelt Dabei wird geprueft, ob es sich um einen einzelnen Ordner handelt
und ob es eine piCtory Konfiguration im rootdir gibt. und ob es eine piCtory Konfiguration im rootdir gibt.
</p><dl> </p><dl>
<dt><i>rootdir:</i></dt> <dt><i>rootdir</i></dt>
<dd> <dd>
Verzeichnis fuer Pruefung Verzeichnis fuer Pruefung
</dd> </dd>
@@ -157,7 +190,7 @@ RevPiProgram.create_filelist</h3>
<p> <p>
Erstellt eine Dateiliste von einem Verzeichnis. Erstellt eine Dateiliste von einem Verzeichnis.
</p><dl> </p><dl>
<dt><i>rootdir:</i></dt> <dt><i>rootdir</i></dt>
<dd> <dd>
Verzeichnis fuer das eine Liste erstellt werden soll Verzeichnis fuer das eine Liste erstellt werden soll
</dd> </dd>
@@ -196,7 +229,12 @@ RevPiProgram.plcupload</h3>
<b>plcupload</b>(<i></i>) <b>plcupload</b>(<i></i>)
<p> <p>
L&#228;dt das angegebene Projekt auf den RevPi. L&#228;dt das angegebene Projekt auf den RevPi.
</p><a NAME="RevPiProgram.setpictoryrsc" ID="RevPiProgram.setpictoryrsc"></a> </p><dl>
<dt>Returns:</dt>
<dd>
True, bei erfolgreicher Verarbeitung
</dd>
</dl><a NAME="RevPiProgram.setpictoryrsc" ID="RevPiProgram.setpictoryrsc"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiProgram.setpictoryrsc</h3> RevPiProgram.setpictoryrsc</h3>
<b>setpictoryrsc</b>(<i>filename=None</i>) <b>setpictoryrsc</b>(<i>filename=None</i>)

View File

@@ -68,7 +68,7 @@ Methods</h3>
<td>Generiert Men&#252;eintr&#228;ge.</td> <td>Generiert Men&#252;eintr&#228;ge.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyControl._opt_conn">_opt_conn</a></td> <td><a style="color:#0000FF" href="#RevPiPyControl._opt_conn">_opt_conn</a></td>
<td></td> <td>Stellt eine neue Verbindung zu RevPiPyLoad her.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyControl.infowindow">infowindow</a></td> <td><a style="color:#0000FF" href="#RevPiPyControl.infowindow">infowindow</a></td>
<td>&#214;ffnet das Fenster f&#252;r die Info.</td> <td>&#214;ffnet das Fenster f&#252;r die Info.</td>
@@ -104,7 +104,7 @@ Methods</h3>
<td>Setzt alles zur&#252;ck f&#252;r neue Verbindungen.</td> <td>Setzt alles zur&#252;ck f&#252;r neue Verbindungen.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyControl.tmr_plcrunning">tmr_plcrunning</a></td> <td><a style="color:#0000FF" href="#RevPiPyControl.tmr_plcrunning">tmr_plcrunning</a></td>
<td></td> <td>Timer der den Status des PLC Programms pr&#252;ft.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyControl.visitwebsite">visitwebsite</a></td> <td><a style="color:#0000FF" href="#RevPiPyControl.visitwebsite">visitwebsite</a></td>
<td>&#214;ffnet auf dem System einen Webbrowser zur Projektseite.</td> <td>&#214;ffnet auf dem System einen Webbrowser zur Projektseite.</td>
@@ -122,7 +122,7 @@ RevPiPyControl (Constructor)</h3>
<p> <p>
Init RevPiPyControl-Class. Init RevPiPyControl-Class.
</p><dl> </p><dl>
<dt><i>master:</i></dt> <dt><i>master</i></dt>
<dd> <dd>
tkinter master tkinter master
</dd> </dd>
@@ -145,7 +145,7 @@ RevPiPyControl._closeapp</h3>
<p> <p>
R&#228;umt auf und beendet Programm. R&#228;umt auf und beendet Programm.
</p><dl> </p><dl>
<dt><i>event:</i></dt> <dt><i>event</i></dt>
<dd> <dd>
tkinter Event tkinter Event
</dd> </dd>
@@ -171,7 +171,14 @@ Generiert Men&#252;eintr&#228;ge.
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyControl._opt_conn</h3> RevPiPyControl._opt_conn</h3>
<b>_opt_conn</b>(<i>text</i>) <b>_opt_conn</b>(<i>text</i>)
<a NAME="RevPiPyControl.infowindow" ID="RevPiPyControl.infowindow"></a> <p>
Stellt eine neue Verbindung zu RevPiPyLoad her.
</p><dl>
<dt><i>text</i></dt>
<dd>
Verbindungsname
</dd>
</dl><a NAME="RevPiPyControl.infowindow" ID="RevPiPyControl.infowindow"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyControl.infowindow</h3> RevPiPyControl.infowindow</h3>
<b>infowindow</b>(<i></i>) <b>infowindow</b>(<i></i>)
@@ -195,7 +202,12 @@ RevPiPyControl.plclogs</h3>
<b>plclogs</b>(<i></i>) <b>plclogs</b>(<i></i>)
<p> <p>
&#214;ffnet das Fenster f&#252;r Logdateien. &#214;ffnet das Fenster f&#252;r Logdateien.
</p><a NAME="RevPiPyControl.plcoptions" ID="RevPiPyControl.plcoptions"></a> </p><dl>
<dt>Returns:</dt>
<dd>
None
</dd>
</dl><a NAME="RevPiPyControl.plcoptions" ID="RevPiPyControl.plcoptions"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyControl.plcoptions</h3> RevPiPyControl.plcoptions</h3>
<b>plcoptions</b>(<i></i>) <b>plcoptions</b>(<i></i>)
@@ -241,7 +253,9 @@ Setzt alles zur&#252;ck f&#252;r neue Verbindungen.
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyControl.tmr_plcrunning</h3> RevPiPyControl.tmr_plcrunning</h3>
<b>tmr_plcrunning</b>(<i></i>) <b>tmr_plcrunning</b>(<i></i>)
<a NAME="RevPiPyControl.visitwebsite" ID="RevPiPyControl.visitwebsite"></a> <p>
Timer der den Status des PLC Programms pr&#252;ft.
</p><a NAME="RevPiPyControl.visitwebsite" ID="RevPiPyControl.visitwebsite"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyControl.visitwebsite</h3> RevPiPyControl.visitwebsite</h3>
<b>visitwebsite</b>(<i></i>) <b>visitwebsite</b>(<i></i>)

View File

@@ -18,8 +18,8 @@ def addroot(filename):
Je nach Ausführungsart der Anwendung muss das root-dir über Je nach Ausführungsart der Anwendung muss das root-dir über
andere Arten abgerufen werden. andere Arten abgerufen werden.
@param filename: Datei oder Ordnername @param filename Datei oder Ordnername
@returns: root dir @return root dir
""" """
if getattr(sys, "frozen", False): if getattr(sys, "frozen", False):

View File

@@ -63,8 +63,8 @@ class RevPiCheckClient(tkinter.Frame):
def __hidewin(self, win, event=None): def __hidewin(self, win, event=None):
u"""Verbergt übergebenes Fenster. u"""Verbergt übergebenes Fenster.
@param win: Fenster zum verbergen @param win Fenster zum verbergen
@param event: Tkinter Event""" @param event Tkinter Event"""
win.withdraw() win.withdraw()
def __saveoldvalue(self, event, tkvar): def __saveoldvalue(self, event, tkvar):
@@ -78,7 +78,7 @@ class RevPiCheckClient(tkinter.Frame):
def __showwin(self, win): def __showwin(self, win):
u"""Zeigt oder verbergt übergebenes Fenster. u"""Zeigt oder verbergt übergebenes Fenster.
@param win: Fenster zum anzeigen/verbergen""" @param win Fenster zum anzeigen/verbergen"""
if win.winfo_viewable(): if win.winfo_viewable():
win.withdraw() win.withdraw()
else: else:
@@ -86,8 +86,8 @@ class RevPiCheckClient(tkinter.Frame):
def __spinboxkey(self, device, io, event=None): def __spinboxkey(self, device, io, event=None):
u"""Prüft die Eingabe auf plausibilität. u"""Prüft die Eingabe auf plausibilität.
@param event: tkinter Event @param event tkinter Event
@param io: IO Liste mit tkinter Variable""" @param io IO Liste mit tkinter Variable"""
# io = [name,bytelen,byteaddr,bmk,bitaddress,(tkinter_var)] # io = [name,bytelen,byteaddr,bmk,bitaddress,(tkinter_var)]
try: try:
newvalue = io[5].get() newvalue = io[5].get()
@@ -112,9 +112,9 @@ class RevPiCheckClient(tkinter.Frame):
def _createiogroup(self, device, frame, iotype): def _createiogroup(self, device, frame, iotype):
u"""Erstellt IO-Gruppen. u"""Erstellt IO-Gruppen.
@param device: Deviceposition @param device Deviceposition
@param frame: tkinter Frame @param frame tkinter Frame
@iotype: 'inp' oder 'out' als str() @param iotype 'inp' oder 'out' als str()
""" """
# IO-Typen festlegen # IO-Typen festlegen
@@ -265,12 +265,12 @@ class RevPiCheckClient(tkinter.Frame):
def _onfrmconf(self, canvas): def _onfrmconf(self, canvas):
u"""Erstellt Fenster in einem Canvas. u"""Erstellt Fenster in einem Canvas.
@param canvas: Canvas in dem Objekte erstellt werden sollen""" @param canvas Canvas in dem Objekte erstellt werden sollen"""
canvas.configure(scrollregion=canvas.bbox("all")) canvas.configure(scrollregion=canvas.bbox("all"))
def _warnwrite(self): def _warnwrite(self):
u"""Warnung für Benutzer über Schreibfunktion einmal fragen. u"""Warnung für Benutzer über Schreibfunktion einmal fragen.
@returns: True, wenn Warnung einmal mit OK bestätigt wurde""" @return True, wenn Warnung einmal mit OK bestätigt wurde"""
if self.__checkwrite: if self.__checkwrite:
self.__checkwrite = not tkmsg.askokcancel( self.__checkwrite = not tkmsg.askokcancel(
_("Warning"), _("Warning"),
@@ -285,8 +285,8 @@ class RevPiCheckClient(tkinter.Frame):
def _workvalues(self, io_dicts=None, writeout=False): def _workvalues(self, io_dicts=None, writeout=False):
u"""Alle Werte der Inputs und Outputs abrufen. u"""Alle Werte der Inputs und Outputs abrufen.
@param io_dicts: Arbeit nur für dieses Dict() @param io_dicts Arbeit nur für dieses Dict()
@param writeout: Änderungen auf RevPi schreiben""" @param writeout Änderungen auf RevPi schreiben"""
# Abfragelisten vorbereiten # Abfragelisten vorbereiten
if io_dicts is None: if io_dicts is None:
@@ -377,7 +377,7 @@ class RevPiCheckClient(tkinter.Frame):
def validatereturn(self, returnlist): def validatereturn(self, returnlist):
u"""Überprüft die Rückgaben der setvalue Funktion. u"""Überprüft die Rückgaben der setvalue Funktion.
@param returnlist: list() der xml Rückgabe""" @param returnlist list() der xml Rückgabe"""
if type(returnlist[0]) != list: if type(returnlist[0]) != list:
returnlist = [returnlist] returnlist = [returnlist]

View File

@@ -29,7 +29,7 @@ class RevPiInfo(tkinter.Frame):
def _checkclose(self, event=None): def _checkclose(self, event=None):
u"""Prüft ob Fenster beendet werden soll. u"""Prüft ob Fenster beendet werden soll.
@param event: tkinter-Event""" @param event tkinter-Event"""
self.master.destroy() self.master.destroy()
def _createwidgets(self, extended=False): def _createwidgets(self, extended=False):

View File

@@ -31,7 +31,7 @@ class RevPiLogfile(tkinter.Frame):
def _checkclose(self, event=None): def _checkclose(self, event=None):
u"""Prüft ob Fenster beendet werden soll. u"""Prüft ob Fenster beendet werden soll.
@param event: tkinter-Event""" @param event tkinter-Event"""
self.master.destroy() self.master.destroy()
def _createwidgets(self): def _createwidgets(self):
@@ -91,7 +91,7 @@ class RevPiLogfile(tkinter.Frame):
def get_applog(self, full=False): def get_applog(self, full=False):
u"""Ruft App Logbuch ab. u"""Ruft App Logbuch ab.
@param full: Ganzes Logbuch laden""" @param full Ganzes Logbuch laden"""
# Logs abrufen und letzte Position merken # Logs abrufen und letzte Position merken
self.mrkapp = self._load_log( self.mrkapp = self._load_log(
@@ -103,7 +103,7 @@ class RevPiLogfile(tkinter.Frame):
def get_plclog(self, full=False): def get_plclog(self, full=False):
u"""Ruft PLC Logbuch ab. u"""Ruft PLC Logbuch ab.
@param full: Ganzes Logbuch laden""" @param full Ganzes Logbuch laden"""
# Logs abrufen und letzte Position merken # Logs abrufen und letzte Position merken
self.mrkplc = self._load_log( self.mrkplc = self._load_log(
@@ -116,11 +116,11 @@ class RevPiLogfile(tkinter.Frame):
def _load_log(self, textwidget, xmlcall, startposition, full): def _load_log(self, textwidget, xmlcall, startposition, full):
u"""Läd die angegebenen Logfiles herunter. u"""Läd die angegebenen Logfiles herunter.
@param textwidget: Widget in das Logs eingefügt werden sollen @param textwidget Widget in das Logs eingefügt werden sollen
@param xmlcall: xmlrpc Funktion zum Abrufen der Logdaten @param xmlcall xmlrpc Funktion zum Abrufen der Logdaten
@param startposition: Startposition ab der Logdaten kommen sollen @param startposition Startposition ab der Logdaten kommen sollen
@param full: Komplettes Logbuch laden @param full Komplettes Logbuch laden
@returns: Ende der Datei (neue Startposition) @return Ende der Datei (neue Startposition)
""" """
roll = textwidget.yview()[1] == 1.0 roll = textwidget.yview()[1] == 1.0

View File

@@ -17,7 +17,7 @@ class RevPiOption(tkinter.Frame):
def __init__(self, master, xmlcli, xmlmode): def __init__(self, master, xmlcli, xmlmode):
u"""Init RevPiOption-Class. u"""Init RevPiOption-Class.
@returns: None""" @return None"""
if xmlmode < 2: if xmlmode < 2:
return None return None
@@ -36,7 +36,7 @@ class RevPiOption(tkinter.Frame):
def _changesdone(self): def _changesdone(self):
u"""Prüft ob sich die Einstellungen geändert haben. u"""Prüft ob sich die Einstellungen geändert haben.
@returns: True, wenn min. eine Einstellung geändert wurde""" @return True, wenn min. eine Einstellung geändert wurde"""
return ( return (
self.var_start.get() != self.dc.get("autostart", "1") self.var_start.get() != self.dc.get("autostart", "1")
or self.var_reload.get() != self.dc.get("autoreload", "1") or self.var_reload.get() != self.dc.get("autoreload", "1")
@@ -54,7 +54,7 @@ class RevPiOption(tkinter.Frame):
def _checkclose(self, event=None): def _checkclose(self, event=None):
u"""Prüft ob Fenster beendet werden soll. u"""Prüft ob Fenster beendet werden soll.
@param event: tkinter-Event""" @param event tkinter-Event"""
ask = True ask = True
if self._changesdone(): if self._changesdone():
ask = tkmsg.askyesno( ask = tkmsg.askyesno(

View File

@@ -26,7 +26,8 @@ savefile = os.path.join(homedir, ".revpipyplc", "connections.dat")
def get_connections(): def get_connections():
u"""Verbindungen aus Datei laden.""" u"""Verbindungen aus Datei laden.
@return dict() mit Verbindungen"""
if os.path.exists(savefile): if os.path.exists(savefile):
fh = open(savefile, "rb") fh = open(savefile, "rb")
connections = pickle.load(fh) connections = pickle.load(fh)
@@ -39,7 +40,7 @@ class RevPiPlcList(tkinter.Frame):
def __init__(self, master): def __init__(self, master):
u"""Init RevPiPlcList-class. u"""Init RevPiPlcList-class.
@param master: tkinter master""" @param master tkinter master"""
super().__init__(master) super().__init__(master)
self.master.bind("<KeyPress-Escape>", self._checkclose) self.master.bind("<KeyPress-Escape>", self._checkclose)
self.pack() self.pack()
@@ -55,7 +56,7 @@ class RevPiPlcList(tkinter.Frame):
def _checkclose(self, event=None): def _checkclose(self, event=None):
u"""Prüft ob Fenster beendet werden soll. u"""Prüft ob Fenster beendet werden soll.
@param event: tkinter-Event""" @param event tkinter-Event"""
ask = True ask = True
if self.changes: if self.changes:
ask = tkmsg.askyesno( ask = tkmsg.askyesno(
@@ -134,7 +135,8 @@ class RevPiPlcList(tkinter.Frame):
self.btn_close.grid(column=4, row=9, sticky="se") self.btn_close.grid(column=4, row=9, sticky="se")
def _saveappdata(self): def _saveappdata(self):
u"""Speichert Verbindungen im home Dir.""" u"""Speichert Verbindungen im home Dir.
@return True, bei erfolgreicher Verarbeitung"""
try: try:
makedirs(os.path.dirname(savefile), exist_ok=True) makedirs(os.path.dirname(savefile), exist_ok=True)
fh = open(savefile, "wb") fh = open(savefile, "wb")
@@ -151,6 +153,7 @@ class RevPiPlcList(tkinter.Frame):
self.list_conn.insert("end", *lst_conns) self.list_conn.insert("end", *lst_conns)
def evt_btnadd(self): def evt_btnadd(self):
u"""Verbindungseinstellungen übernehmen."""
# TODO: Daten prüfen # TODO: Daten prüfen
self._connections[self.var_name.get()] = \ self._connections[self.var_name.get()] = \
(self.var_address.get(), self.var_port.get()) (self.var_address.get(), self.var_port.get())
@@ -160,6 +163,7 @@ class RevPiPlcList(tkinter.Frame):
self.changes = True self.changes = True
def evt_btnnew(self): def evt_btnnew(self):
u"""Neue Verbindung erstellen."""
self.list_conn.select_clear(0, "end") self.list_conn.select_clear(0, "end")
self.evt_listconn() self.evt_listconn()
@@ -169,6 +173,7 @@ class RevPiPlcList(tkinter.Frame):
self.var_port.set("55123") self.var_port.set("55123")
def evt_btnremove(self): def evt_btnremove(self):
u"""Verbindung löschen."""
item_index = self.list_conn.curselection() item_index = self.list_conn.curselection()
if len(item_index) == 1: if len(item_index) == 1:
item = self.list_conn.get(item_index[0]) item = self.list_conn.get(item_index[0])
@@ -186,6 +191,7 @@ class RevPiPlcList(tkinter.Frame):
self.changes = True self.changes = True
def evt_btnsave(self): def evt_btnsave(self):
u"""Alle Verbindungen speichern."""
if self._saveappdata(): if self._saveappdata():
ask = tkmsg.askyesno( ask = tkmsg.askyesno(
_("Information"), _("Information"),
@@ -202,6 +208,7 @@ class RevPiPlcList(tkinter.Frame):
) )
def evt_listconn(self, evt=None): def evt_listconn(self, evt=None):
u"""Übernimmt Einstellungen in Eingabefelder."""
item_index = self.list_conn.curselection() item_index = self.list_conn.curselection()
if len(item_index) == 1: if len(item_index) == 1:
@@ -219,6 +226,7 @@ class RevPiPlcList(tkinter.Frame):
self.btn_remove["state"] = "disabled" self.btn_remove["state"] = "disabled"
def evt_keypress(self, evt=None): def evt_keypress(self, evt=None):
u"""Passt bei Tastendruck den Status der Buttons an."""
okvalue = "normal" if ( okvalue = "normal" if (
self.var_address.get() != "" self.var_address.get() != ""
and self.var_name.get() != "" and self.var_name.get() != ""

View File

@@ -35,7 +35,8 @@ savefile = os.path.join(homedir, ".revpipyplc", "programpath.dat")
class RevPiProgram(tkinter.Frame): class RevPiProgram(tkinter.Frame):
def __init__(self, master, xmlcli, xmlmode, revpi): def __init__(self, master, xmlcli, xmlmode, revpi):
u"""Init RevPiProgram-Class.""" u"""Init RevPiProgram-Class.
@return None"""
if xmlmode < 2: if xmlmode < 2:
return None return None
@@ -60,6 +61,8 @@ class RevPiProgram(tkinter.Frame):
self._evt_optup() self._evt_optup()
def _checkclose(self, event=None): def _checkclose(self, event=None):
u"""Prüft ob Fenster beendet werden soll.
@param event tkinter-Event"""
if self.uploaded: if self.uploaded:
tkmsg.showinfo( tkmsg.showinfo(
_("Information"), _("Information"),
@@ -71,6 +74,7 @@ class RevPiProgram(tkinter.Frame):
self.master.destroy() self.master.destroy()
def _createwidgets(self): def _createwidgets(self):
u"""Erstellt alle Widgets."""
self.master.wm_title(_("RevPi Python PLC program")) self.master.wm_title(_("RevPi Python PLC program"))
self.master.wm_resizable(width=False, height=False) self.master.wm_resizable(width=False, height=False)
@@ -217,6 +221,7 @@ class RevPiProgram(tkinter.Frame):
btn.grid() btn.grid()
def _evt_optdown(self, text=""): def _evt_optdown(self, text=""):
u"""Passt je nach gewählter Option den Status der Widgets an."""
if self.lst_typedown.index(self.var_typedown.get()) == 0: if self.lst_typedown.index(self.var_typedown.get()) == 0:
self.var_picdown.set(False) self.var_picdown.set(False)
self.ckb_picdown["state"] = "disable" self.ckb_picdown["state"] = "disable"
@@ -224,6 +229,7 @@ class RevPiProgram(tkinter.Frame):
self.ckb_picdown["state"] = "normal" self.ckb_picdown["state"] = "normal"
def _evt_optup(self, text=""): def _evt_optup(self, text=""):
u"""Passt je nach gewählter Option den Status der Widgets an."""
if self.lst_typeup.index(self.var_typeup.get()) <= 1: if self.lst_typeup.index(self.var_typeup.get()) <= 1:
self.var_picup.set(False) self.var_picup.set(False)
self.ckb_picup["state"] = "disable" self.ckb_picup["state"] = "disable"
@@ -231,7 +237,9 @@ class RevPiProgram(tkinter.Frame):
self.ckb_picup["state"] = "normal" self.ckb_picup["state"] = "normal"
def _loaddefault(self, full=False): def _loaddefault(self, full=False):
"""Uebernimmt fuer den Pi die letzen Pfade.""" u"""Übernimmt für den Pi die letzen Pfade.
@param full Einstellungen für alle Verbindungen laden
@return dict() mit Einstellungen"""
if os.path.exists(savefile): if os.path.exists(savefile):
fh = open(savefile, "rb") fh = open(savefile, "rb")
dict_all = pickle.load(fh) dict_all = pickle.load(fh)
@@ -242,7 +250,8 @@ class RevPiProgram(tkinter.Frame):
return {} return {}
def _savedefaults(self): def _savedefaults(self):
u"""Schreibt fuer den Pi die letzen Pfade.""" u"""Schreibt fuer den Pi die letzen Pfade.
@return True, bei erfolgreicher Verarbeitung"""
try: try:
makedirs(os.path.dirname(savefile), exist_ok=True) makedirs(os.path.dirname(savefile), exist_ok=True)
dict_all = self._loaddefault(full=True) dict_all = self._loaddefault(full=True)
@@ -256,8 +265,8 @@ class RevPiProgram(tkinter.Frame):
def create_filelist(self, rootdir): def create_filelist(self, rootdir):
u"""Erstellt eine Dateiliste von einem Verzeichnis. u"""Erstellt eine Dateiliste von einem Verzeichnis.
@param rootdir: Verzeichnis fuer das eine Liste erstellt werden soll @param rootdir Verzeichnis fuer das eine Liste erstellt werden soll
@returns: Dateiliste""" @return Dateiliste"""
filelist = [] filelist = []
for tup_dir in os.walk(rootdir): for tup_dir in os.walk(rootdir):
for fname in tup_dir[2]: for fname in tup_dir[2]:
@@ -269,8 +278,8 @@ class RevPiProgram(tkinter.Frame):
Dabei wird geprueft, ob es sich um einen einzelnen Ordner handelt Dabei wird geprueft, ob es sich um einen einzelnen Ordner handelt
und ob es eine piCtory Konfiguration im rootdir gibt. und ob es eine piCtory Konfiguration im rootdir gibt.
@param rootdir: Verzeichnis fuer Pruefung @param rootdir Verzeichnis fuer Pruefung
@returns: Abgeaendertes rootdir @return Abgeaendertes rootdir
""" """
lst_dir = os.listdir(rootdir) lst_dir = os.listdir(rootdir)
@@ -558,7 +567,8 @@ class RevPiProgram(tkinter.Frame):
fh.close() fh.close()
def plcupload(self): def plcupload(self):
u"""Lädt das angegebene Projekt auf den RevPi.""" u"""Lädt das angegebene Projekt auf den RevPi.
@return True, bei erfolgreicher Verarbeitung"""
tup = self.lst_typeup.index(self.var_typeup.get()) tup = self.lst_typeup.index(self.var_typeup.get())
dirselect = "" dirselect = ""
dirtmp = None dirtmp = None
@@ -748,3 +758,5 @@ class RevPiProgram(tkinter.Frame):
# Temp-Dir aufräumen # Temp-Dir aufräumen
if dirtmp is not None: if dirtmp is not None:
rmtree(dirtmp) rmtree(dirtmp)
return True

View File

@@ -31,7 +31,7 @@ class RevPiPyControl(tkinter.Frame):
def __init__(self, master=None): def __init__(self, master=None):
u"""Init RevPiPyControl-Class. u"""Init RevPiPyControl-Class.
@param master: tkinter master""" @param master tkinter master"""
super().__init__(master) super().__init__(master)
self.master.protocol("WM_DELETE_WINDOW", self._closeapp) self.master.protocol("WM_DELETE_WINDOW", self._closeapp)
self.pack(fill="both", expand=True) self.pack(fill="both", expand=True)
@@ -84,7 +84,7 @@ class RevPiPyControl(tkinter.Frame):
def _closeapp(self, event=None): def _closeapp(self, event=None):
u"""Räumt auf und beendet Programm. u"""Räumt auf und beendet Programm.
@param event: tkinter Event""" @param event tkinter Event"""
self._closeall() self._closeall()
self.master.destroy() self.master.destroy()
@@ -183,6 +183,8 @@ class RevPiPyControl(tkinter.Frame):
self.mbar.add_cascade(label=_("Connect"), menu=self.mconn) self.mbar.add_cascade(label=_("Connect"), menu=self.mconn)
def _opt_conn(self, text): def _opt_conn(self, text):
u"""Stellt eine neue Verbindung zu RevPiPyLoad her.
@param text Verbindungsname"""
socket.setdefaulttimeout(2) socket.setdefaulttimeout(2)
sp = ServerProxy( sp = ServerProxy(
"http://{}:{}".format( "http://{}:{}".format(
@@ -261,7 +263,8 @@ class RevPiPyControl(tkinter.Frame):
self._fillconnbar() self._fillconnbar()
def plclogs(self): def plclogs(self):
u"""Öffnet das Fenster für Logdateien.""" u"""Öffnet das Fenster für Logdateien.
@return None"""
if "load_plclog" not in self.xmlfuncs: if "load_plclog" not in self.xmlfuncs:
tkmsg.showwarning( tkmsg.showwarning(
_("Warning"), _("Warning"),
@@ -345,6 +348,7 @@ class RevPiPyControl(tkinter.Frame):
) )
def tmr_plcrunning(self): def tmr_plcrunning(self):
u"""Timer der den Status des PLC Programms prüft."""
self._btnstate() self._btnstate()
if self.cli is None: if self.cli is None:
self.txt_status["readonlybackground"] = "lightblue" self.txt_status["readonlybackground"] = "lightblue"