mirror of
https://github.com/naruxde/revpipycontrol.git
synced 2025-11-08 15:43:52 +01:00
mktemp auf mkstemp umgestellt
PLC monitor aktiviert revpicheckclient auf revpipyloader angepasst Module als einzelnes Fenster anzeigen
This commit is contained in:
@@ -3,6 +3,6 @@ syntax: glob
|
||||
deb_dist/*
|
||||
dist/*
|
||||
revpipycontrol.egg-info/*
|
||||
doc/*
|
||||
deb/*
|
||||
.eric6project/*
|
||||
*.directory
|
||||
|
||||
136
doc/revpicheckclient.html
Normal file
136
doc/revpicheckclient.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>revpicheckclient</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">
|
||||
revpicheckclient</h1>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient">RevPiCheckClient</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Functions</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<hr /><hr />
|
||||
<a NAME="RevPiCheckClient" ID="RevPiCheckClient"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiCheckClient</h2>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Derived from</h3>
|
||||
tkinter.Frame
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Class Attributes</h3>
|
||||
<table>
|
||||
<tr><td>cli</td></tr><tr><td>tk</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="#RevPiCheckClient.__init__">RevPiCheckClient</a></td>
|
||||
<td>Instantiiert MyApp-Klasse.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient.__hidewin">__hidewin</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient.__showwin">__showwin</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient._createiogroup">_createiogroup</a></td>
|
||||
<td>Erstellt IO-Gruppen.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient._createwidgets">_createwidgets</a></td>
|
||||
<td>Erstellt den Fensterinhalt.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient._readvalues">_readvalues</a></td>
|
||||
<td>Alle Werte der Inputs und Outputs abrufen.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient.chval">chval</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient.onfrmconf">onfrmconf</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient.readvalues">readvalues</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiCheckClient.toggleauto">toggleauto</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="RevPiCheckClient.__init__" ID="RevPiCheckClient.__init__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient (Constructor)</h3>
|
||||
<b>RevPiCheckClient</b>(<i>master, xmlcli, xmlmode=0</i>)
|
||||
<p>
|
||||
Instantiiert MyApp-Klasse.
|
||||
</p><a NAME="RevPiCheckClient.__hidewin" ID="RevPiCheckClient.__hidewin"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient.__hidewin</h3>
|
||||
<b>__hidewin</b>(<i>win, event=None</i>)
|
||||
<a NAME="RevPiCheckClient.__showwin" ID="RevPiCheckClient.__showwin"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient.__showwin</h3>
|
||||
<b>__showwin</b>(<i>win</i>)
|
||||
<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><a NAME="RevPiCheckClient._createwidgets" ID="RevPiCheckClient._createwidgets"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient._createwidgets</h3>
|
||||
<b>_createwidgets</b>(<i></i>)
|
||||
<p>
|
||||
Erstellt den Fensterinhalt.
|
||||
</p><a NAME="RevPiCheckClient._readvalues" ID="RevPiCheckClient._readvalues"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient._readvalues</h3>
|
||||
<b>_readvalues</b>(<i></i>)
|
||||
<p>
|
||||
Alle Werte der Inputs und Outputs abrufen.
|
||||
</p><a NAME="RevPiCheckClient.chval" ID="RevPiCheckClient.chval"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient.chval</h3>
|
||||
<b>chval</b>(<i>device, io</i>)
|
||||
<a NAME="RevPiCheckClient.onfrmconf" ID="RevPiCheckClient.onfrmconf"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient.onfrmconf</h3>
|
||||
<b>onfrmconf</b>(<i>canvas</i>)
|
||||
<a NAME="RevPiCheckClient.readvalues" ID="RevPiCheckClient.readvalues"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient.readvalues</h3>
|
||||
<b>readvalues</b>(<i></i>)
|
||||
<a NAME="RevPiCheckClient.toggleauto" ID="RevPiCheckClient.toggleauto"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiCheckClient.toggleauto</h3>
|
||||
<b>toggleauto</b>(<i></i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr />
|
||||
</body></html>
|
||||
114
doc/revpilogfile.html
Normal file
114
doc/revpilogfile.html
Normal file
@@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>revpilogfile</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">
|
||||
revpilogfile</h1>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile">RevPiLogfile</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Functions</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<hr /><hr />
|
||||
<a NAME="RevPiLogfile" ID="RevPiLogfile"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiLogfile</h2>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Derived from</h3>
|
||||
tkinter.Frame
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Class Attributes</h3>
|
||||
<table>
|
||||
<tr><td>None</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="#RevPiLogfile.__init__">RevPiLogfile</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile._createwidgets">_createwidgets</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile.btn_clearapp">btn_clearapp</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile.btn_clearplc">btn_clearplc</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile.get_applines">get_applines</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile.get_applog">get_applog</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile.get_plclines">get_plclines</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiLogfile.get_plclog">get_plclog</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="RevPiLogfile.__init__" ID="RevPiLogfile.__init__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile (Constructor)</h3>
|
||||
<b>RevPiLogfile</b>(<i>master, xmlcli</i>)
|
||||
<a NAME="RevPiLogfile._createwidgets" ID="RevPiLogfile._createwidgets"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile._createwidgets</h3>
|
||||
<b>_createwidgets</b>(<i></i>)
|
||||
<a NAME="RevPiLogfile.btn_clearapp" ID="RevPiLogfile.btn_clearapp"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile.btn_clearapp</h3>
|
||||
<b>btn_clearapp</b>(<i></i>)
|
||||
<a NAME="RevPiLogfile.btn_clearplc" ID="RevPiLogfile.btn_clearplc"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile.btn_clearplc</h3>
|
||||
<b>btn_clearplc</b>(<i></i>)
|
||||
<a NAME="RevPiLogfile.get_applines" ID="RevPiLogfile.get_applines"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile.get_applines</h3>
|
||||
<b>get_applines</b>(<i></i>)
|
||||
<a NAME="RevPiLogfile.get_applog" ID="RevPiLogfile.get_applog"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile.get_applog</h3>
|
||||
<b>get_applog</b>(<i></i>)
|
||||
<a NAME="RevPiLogfile.get_plclines" ID="RevPiLogfile.get_plclines"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile.get_plclines</h3>
|
||||
<b>get_plclines</b>(<i></i>)
|
||||
<a NAME="RevPiLogfile.get_plclog" ID="RevPiLogfile.get_plclog"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiLogfile.get_plclog</h3>
|
||||
<b>get_plclog</b>(<i></i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr />
|
||||
</body></html>
|
||||
100
doc/revpioption.html
Normal file
100
doc/revpioption.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>revpioption</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">
|
||||
revpioption</h1>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiOption">RevPiOption</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Functions</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<hr /><hr />
|
||||
<a NAME="RevPiOption" ID="RevPiOption"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiOption</h2>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Derived from</h3>
|
||||
tkinter.Frame
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Class Attributes</h3>
|
||||
<table>
|
||||
<tr><td>None</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="#RevPiOption.__init__">RevPiOption</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiOption._createwidgets">_createwidgets</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiOption._loadappdata">_loadappdata</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiOption._setappdata">_setappdata</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiOption.askxmlon">askxmlon</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiOption.xmlmods">xmlmods</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="RevPiOption.__init__" ID="RevPiOption.__init__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiOption (Constructor)</h3>
|
||||
<b>RevPiOption</b>(<i>master, xmlcli, xmlmode</i>)
|
||||
<a NAME="RevPiOption._createwidgets" ID="RevPiOption._createwidgets"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiOption._createwidgets</h3>
|
||||
<b>_createwidgets</b>(<i></i>)
|
||||
<a NAME="RevPiOption._loadappdata" ID="RevPiOption._loadappdata"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiOption._loadappdata</h3>
|
||||
<b>_loadappdata</b>(<i></i>)
|
||||
<a NAME="RevPiOption._setappdata" ID="RevPiOption._setappdata"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiOption._setappdata</h3>
|
||||
<b>_setappdata</b>(<i></i>)
|
||||
<a NAME="RevPiOption.askxmlon" ID="RevPiOption.askxmlon"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiOption.askxmlon</h3>
|
||||
<b>askxmlon</b>(<i></i>)
|
||||
<a NAME="RevPiOption.xmlmods" ID="RevPiOption.xmlmods"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiOption.xmlmods</h3>
|
||||
<b>xmlmods</b>(<i></i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr />
|
||||
</body></html>
|
||||
151
doc/revpiplclist.html
Normal file
151
doc/revpiplclist.html
Normal file
@@ -0,0 +1,151 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>revpiplclist</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">
|
||||
revpiplclist</h1>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>savefile</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList">RevPiPlcList</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Functions</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#get_connections">get_connections</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr /><hr />
|
||||
<a NAME="RevPiPlcList" ID="RevPiPlcList"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiPlcList</h2>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Derived from</h3>
|
||||
tkinter.Frame
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Class Attributes</h3>
|
||||
<table>
|
||||
<tr><td>myapp</td></tr><tr><td>root</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="#RevPiPlcList.__init__">RevPiPlcList</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList._createwidgets">_createwidgets</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList._loadappdata">_loadappdata</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList._saveappdata">_saveappdata</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.build_listconn">build_listconn</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnadd">evt_btnadd</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnclose">evt_btnclose</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnnew">evt_btnnew</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnremove">evt_btnremove</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_btnsave">evt_btnsave</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_keypress">evt_keypress</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPlcList.evt_listconn">evt_listconn</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="RevPiPlcList.__init__" ID="RevPiPlcList.__init__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList (Constructor)</h3>
|
||||
<b>RevPiPlcList</b>(<i>master</i>)
|
||||
<a NAME="RevPiPlcList._createwidgets" ID="RevPiPlcList._createwidgets"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList._createwidgets</h3>
|
||||
<b>_createwidgets</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList._loadappdata" ID="RevPiPlcList._loadappdata"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList._loadappdata</h3>
|
||||
<b>_loadappdata</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList._saveappdata" ID="RevPiPlcList._saveappdata"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList._saveappdata</h3>
|
||||
<b>_saveappdata</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.build_listconn" ID="RevPiPlcList.build_listconn"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.build_listconn</h3>
|
||||
<b>build_listconn</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.evt_btnadd" ID="RevPiPlcList.evt_btnadd"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_btnadd</h3>
|
||||
<b>evt_btnadd</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.evt_btnclose" ID="RevPiPlcList.evt_btnclose"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_btnclose</h3>
|
||||
<b>evt_btnclose</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.evt_btnnew" ID="RevPiPlcList.evt_btnnew"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_btnnew</h3>
|
||||
<b>evt_btnnew</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.evt_btnremove" ID="RevPiPlcList.evt_btnremove"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_btnremove</h3>
|
||||
<b>evt_btnremove</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.evt_btnsave" ID="RevPiPlcList.evt_btnsave"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_btnsave</h3>
|
||||
<b>evt_btnsave</b>(<i></i>)
|
||||
<a NAME="RevPiPlcList.evt_keypress" ID="RevPiPlcList.evt_keypress"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_keypress</h3>
|
||||
<b>evt_keypress</b>(<i>evt=None</i>)
|
||||
<a NAME="RevPiPlcList.evt_listconn" ID="RevPiPlcList.evt_listconn"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPlcList.evt_listconn</h3>
|
||||
<b>evt_listconn</b>(<i>evt=None</i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr /><hr />
|
||||
<a NAME="get_connections" ID="get_connections"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">get_connections</h2>
|
||||
<b>get_connections</b>(<i></i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr />
|
||||
</body></html>
|
||||
187
doc/revpiprogram.html
Normal file
187
doc/revpiprogram.html
Normal file
@@ -0,0 +1,187 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>revpiprogram</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">
|
||||
revpiprogram</h1>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>savefile</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram">RevPiProgram</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Functions</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<hr /><hr />
|
||||
<a NAME="RevPiProgram" ID="RevPiProgram"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiProgram</h2>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Derived from</h3>
|
||||
tkinter.Frame
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Class Attributes</h3>
|
||||
<table>
|
||||
<tr><td>myapp</td></tr><tr><td>root</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="#RevPiProgram.__init__">RevPiProgram</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram._createwidgets">_createwidgets</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram._evt_optdown">_evt_optdown</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram._evt_optup">_evt_optup</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram._loaddefault">_loaddefault</a></td>
|
||||
<td>Uebernimmt fuer den Pi die letzen Pfade.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram._savedefaults">_savedefaults</a></td>
|
||||
<td>Schreibt fuer den Pi die letzen Pfade.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.check_replacedir">check_replacedir</a></td>
|
||||
<td>Gibt das rootdir von einem entpackten Verzeichnis zurueck.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.create_filelist">create_filelist</a></td>
|
||||
<td>Erstellt eine Dateiliste von einem Verzeichnis.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.getpictoryrsc">getpictoryrsc</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.getprocimg">getprocimg</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.picontrolreset">picontrolreset</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.plcdownload">plcdownload</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.plcupload">plcupload</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiProgram.setpictoryrsc">setpictoryrsc</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="RevPiProgram.__init__" ID="RevPiProgram.__init__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram (Constructor)</h3>
|
||||
<b>RevPiProgram</b>(<i>master, xmlcli, xmlmode, revpi</i>)
|
||||
<a NAME="RevPiProgram._createwidgets" ID="RevPiProgram._createwidgets"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram._createwidgets</h3>
|
||||
<b>_createwidgets</b>(<i></i>)
|
||||
<a NAME="RevPiProgram._evt_optdown" ID="RevPiProgram._evt_optdown"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram._evt_optdown</h3>
|
||||
<b>_evt_optdown</b>(<i>text=""</i>)
|
||||
<a NAME="RevPiProgram._evt_optup" ID="RevPiProgram._evt_optup"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram._evt_optup</h3>
|
||||
<b>_evt_optup</b>(<i>text=""</i>)
|
||||
<a NAME="RevPiProgram._loaddefault" ID="RevPiProgram._loaddefault"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram._loaddefault</h3>
|
||||
<b>_loaddefault</b>(<i>full=False</i>)
|
||||
<p>
|
||||
Uebernimmt fuer den Pi die letzen Pfade.
|
||||
</p><a NAME="RevPiProgram._savedefaults" ID="RevPiProgram._savedefaults"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram._savedefaults</h3>
|
||||
<b>_savedefaults</b>(<i></i>)
|
||||
<p>
|
||||
Schreibt fuer den Pi die letzen Pfade.
|
||||
</p><a NAME="RevPiProgram.check_replacedir" ID="RevPiProgram.check_replacedir"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.check_replacedir</h3>
|
||||
<b>check_replacedir</b>(<i>rootdir</i>)
|
||||
<p>
|
||||
Gibt das rootdir von einem entpackten Verzeichnis zurueck.
|
||||
</p><p>
|
||||
Dabei wird geprueft, ob es sich um einen einzelnen Ordner handelt
|
||||
und ob es eine piCtory Konfiguraiton im rootdir gibt.
|
||||
</p><dl>
|
||||
<dt><i>rootdir:</i></dt>
|
||||
<dd>
|
||||
Verzeichnis fuer Pruefung
|
||||
</dd>
|
||||
</dl><dl>
|
||||
<dt>Returns:</dt>
|
||||
<dd>
|
||||
Abgeaendertes rootdir
|
||||
</dd>
|
||||
</dl><a NAME="RevPiProgram.create_filelist" ID="RevPiProgram.create_filelist"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.create_filelist</h3>
|
||||
<b>create_filelist</b>(<i>rootdir</i>)
|
||||
<p>
|
||||
Erstellt eine Dateiliste von einem Verzeichnis.
|
||||
</p><dl>
|
||||
<dt><i>rootdir:</i></dt>
|
||||
<dd>
|
||||
Verzeichnis fuer das eine Liste erstellt werden soll
|
||||
</dd>
|
||||
</dl><dl>
|
||||
<dt>Returns:</dt>
|
||||
<dd>
|
||||
Dateiliste
|
||||
</dd>
|
||||
</dl><a NAME="RevPiProgram.getpictoryrsc" ID="RevPiProgram.getpictoryrsc"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.getpictoryrsc</h3>
|
||||
<b>getpictoryrsc</b>(<i></i>)
|
||||
<a NAME="RevPiProgram.getprocimg" ID="RevPiProgram.getprocimg"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.getprocimg</h3>
|
||||
<b>getprocimg</b>(<i></i>)
|
||||
<a NAME="RevPiProgram.picontrolreset" ID="RevPiProgram.picontrolreset"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.picontrolreset</h3>
|
||||
<b>picontrolreset</b>(<i></i>)
|
||||
<a NAME="RevPiProgram.plcdownload" ID="RevPiProgram.plcdownload"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.plcdownload</h3>
|
||||
<b>plcdownload</b>(<i></i>)
|
||||
<a NAME="RevPiProgram.plcupload" ID="RevPiProgram.plcupload"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.plcupload</h3>
|
||||
<b>plcupload</b>(<i></i>)
|
||||
<a NAME="RevPiProgram.setpictoryrsc" ID="RevPiProgram.setpictoryrsc"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiProgram.setpictoryrsc</h3>
|
||||
<b>setpictoryrsc</b>(<i>filename=None</i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr />
|
||||
</body></html>
|
||||
209
doc/revpipycontrol.html
Normal file
209
doc/revpipycontrol.html
Normal file
@@ -0,0 +1,209 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>revpipycontrol</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">
|
||||
revpipycontrol</h1>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Global Attributes</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Classes</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl">RevPiPyControl</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Functions</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a style="color:#0000FF" href="#addroot">addroot</a></td>
|
||||
<td>Hängt root-dir der Anwendung vor Dateinamen.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr /><hr />
|
||||
<a NAME="RevPiPyControl" ID="RevPiPyControl"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiPyControl</h2>
|
||||
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Derived from</h3>
|
||||
tkinter.Frame
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Class Attributes</h3>
|
||||
<table>
|
||||
<tr><td>myapp</td></tr><tr><td>root</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="#RevPiPyControl.__init__">RevPiPyControl</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl._btnstate">_btnstate</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl._closeall">_closeall</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl._createwidgets">_createwidgets</a></td>
|
||||
<td>Erstellt den Fensterinhalt.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl._fillconnbar">_fillconnbar</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl._fillmbar">_fillmbar</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl._opt_conn">_opt_conn</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plclist">plclist</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plclogs">plclogs</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plcmonitor">plcmonitor</a></td>
|
||||
<td>Startet das Monitorfenster.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plcoptions">plcoptions</a></td>
|
||||
<td>Startet das Optionsfenster.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plcprogram">plcprogram</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plcrestart">plcrestart</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plcstart">plcstart</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.plcstop">plcstop</a></td>
|
||||
<td></td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.servererror">servererror</a></td>
|
||||
<td>Setzt alles auf NULL.</td>
|
||||
</tr><tr>
|
||||
<td><a style="color:#0000FF" href="#RevPiPyControl.tmr_plcrunning">tmr_plcrunning</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
Static Methods</h3>
|
||||
<table>
|
||||
<tr><td>None</td></tr>
|
||||
</table>
|
||||
<a NAME="RevPiPyControl.__init__" ID="RevPiPyControl.__init__"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl (Constructor)</h3>
|
||||
<b>RevPiPyControl</b>(<i>master=None</i>)
|
||||
<a NAME="RevPiPyControl._btnstate" ID="RevPiPyControl._btnstate"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl._btnstate</h3>
|
||||
<b>_btnstate</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl._closeall" ID="RevPiPyControl._closeall"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl._closeall</h3>
|
||||
<b>_closeall</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl._createwidgets" ID="RevPiPyControl._createwidgets"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl._createwidgets</h3>
|
||||
<b>_createwidgets</b>(<i></i>)
|
||||
<p>
|
||||
Erstellt den Fensterinhalt.
|
||||
</p><a NAME="RevPiPyControl._fillconnbar" ID="RevPiPyControl._fillconnbar"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl._fillconnbar</h3>
|
||||
<b>_fillconnbar</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl._fillmbar" ID="RevPiPyControl._fillmbar"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl._fillmbar</h3>
|
||||
<b>_fillmbar</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl._opt_conn" ID="RevPiPyControl._opt_conn"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl._opt_conn</h3>
|
||||
<b>_opt_conn</b>(<i>text</i>)
|
||||
<a NAME="RevPiPyControl.plclist" ID="RevPiPyControl.plclist"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plclist</h3>
|
||||
<b>plclist</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl.plclogs" ID="RevPiPyControl.plclogs"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plclogs</h3>
|
||||
<b>plclogs</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl.plcmonitor" ID="RevPiPyControl.plcmonitor"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plcmonitor</h3>
|
||||
<b>plcmonitor</b>(<i></i>)
|
||||
<p>
|
||||
Startet das Monitorfenster.
|
||||
</p><a NAME="RevPiPyControl.plcoptions" ID="RevPiPyControl.plcoptions"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plcoptions</h3>
|
||||
<b>plcoptions</b>(<i></i>)
|
||||
<p>
|
||||
Startet das Optionsfenster.
|
||||
</p><a NAME="RevPiPyControl.plcprogram" ID="RevPiPyControl.plcprogram"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plcprogram</h3>
|
||||
<b>plcprogram</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl.plcrestart" ID="RevPiPyControl.plcrestart"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plcrestart</h3>
|
||||
<b>plcrestart</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl.plcstart" ID="RevPiPyControl.plcstart"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plcstart</h3>
|
||||
<b>plcstart</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl.plcstop" ID="RevPiPyControl.plcstop"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.plcstop</h3>
|
||||
<b>plcstop</b>(<i></i>)
|
||||
<a NAME="RevPiPyControl.servererror" ID="RevPiPyControl.servererror"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.servererror</h3>
|
||||
<b>servererror</b>(<i></i>)
|
||||
<p>
|
||||
Setzt alles auf NULL.
|
||||
</p><a NAME="RevPiPyControl.tmr_plcrunning" ID="RevPiPyControl.tmr_plcrunning"></a>
|
||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||
RevPiPyControl.tmr_plcrunning</h3>
|
||||
<b>tmr_plcrunning</b>(<i></i>)
|
||||
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr /><hr />
|
||||
<a NAME="addroot" ID="addroot"></a>
|
||||
<h2 style="background-color:#FFFFFF;color:#0000FF">addroot</h2>
|
||||
<b>addroot</b>(<i>filename</i>)
|
||||
<p>
|
||||
Hängt root-dir der Anwendung vor Dateinamen.
|
||||
</p><p>
|
||||
Je nach Ausführungsart der Anwendung muss das root-dir über
|
||||
andere Arten abgerufen werden.
|
||||
</p><dl>
|
||||
<dt><i>filename:</i></dt>
|
||||
<dd>
|
||||
Datei oder Ordnername
|
||||
</dd>
|
||||
</dl><dl>
|
||||
<dt>Returns:</dt>
|
||||
<dd>
|
||||
root dir
|
||||
</dd>
|
||||
</dl>
|
||||
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
|
||||
<hr />
|
||||
</body></html>
|
||||
@@ -1,15 +1,15 @@
|
||||
revpicheckclient.RevPiCheckClient._autorw?5()
|
||||
revpicheckclient.RevPiCheckClient.__hidewin?6(win, event=None)
|
||||
revpicheckclient.RevPiCheckClient.__showwin?6(win)
|
||||
revpicheckclient.RevPiCheckClient._createiogroup?5(device, frame, iotype)
|
||||
revpicheckclient.RevPiCheckClient._createwidgets?5()
|
||||
revpicheckclient.RevPiCheckClient._readvaluesdev?5(device, iotype)
|
||||
revpicheckclient.RevPiCheckClient._writevaluesdev?5(device)
|
||||
revpicheckclient.RevPiCheckClient.myapp?7
|
||||
revpicheckclient.RevPiCheckClient._readvalues?5()
|
||||
revpicheckclient.RevPiCheckClient.chval?4(device, io)
|
||||
revpicheckclient.RevPiCheckClient.cli?7
|
||||
revpicheckclient.RevPiCheckClient.onfrmconf?4(canvas)
|
||||
revpicheckclient.RevPiCheckClient.readvalues?4()
|
||||
revpicheckclient.RevPiCheckClient.root?7
|
||||
revpicheckclient.RevPiCheckClient.tk?7
|
||||
revpicheckclient.RevPiCheckClient.toggleauto?4()
|
||||
revpicheckclient.RevPiCheckClient.writevalues?4()
|
||||
revpicheckclient.RevPiCheckClient?1(master, xmlcli)
|
||||
revpicheckclient.RevPiCheckClient?1(master, xmlcli, xmlmode=0)
|
||||
revpilogfile.RevPiLogfile._createwidgets?5()
|
||||
revpilogfile.RevPiLogfile.btn_clearapp?4()
|
||||
revpilogfile.RevPiLogfile.btn_clearplc?4()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
||||
<!-- eric project file for project revpipycontrol -->
|
||||
<!-- Saved: 2017-04-11, 12:38:06 -->
|
||||
<!-- Saved: 2017-06-27, 16:07:48 -->
|
||||
<!-- Copyright (C) 2017 Sven Sager, akira@narux.de -->
|
||||
<Project version="5.1">
|
||||
<Language>en_US</Language>
|
||||
@@ -9,7 +9,7 @@
|
||||
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
||||
<ProjectType>Console</ProjectType>
|
||||
<Description></Description>
|
||||
<Version>0.2.12</Version>
|
||||
<Version>0.4.0</Version>
|
||||
<Author>Sven Sager</Author>
|
||||
<Email>akira@narux.de</Email>
|
||||
<Eol index="-1"/>
|
||||
@@ -30,6 +30,7 @@
|
||||
<Other>data</Other>
|
||||
<Other>doc</Other>
|
||||
<Other>revpipycontrol.api</Other>
|
||||
<Other>stdeb.cfg</Other>
|
||||
</Others>
|
||||
<MainScript>revpipycontrol/revpipycontrol.py</MainScript>
|
||||
<Vcs>
|
||||
|
||||
@@ -9,28 +9,29 @@
|
||||
|
||||
import pickle
|
||||
import tkinter
|
||||
from argparse import ArgumentParser
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from time import sleep
|
||||
from xmlrpc.client import ServerProxy, Binary, MultiCall
|
||||
from threading import Lock
|
||||
from xmlrpc.client import ServerProxy
|
||||
|
||||
|
||||
class RevPiCheckClient(tkinter.Frame):
|
||||
|
||||
def __init__(self, master, xmlcli):
|
||||
def __init__(self, master, xmlcli, xmlmode=0):
|
||||
"""Instantiiert MyApp-Klasse."""
|
||||
super().__init__(master)
|
||||
self.pack(fill="both", expand=True)
|
||||
|
||||
# XML-Daten abrufen
|
||||
self.xmlmode = xmlmode
|
||||
self.cli = xmlcli
|
||||
self.cli.psstart()
|
||||
self.lst_devices = self.cli.ps_devices()
|
||||
self.dict_inps = pickle.loads(self.cli.ps_inps().data)
|
||||
self.dict_outs = pickle.loads(self.cli.ps_outs().data)
|
||||
|
||||
self.lst_devices = self.cli.get_devicenames()
|
||||
self.lst_group = []
|
||||
self.dict_inpvar = {}
|
||||
self.dict_outvar = {}
|
||||
self.lk = Lock()
|
||||
|
||||
self.autorw = tkinter.BooleanVar()
|
||||
self.fut_autorw = None
|
||||
self.dowrite = tkinter.BooleanVar()
|
||||
|
||||
# Fenster aufbauen
|
||||
self._createwidgets()
|
||||
@@ -38,33 +39,6 @@ class RevPiCheckClient(tkinter.Frame):
|
||||
# Aktuelle Werte einlesen
|
||||
self.readvalues()
|
||||
|
||||
def _autorw(self):
|
||||
dict_inp = {}
|
||||
dict_out = {}
|
||||
|
||||
while self.autorw.get():
|
||||
for dev in self.lst_devices:
|
||||
try:
|
||||
dict_out[dev] = [
|
||||
value[8].get() for value in self.dict_outvar[dev]
|
||||
]
|
||||
except:
|
||||
print("lasse {} aus".format(dev))
|
||||
|
||||
dict_inp = self.cli.refreshvalues(
|
||||
Binary(pickle.dumps(dict_out, 3))
|
||||
)
|
||||
dict_inp = pickle.loads(dict_inp.data)
|
||||
|
||||
for dev in dict_inp:
|
||||
for io in self.dict_inpvar[dev]:
|
||||
try:
|
||||
io[8].set(dict_inp[dev].pop(0))
|
||||
except:
|
||||
print("lasse {} aus".format(io[0]))
|
||||
|
||||
sleep(0.1)
|
||||
|
||||
def onfrmconf(self, canvas):
|
||||
canvas.configure(scrollregion=canvas.bbox("all"))
|
||||
|
||||
@@ -85,23 +59,34 @@ class RevPiCheckClient(tkinter.Frame):
|
||||
)
|
||||
|
||||
rowcount = 0
|
||||
for io in self.cli.get_iolist(device, iotype):
|
||||
# io = [name,default,anzbits,adressbyte,export,adressid,bmk,bitaddress,tkinter_var]
|
||||
|
||||
if iotype == "inp":
|
||||
lst_io = self.dict_inps[device]
|
||||
else:
|
||||
lst_io = self.dict_outs[device]
|
||||
|
||||
for io in lst_io:
|
||||
# io = [name,bytelen,byteaddr,bmk,bitaddress,(tkinter_var)]
|
||||
|
||||
tkinter.Label(s_frame, text=io[0]).grid(
|
||||
column=0, row=rowcount, sticky="w"
|
||||
)
|
||||
|
||||
if io[7] >= 0:
|
||||
if io[4] >= 0:
|
||||
var = tkinter.BooleanVar()
|
||||
check = tkinter.Checkbutton(s_frame)
|
||||
check["command"] = \
|
||||
lambda device=device, io=io: self.chval(device, io)
|
||||
check["state"] = "disabled" if iotype == "inp" else "normal"
|
||||
check["text"] = ""
|
||||
check["variable"] = var
|
||||
check.grid(column=1, row=rowcount)
|
||||
else:
|
||||
var = tkinter.IntVar()
|
||||
txt = tkinter.Spinbox(s_frame, to=256)
|
||||
# FIXME: Mehrere Bytes möglich
|
||||
txt = tkinter.Spinbox(s_frame, to=255 * io[1])
|
||||
txt["command"] = \
|
||||
lambda device=device, io=io: self.chval(device, io)
|
||||
txt["state"] = "disabled" if iotype == "inp" else "normal"
|
||||
txt["width"] = 4
|
||||
txt["textvariable"] = var
|
||||
@@ -109,116 +94,127 @@ class RevPiCheckClient(tkinter.Frame):
|
||||
|
||||
# Steuerelementvariable in IO übernehmen
|
||||
io.append(var)
|
||||
if iotype == "inp":
|
||||
self.dict_inpvar[device].append(io)
|
||||
elif iotype == "out":
|
||||
self.dict_outvar[device].append(io)
|
||||
|
||||
rowcount += 1
|
||||
|
||||
def __hidewin(self, win, event=None):
|
||||
win.withdraw()
|
||||
|
||||
def __showwin(self, win):
|
||||
if win.winfo_viewable():
|
||||
win.withdraw()
|
||||
else:
|
||||
win.deiconify()
|
||||
|
||||
def _createwidgets(self):
|
||||
"""Erstellt den Fensterinhalt."""
|
||||
# Hauptfenster
|
||||
self.master.wm_title("RevPi Onlineview")
|
||||
|
||||
devgrp = tkinter.LabelFrame(self)
|
||||
devgrp["text"] = "Devices of RevPi"
|
||||
devgrp.pack(fill="y", side="left")
|
||||
|
||||
for dev in self.lst_devices:
|
||||
# Variablen vorbereiten
|
||||
self.dict_inpvar[dev] = []
|
||||
self.dict_outvar[dev] = []
|
||||
win = tkinter.Toplevel(self)
|
||||
win.wm_title(dev[1])
|
||||
win.protocol(
|
||||
"WM_DELETE_WINDOW",
|
||||
lambda win=win: self.__hidewin(win)
|
||||
)
|
||||
win.withdraw()
|
||||
|
||||
# Devicegruppe erstellen
|
||||
group = tkinter.LabelFrame(self)
|
||||
group["text"] = dev
|
||||
group = tkinter.LabelFrame(win)
|
||||
group["text"] = dev[1]
|
||||
group.pack(side="left", fill="both", expand=True)
|
||||
self.lst_group.append(group)
|
||||
|
||||
for iotype in ["inp", "out"]:
|
||||
frame = tkinter.Frame(group)
|
||||
frame.pack(side="left", fill="both", expand=True)
|
||||
self._createiogroup(dev, frame, iotype)
|
||||
self._createiogroup(dev[0], frame, iotype)
|
||||
|
||||
# self.btn_update = tkinter.Button(self)
|
||||
# self.btn_update["text"] = "UPDATE"
|
||||
# self.btn_update["command"] = self._autorw
|
||||
# self.btn_update.pack(anchor="s", side="bottom", fill="x")
|
||||
# Button erstellen
|
||||
btn = tkinter.Button(devgrp)
|
||||
btn["command"] = lambda win=win: self.__showwin(win)
|
||||
btn["text"] = dev[1]
|
||||
btn.pack(fill="x", padx=10, pady=5)
|
||||
|
||||
self.btn_write = tkinter.Button(self)
|
||||
self.btn_write["text"] = "SCHREIBEN"
|
||||
self.btn_write["command"] = self.writevalues
|
||||
self.btn_write.pack(side="bottom", fill="x")
|
||||
# Steuerungsfunktionen
|
||||
cntgrp = tkinter.LabelFrame(self)
|
||||
cntgrp["text"] = "Control"
|
||||
cntgrp.pack(fill="y", side="right")
|
||||
|
||||
self.btn_read = tkinter.Button(self)
|
||||
self.btn_read = tkinter.Button(cntgrp)
|
||||
self.btn_read["text"] = "LESEN"
|
||||
self.btn_read["command"] = self.readvalues
|
||||
self.btn_read.pack(side="bottom", fill="x")
|
||||
self.btn_read.pack(fill="x")
|
||||
|
||||
check = tkinter.Checkbutton(self)
|
||||
check = tkinter.Checkbutton(cntgrp)
|
||||
check["command"] = self.toggleauto
|
||||
check["text"] = "autoupdate"
|
||||
check["text"] = "autorefresh processimage"
|
||||
check["variable"] = self.autorw
|
||||
check.pack(side="bottom")
|
||||
check.pack(anchor="w")
|
||||
|
||||
def _readvaluesdev(self, device, iotype):
|
||||
"""Ruft alle aktuellen Werte fuer das Device ab."""
|
||||
# Multicall vorbereiten
|
||||
mc_values = MultiCall(self.cli)
|
||||
check = tkinter.Checkbutton(cntgrp)
|
||||
check["state"] = "disabled" if self.xmlmode < 3 else "normal"
|
||||
check["text"] = "write values to processimage"
|
||||
check["variable"] = self.dowrite
|
||||
check.pack(anchor="w")
|
||||
|
||||
if iotype == "inp":
|
||||
lst_ios = self.dict_inpvar[device]
|
||||
elif iotype == "out":
|
||||
lst_ios = self.dict_outvar[device]
|
||||
def chval(self, device, io):
|
||||
if self.dowrite.get():
|
||||
with self.lk:
|
||||
self.cli.ps_setvalue(device, io[0], io[5].get())
|
||||
|
||||
for io in lst_ios:
|
||||
mc_values.get_iovalue(device, io[0])
|
||||
# Alles neu einlesen wenn nicht AutoRW aktiv ist
|
||||
if not self.autorw.get():
|
||||
self.readvalues()
|
||||
|
||||
i = 0
|
||||
for value in mc_values():
|
||||
value = pickle.loads(value.data)
|
||||
if type(value) == bytes:
|
||||
value = int.from_bytes(value, byteorder="little")
|
||||
|
||||
lst_ios[i][8].set(value)
|
||||
i += 1
|
||||
|
||||
def _writevaluesdev(self, device):
|
||||
"""Sendet Werte der Outputs fuer ein Device."""
|
||||
# Multicall vorbereiten
|
||||
mc_values = MultiCall(self.cli)
|
||||
lst_ios = lst_ios = self.dict_outvar[device]
|
||||
|
||||
for io in lst_ios:
|
||||
mc_values.set_iovalue(device, io[0], pickle.dumps(io[8].get(), 3))
|
||||
|
||||
# Multicall ausführen
|
||||
mc_values()
|
||||
|
||||
def readvalues(self):
|
||||
def _readvalues(self):
|
||||
"""Alle Werte der Inputs und Outputs abrufen."""
|
||||
# Werte aus Prozessabbild einlesen
|
||||
self.cli.readprocimg()
|
||||
|
||||
# Werte abrufen
|
||||
with self.lk:
|
||||
ba_values = bytearray(self.cli.ps_values().data)
|
||||
|
||||
for dev in self.lst_devices:
|
||||
self._readvaluesdev(dev, "inp")
|
||||
self._readvaluesdev(dev, "out")
|
||||
# io = [name,bytelen,byteaddr,bmk,bitaddress,(tkinter_var)]
|
||||
|
||||
# IO Typ verarbeiten
|
||||
for iotype in [self.dict_inps, self.dict_outs]:
|
||||
# ios verarbeiten
|
||||
for io in iotype[dev[0]]:
|
||||
|
||||
# Bytes umwandeln
|
||||
int_byte = int.from_bytes(
|
||||
ba_values[io[2]:io[2] + io[1]], byteorder="little"
|
||||
)
|
||||
if io[4] >= 0:
|
||||
# Bit-IO
|
||||
io[5].set(bool(int_byte & 1 << io[4]))
|
||||
else:
|
||||
# Byte-IO
|
||||
io[5].set(int_byte)
|
||||
|
||||
if self.autorw.get():
|
||||
self.master.after(200, self._readvalues)
|
||||
|
||||
def readvalues(self):
|
||||
if not self.autorw.get():
|
||||
self._readvalues()
|
||||
|
||||
def toggleauto(self):
|
||||
self.btn_read["state"] = "disabled" if self.autorw.get() else "normal"
|
||||
self.btn_write["state"] = "disabled" if self.autorw.get() else "normal"
|
||||
if self.autorw.get() \
|
||||
and (self.fut_autorw is None or self.fut_autorw.done()):
|
||||
e = ThreadPoolExecutor(max_workers=1)
|
||||
self.fut_autorw = e.submit(self._autorw)
|
||||
if self.autorw.get():
|
||||
self._readvalues()
|
||||
|
||||
def writevalues(self):
|
||||
"""Alle Outputs senden."""
|
||||
pass
|
||||
#for dev in self.lst_devices:
|
||||
#self._writevaluesdev(dev)
|
||||
|
||||
# Werte in Prozessabbild schreiben
|
||||
#self.cli.writeprocimg()
|
||||
|
||||
# Testdrive
|
||||
if __name__ == "__main__":
|
||||
root = tkinter.Tk()
|
||||
myapp = RevPiCheckClient(root)
|
||||
myapp.mainloop()
|
||||
cli = ServerProxy("http://192.168.50.35:55123")
|
||||
cli.psstart()
|
||||
|
||||
tk = tkinter.Tk()
|
||||
RevPiCheckClient(tk, cli, 3)
|
||||
tk.mainloop()
|
||||
|
||||
@@ -17,7 +17,7 @@ from os import environ
|
||||
from os import makedirs
|
||||
from shutil import rmtree
|
||||
from sys import platform
|
||||
from tempfile import mktemp, mkdtemp
|
||||
from tempfile import mkstemp, mkdtemp
|
||||
from xmlrpc.client import Binary
|
||||
|
||||
|
||||
@@ -363,7 +363,7 @@ class RevPiProgram(tkinter.Frame):
|
||||
message="Die Übertragung der piCtory Konfiguration "
|
||||
"wurde erfolgreich ausgeführt")
|
||||
|
||||
#Einstellungen speichern
|
||||
# Einstellungen speichern
|
||||
self.opt["setpictoryrsc_dir"] = os.path.dirname(fh.name)
|
||||
self._savedefaults()
|
||||
elif ec < 0:
|
||||
@@ -415,7 +415,7 @@ class RevPiProgram(tkinter.Frame):
|
||||
)
|
||||
|
||||
if type(dirselect) == str and dirselect != "":
|
||||
fh = open(mktemp(), "wb")
|
||||
fh = open(mkstemp(), "wb")
|
||||
|
||||
elif tdown == 1:
|
||||
# Zip
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# RevPiPyControl
|
||||
# Version: 0.2.12
|
||||
# Version: 0.4.0
|
||||
#
|
||||
# Webpage: https://revpimodio.org/revpipyplc/
|
||||
# (c) Sven Sager, License: LGPLv3
|
||||
#
|
||||
# -*- coding: utf-8 -*-
|
||||
import revpicheckclient
|
||||
import revpilogfile
|
||||
import revpioption
|
||||
import revpiplclist
|
||||
@@ -50,6 +51,7 @@ class RevPiPyControl(tkinter.Frame):
|
||||
self.xmlmode = 0
|
||||
|
||||
# Globale Fenster
|
||||
self.tkcheckclient = None
|
||||
self.tklogs = None
|
||||
self.tkoptions = None
|
||||
self.tkprogram = None
|
||||
@@ -124,7 +126,7 @@ class RevPiPyControl(tkinter.Frame):
|
||||
# PLC Menü
|
||||
self.mplc = tkinter.Menu(self.mbar, tearoff=False)
|
||||
self.mplc.add_command(label="PLC log...", command=self.plclogs)
|
||||
#self.mplc.add_command(label="PLC monitor...", command=self.plcmonitor)
|
||||
self.mplc.add_command(label="PLC monitor...", command=self.plcmonitor)
|
||||
self.mplc.add_command(label="PLC options...", command=self.plcoptions)
|
||||
self.mplc.add_command(label="PLC program...", command=self.plcprogram)
|
||||
self.mbar.add_cascade(label="PLC", menu=self.mplc, state="disabled")
|
||||
@@ -167,6 +169,8 @@ class RevPiPyControl(tkinter.Frame):
|
||||
self.mbar.entryconfig("PLC", state="normal")
|
||||
|
||||
def _closeall(self):
|
||||
if self.tkcheckclient is not None:
|
||||
self.tkcheckclient.destroy()
|
||||
if self.tklogs is not None:
|
||||
self.tklogs.master.destroy()
|
||||
if self.tkoptions is not None:
|
||||
@@ -191,10 +195,17 @@ class RevPiPyControl(tkinter.Frame):
|
||||
self.tklogs.focus_set()
|
||||
|
||||
def plcmonitor(self):
|
||||
# TODO: Monitorfenster
|
||||
pass
|
||||
"""Startet das Monitorfenster."""
|
||||
if self.tkcheckclient is None or len(self.tkcheckclient.children) == 0:
|
||||
win = tkinter.Toplevel(self)
|
||||
self.tkcheckclient = revpicheckclient.RevPiCheckClient(
|
||||
win, self.cli, self.xmlmode
|
||||
)
|
||||
else:
|
||||
self.tkcheckclient.focus_set()
|
||||
|
||||
def plcoptions(self):
|
||||
"""Startet das Optionsfenster."""
|
||||
if self.xmlmode < 2:
|
||||
tkmsg.showwarning(
|
||||
parent=self.master, title="Warnung",
|
||||
|
||||
Reference in New Issue
Block a user