Moved paho to lib and switched VCS and IDE

Switched from Mercurial to GIT
Switched from eric6 to pyCharm
This commit is contained in:
2019-10-20 16:54:09 +02:00
parent 3df7e19ac6
commit e72942f961
43 changed files with 507 additions and 3077 deletions

119
.gitignore vendored Normal file
View File

@@ -0,0 +1,119 @@
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
# lib/
lib64/
parts/
sdist/
# var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
/test/
/make.conf
/lib/

View File

@@ -1,8 +0,0 @@
syntax: glob
*.tar.gz
test/*
.*
build/*
*.pyc
deb/*
demo/*

17
.idea/$CACHE_FILE$ generated Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State />
</expanded-state>
<selected-state>
<State>
<id>Angular</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
</project>

2
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,2 @@
# Default ignored files
/workspace.xml

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (revpi)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/revpipyload.iml" filepath="$PROJECT_DIR$/.idea/revpipyload.iml" />
</modules>
</component>
</project>

14
.idea/revpipyload.iml generated Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/revpipyload" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="Python 3.6 (revpi)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,2 @@
# DO NOT EDIT OR REMOVE
# This file is a simple placeholder to keep dpkg from removing this directory

View File

@@ -1,84 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>helper</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">
helper</h1>
<p>
Helperfunktionen fuer das gesamte RevPiPyLoad-System.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#_setuprt">_setuprt</a></td>
<td>Konfiguriert Programm fuer den RT-Scheduler.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#_zeroprocimg">_zeroprocimg</a></td>
<td>Setzt Prozessabbild auf NULL.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#refullmatch">refullmatch</a></td>
<td>re.fullmatch wegen alter python version aus wheezy nachgebaut.</td>
</tr>
</table>
<hr /><hr />
<a NAME="_setuprt" ID="_setuprt"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">_setuprt</h2>
<b>_setuprt</b>(<i>pid, evt_exit</i>)
<p>
Konfiguriert Programm fuer den RT-Scheduler.
</p><dl>
<dt><i>pid</i></dt>
<dd>
PID, der angehoben werden soll
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
None
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="_zeroprocimg" ID="_zeroprocimg"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">_zeroprocimg</h2>
<b>_zeroprocimg</b>(<i></i>)
<p>
Setzt Prozessabbild auf NULL.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="refullmatch" ID="refullmatch"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">refullmatch</h2>
<b>refullmatch</b>(<i>regex, string</i>)
<p>
re.fullmatch wegen alter python version aus wheezy nachgebaut.
</p><dl>
<dt><i>regex</i></dt>
<dd>
RegEx Statement
</dd><dt><i>string</i></dt>
<dd>
Zeichenfolge gegen die getestet wird
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
True, wenn komplett passt sonst False
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,22 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>revpipyload.shared</title>
<meta charset="UTF-8">
</head>
<body style="background-color:#FFFFFF;color:#000000">
<h1 style="background-color:#FFFFFF;color:#0000FF">
revpipyload.shared</h1>
<p>
Shared modules.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Modules</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="revpipyload.shared.ipaclmanager.html">ipaclmanager</a></td>
<td>Verwaltet IP Adressen und deren ACLs.</td>
</tr>
</table>
</body></html>

View File

@@ -1,55 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>Table of contents</title>
<meta charset="UTF-8">
</head>
<body style="background-color:#FFFFFF;color:#000000">
<h1 style="background-color:#FFFFFF;color:#0000FF">
Table of contents</h1>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Packages</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="index-revpipyload.shared.html">shared</a></td>
<td>Shared modules.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Modules</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="helper.html">helper</a></td>
<td>Helperfunktionen fuer das gesamte RevPiPyLoad-System.</td>
</tr><tr>
<td><a style="color:#0000FF" href="logsystem.html">logsystem</a></td>
<td>Modul fuer die Verwaltung der Logdateien.</td>
</tr><tr>
<td><a style="color:#0000FF" href="mqttserver.html">mqttserver</a></td>
<td>Stellt die MQTT Uebertragung fuer IoT-Zwecke bereit.</td>
</tr><tr>
<td><a style="color:#0000FF" href="picontrolserver.html">picontrolserver</a></td>
<td>Modul fuer die Verwaltung der PLC-Slave Funktionen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="plcsystem.html">plcsystem</a></td>
<td>Modul fuer die Verwaltung der PLC Funktionen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="procimgserver.html">procimgserver</a></td>
<td>Stellt Funktionen bereit um das Prozessabbild zu ueberwachen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="proginit.html">proginit</a></td>
<td>Main functions of our program.</td>
</tr><tr>
<td><a style="color:#0000FF" href="revpipyload.html">revpipyload</a></td>
<td>Revolution Pi Python PLC Loader.</td>
</tr><tr>
<td><a style="color:#0000FF" href="testsystem.html">testsystem</a></td>
<td>Test all config files and print results.</td>
</tr><tr>
<td><a style="color:#0000FF" href="xrpcserver.html">xrpcserver</a></td>
<td>XML-RPC Server anpassungen fuer Absicherung.</td>
</tr>
</table>
</body></html>

View File

@@ -1,248 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>logsystem</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">
logsystem</h1>
<p>
Modul fuer die Verwaltung der Logdateien.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#LogReader">LogReader</a></td>
<td>Ermoeglicht den Zugriff auf die Logdateien.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter">PipeLogwriter</a></td>
<td>File PIPE fuer das Schreiben des APP Log.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="LogReader" ID="LogReader"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">LogReader</h2>
<p>
Ermoeglicht den Zugriff auf die Logdateien.
</p><p>
Beinhaltet Funktionen fuer den Abruf der gesamten Logdatei fuer das
RevPiPyLoad-System und die Logdatei der PLC-Anwendung.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
None
<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="#LogReader.__init__">LogReader</a></td>
<td>Instantiiert LogReader-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#LogReader.closeall">closeall</a></td>
<td>Fuehrt close auf File Handler durch.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#LogReader.load_applog">load_applog</a></td>
<td>Uebertraegt Logdaten des PLC Programms Binaer.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#LogReader.load_plclog">load_plclog</a></td>
<td>Uebertraegt Logdaten des Loaders Binaer.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="LogReader.__init__" ID="LogReader.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
LogReader (Constructor)</h3>
<b>LogReader</b>(<i></i>)
<p>
Instantiiert LogReader-Klasse.
</p><a NAME="LogReader.closeall" ID="LogReader.closeall"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
LogReader.closeall</h3>
<b>closeall</b>(<i></i>)
<p>
Fuehrt close auf File Handler durch.
</p><a NAME="LogReader.load_applog" ID="LogReader.load_applog"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
LogReader.load_applog</h3>
<b>load_applog</b>(<i>start, count</i>)
<p>
Uebertraegt Logdaten des PLC Programms Binaer.
</p><dl>
<dt><i>start</i></dt>
<dd>
Startbyte
</dd><dt><i>count</i></dt>
<dd>
Max. Byteanzahl zum uebertragen
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Binary() der Logdatei
</dd>
</dl><a NAME="LogReader.load_plclog" ID="LogReader.load_plclog"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
LogReader.load_plclog</h3>
<b>load_plclog</b>(<i>start, count</i>)
<p>
Uebertraegt Logdaten des Loaders Binaer.
</p><dl>
<dt><i>start</i></dt>
<dd>
Startbyte
</dd><dt><i>count</i></dt>
<dd>
Max. Byteanzahl zum uebertragen
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Binary() der Logdatei
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="PipeLogwriter" ID="PipeLogwriter"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">PipeLogwriter</h2>
<p>
File PIPE fuer das Schreiben des APP Log.
</p><p>
Spezieller LogFile-Handler fuer die Ausgabe des subprocess fuer das Python
PLC Programm. Die Ausgabe kann nicht auf einen neuen FileHandler
umgeschrieben werden. Dadurch waere es nicht moeglich nach einem logrotate
die neue Datei zu verwenden. Ueber die PIPE wird dies umgangen.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
Thread
<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="#PipeLogwriter.__init__">PipeLogwriter</a></td>
<td>Instantiiert PipeLogwriter-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter.__del__">__del__</a></td>
<td>Close der FileHandler.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter._configurefh">_configurefh</a></td>
<td>Konfiguriert den FileHandler fuer Ausgaben der PLCAPP.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter.logline">logline</a></td>
<td>Schreibt eine Zeile in die Logdatei oder stdout.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter.newlogfile">newlogfile</a></td>
<td>Konfiguriert den FileHandler auf eine neue Logdatei.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter.run">run</a></td>
<td>Prueft auf neue Logzeilen und schreibt diese.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#PipeLogwriter.stop">stop</a></td>
<td>Beendetden Thread und die FileHandler werden geschlossen.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="PipeLogwriter.__init__" ID="PipeLogwriter.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter (Constructor)</h3>
<b>PipeLogwriter</b>(<i>logfilename</i>)
<p>
Instantiiert PipeLogwriter-Klasse.
</p><dl>
<dt><i>logfilename</i></dt>
<dd>
Dateiname fuer Logdatei
</dd>
</dl><a NAME="PipeLogwriter.__del__" ID="PipeLogwriter.__del__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter.__del__</h3>
<b>__del__</b>(<i></i>)
<p>
Close der FileHandler.
</p><a NAME="PipeLogwriter._configurefh" ID="PipeLogwriter._configurefh"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter._configurefh</h3>
<b>_configurefh</b>(<i></i>)
<p>
Konfiguriert den FileHandler fuer Ausgaben der PLCAPP.
</p><dl>
<dt>Returns:</dt>
<dd>
FileHandler-Objekt
</dd>
</dl><a NAME="PipeLogwriter.logline" ID="PipeLogwriter.logline"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter.logline</h3>
<b>logline</b>(<i>message</i>)
<p>
Schreibt eine Zeile in die Logdatei oder stdout.
</p><dl>
<dt><i>message</i></dt>
<dd>
Logzeile zum Schreiben
</dd>
</dl><a NAME="PipeLogwriter.newlogfile" ID="PipeLogwriter.newlogfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter.newlogfile</h3>
<b>newlogfile</b>(<i></i>)
<p>
Konfiguriert den FileHandler auf eine neue Logdatei.
</p><a NAME="PipeLogwriter.run" ID="PipeLogwriter.run"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter.run</h3>
<b>run</b>(<i></i>)
<p>
Prueft auf neue Logzeilen und schreibt diese.
</p><a NAME="PipeLogwriter.stop" ID="PipeLogwriter.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
PipeLogwriter.stop</h3>
<b>stop</b>(<i></i>)
<p>
Beendetden Thread und die FileHandler werden geschlossen.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,212 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>mqttserver</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">
mqttserver</h1>
<p>
Stellt die MQTT Uebertragung fuer IoT-Zwecke bereit.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#MqttServer">MqttServer</a></td>
<td>Server fuer die Uebertragung des Prozessabbilds per MQTT.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="MqttServer" ID="MqttServer"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">MqttServer</h2>
<p>
Server fuer die Uebertragung des Prozessabbilds per MQTT.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
Thread
<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="#MqttServer.__init__">MqttServer</a></td>
<td>Init MqttServer class.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer._evt_io">_evt_io</a></td>
<td>Sendet Daten aus Events.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer._loadrevpimodio">_loadrevpimodio</a></td>
<td>Instantiiert das RevPiModIO Modul.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer._on_connect">_on_connect</a></td>
<td>Verbindung zu MQTT Broker.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer._on_disconnect">_on_disconnect</a></td>
<td>Wertet Verbindungsabbruch aus.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer._on_message">_on_message</a></td>
<td>Sendet piCtory Konfiguration.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer._send_pictory_conf">_send_pictory_conf</a></td>
<td>Sendet piCtory Konfiguration per MQTT.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer.newlogfile">newlogfile</a></td>
<td>Konfiguriert die FileHandler auf neue Logdatei.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer.reload_revpimodio">reload_revpimodio</a></td>
<td>Fuehrt im naechsten Zyklus zum Reload.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer.run">run</a></td>
<td>Startet die Uebertragung per MQTT.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#MqttServer.stop">stop</a></td>
<td>Stoppt die Uebertragung per MQTT.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="MqttServer.__init__" ID="MqttServer.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer (Constructor)</h3>
<b>MqttServer</b>(<i>basetopic, sendinterval, broker_address, port=1883, tls_set=False, username="", password=None, client_id="", send_events=False, write_outputs=False, replace_ios=None</i>)
<p>
Init MqttServer class.
</p><dl>
<dt><i>basetopic</i></dt>
<dd>
Basis-Topic fuer Datenaustausch
</dd><dt><i>sendinterval</i></dt>
<dd>
Prozessabbild alle n Sekunden senden / 0 = aus
</dd><dt><i>broker_address</i></dt>
<dd>
Adresse <class 'str'> des MQTT-Servers
</dd><dt><i>port</i></dt>
<dd>
Portnummer <class 'int'> des MQTT-Servers
</dd><dt><i>tls_set</i></dt>
<dd>
TLS fuer Verbindung zum MQTT-Server verwenden
</dd><dt><i>username</i></dt>
<dd>
Optional Benutzername fuer MQTT-Server
</dd><dt><i>password</i></dt>
<dd>
Optional Password fuer MQTT-Server
</dd><dt><i>client_id</i></dt>
<dd>
MQTT ClientID, wenn leer automatisch random erzeugung
</dd><dt><i>send_events</i></dt>
<dd>
Sendet Werte bei IO Wertaenderung
</dd><dt><i>write_outputs</i></dt>
<dd>
Per MQTT auch Outputs schreiben
</dd><dt><i>replace_ios</i></dt>
<dd>
Replace IOs of RevPiModIO
</dd>
</dl><a NAME="MqttServer._evt_io" ID="MqttServer._evt_io"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer._evt_io</h3>
<b>_evt_io</b>(<i>name, value, requested=False</i>)
<p>
Sendet Daten aus Events.
</p><dl>
<dt><i>name</i></dt>
<dd>
IO-Name
</dd><dt><i>value</i></dt>
<dd>
IO-Value
</dd><dt><i>requested</i></dt>
<dd>
Wenn True, wird 'got' Topic verwendet
</dd>
</dl><a NAME="MqttServer._loadrevpimodio" ID="MqttServer._loadrevpimodio"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer._loadrevpimodio</h3>
<b>_loadrevpimodio</b>(<i></i>)
<p>
Instantiiert das RevPiModIO Modul.
</p><dl>
<dt>Returns:</dt>
<dd>
None or Exception
</dd>
</dl><a NAME="MqttServer._on_connect" ID="MqttServer._on_connect"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer._on_connect</h3>
<b>_on_connect</b>(<i>client, userdata, flags, rc</i>)
<p>
Verbindung zu MQTT Broker.
</p><a NAME="MqttServer._on_disconnect" ID="MqttServer._on_disconnect"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer._on_disconnect</h3>
<b>_on_disconnect</b>(<i>client, userdata, rc</i>)
<p>
Wertet Verbindungsabbruch aus.
</p><a NAME="MqttServer._on_message" ID="MqttServer._on_message"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer._on_message</h3>
<b>_on_message</b>(<i>client, userdata, msg</i>)
<p>
Sendet piCtory Konfiguration.
</p><a NAME="MqttServer._send_pictory_conf" ID="MqttServer._send_pictory_conf"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer._send_pictory_conf</h3>
<b>_send_pictory_conf</b>(<i></i>)
<p>
Sendet piCtory Konfiguration per MQTT.
</p><a NAME="MqttServer.newlogfile" ID="MqttServer.newlogfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer.newlogfile</h3>
<b>newlogfile</b>(<i></i>)
<p>
Konfiguriert die FileHandler auf neue Logdatei.
</p><a NAME="MqttServer.reload_revpimodio" ID="MqttServer.reload_revpimodio"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer.reload_revpimodio</h3>
<b>reload_revpimodio</b>(<i></i>)
<p>
Fuehrt im naechsten Zyklus zum Reload.
</p><a NAME="MqttServer.run" ID="MqttServer.run"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer.run</h3>
<b>run</b>(<i></i>)
<p>
Startet die Uebertragung per MQTT.
</p><a NAME="MqttServer.stop" ID="MqttServer.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
MqttServer.stop</h3>
<b>stop</b>(<i></i>)
<p>
Stoppt die Uebertragung per MQTT.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,220 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>picontrolserver</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">
picontrolserver</h1>
<p>
Modul fuer die Verwaltung der PLC-Slave Funktionen.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>HASH_FAIL</td></tr><tr><td>HASH_NULL</td></tr><tr><td>HASH_PICT</td></tr><tr><td>HASH_RPIO</td></tr><tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#RevPiSlave">RevPiSlave</a></td>
<td>RevPi PLC-Server.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlaveDev">RevPiSlaveDev</a></td>
<td>Klasse um eine RevPiModIO Verbindung zu verwalten.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="RevPiSlave" ID="RevPiSlave"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiSlave</h2>
<p>
RevPi PLC-Server.
</p><p>
Diese Klasste stellt den RevPi PLC-Server zur verfuegung und akzeptiert
neue Verbindungen. Diese werden dann als RevPiSlaveDev abgebildet.
</p><p>
Ueber die angegebenen ACLs koennen Zugriffsbeschraenkungen vergeben werden.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
Thread
<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="#RevPiSlave.__init__">RevPiSlave</a></td>
<td>Instantiiert RevPiSlave-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlave.check_connectedacl">check_connectedacl</a></td>
<td>Prueft bei neuen ACLs bestehende Verbindungen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlave.disconnect_all">disconnect_all</a></td>
<td>Close all device connection.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlave.disconnect_replace_ios">disconnect_replace_ios</a></td>
<td>Close all device with loaded replace_ios file.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlave.newlogfile">newlogfile</a></td>
<td>Konfiguriert die FileHandler auf neue Logdatei.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlave.run">run</a></td>
<td>Startet Serverkomponente fuer die Annahme neuer Verbindungen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlave.stop">stop</a></td>
<td>Beendet Slaveausfuehrung.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="RevPiSlave.__init__" ID="RevPiSlave.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave (Constructor)</h3>
<b>RevPiSlave</b>(<i>ipacl, port=55234, bindip=""</i>)
<p>
Instantiiert RevPiSlave-Klasse.
</p><dl>
<dt><i>ipacl</i></dt>
<dd>
AclManager <class 'IpAclManager'>
</dd><dt><i>port</i></dt>
<dd>
Listen Port fuer plc Slaveserver
</dd><dt><i>bindip</i></dt>
<dd>
IP-Adresse an die der Dienst gebunden wird (leer=alle)
</dd>
</dl><a NAME="RevPiSlave.check_connectedacl" ID="RevPiSlave.check_connectedacl"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave.check_connectedacl</h3>
<b>check_connectedacl</b>(<i></i>)
<p>
Prueft bei neuen ACLs bestehende Verbindungen.
</p><a NAME="RevPiSlave.disconnect_all" ID="RevPiSlave.disconnect_all"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave.disconnect_all</h3>
<b>disconnect_all</b>(<i></i>)
<p>
Close all device connection.
</p><a NAME="RevPiSlave.disconnect_replace_ios" ID="RevPiSlave.disconnect_replace_ios"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave.disconnect_replace_ios</h3>
<b>disconnect_replace_ios</b>(<i></i>)
<p>
Close all device with loaded replace_ios file.
</p><a NAME="RevPiSlave.newlogfile" ID="RevPiSlave.newlogfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave.newlogfile</h3>
<b>newlogfile</b>(<i></i>)
<p>
Konfiguriert die FileHandler auf neue Logdatei.
</p><a NAME="RevPiSlave.run" ID="RevPiSlave.run"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave.run</h3>
<b>run</b>(<i></i>)
<p>
Startet Serverkomponente fuer die Annahme neuer Verbindungen.
</p><a NAME="RevPiSlave.stop" ID="RevPiSlave.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlave.stop</h3>
<b>stop</b>(<i></i>)
<p>
Beendet Slaveausfuehrung.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="RevPiSlaveDev" ID="RevPiSlaveDev"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiSlaveDev</h2>
<p>
Klasse um eine RevPiModIO Verbindung zu verwalten.
</p><p>
Diese Klasste stellt die Funktionen zur Verfuegung um Daten ueber das
Netzwerk mit dem Prozessabbild auszutauschen.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
Thread
<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="#RevPiSlaveDev.__init__">RevPiSlaveDev</a></td>
<td>Init RevPiSlaveDev-Class.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlaveDev.run">run</a></td>
<td>Verarbeitet Anfragen von Remoteteilnehmer.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiSlaveDev.stop">stop</a></td>
<td>Beendet Verbindungsthread.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="RevPiSlaveDev.__init__" ID="RevPiSlaveDev.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlaveDev (Constructor)</h3>
<b>RevPiSlaveDev</b>(<i>devcon, acl</i>)
<p>
Init RevPiSlaveDev-Class.
</p><dl>
<dt><i>devcon</i></dt>
<dd>
Tuple der Verbindung
</dd><dt><i>deadtime</i></dt>
<dd>
Timeout der Vararbeitung
</dd><dt><i>acl</i></dt>
<dd>
Berechtigungslevel
</dd>
</dl><a NAME="RevPiSlaveDev.run" ID="RevPiSlaveDev.run"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlaveDev.run</h3>
<b>run</b>(<i></i>)
<p>
Verarbeitet Anfragen von Remoteteilnehmer.
</p><a NAME="RevPiSlaveDev.stop" ID="RevPiSlaveDev.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiSlaveDev.stop</h3>
<b>stop</b>(<i></i>)
<p>
Beendet Verbindungsthread.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,170 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>plcsystem</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">
plcsystem</h1>
<p>
Modul fuer die Verwaltung der PLC Funktionen.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#RevPiPlc">RevPiPlc</a></td>
<td>Verwaltet das PLC Python Programm.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="RevPiPlc" ID="RevPiPlc"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiPlc</h2>
<p>
Verwaltet das PLC Python Programm.
</p><p>
Dieser Thread startet das PLC Python Programm und ueberwacht es. Sollte es
abstuerzen kann es automatisch neu gestartet werden. Die Ausgaben des
Programms werden in eine Logdatei umgeleitet, damit der Entwickler sein
Programm analysieren und debuggen kann.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
Thread
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>autoreloaddelay</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="#RevPiPlc.__init__">RevPiPlc</a></td>
<td>Instantiiert RevPiPlc-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc.__get_autoreloaddelay">__get_autoreloaddelay</a></td>
<td>Getter fuer autoreloaddelay.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc.__set_autoreloaddelay">__set_autoreloaddelay</a></td>
<td>Setter fuer autoreloaddelay.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc._configureplw">_configureplw</a></td>
<td>Konfiguriert den PipeLogwriter fuer Ausgaben der PLCAPP.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc._setuppopen">_setuppopen</a></td>
<td>Setzt UID und GID fuer das PLC Programm.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc._spopen">_spopen</a></td>
<td>Startet das PLC Programm.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc.newlogfile">newlogfile</a></td>
<td>Konfiguriert die FileHandler auf neue Logdatei.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc.run">run</a></td>
<td>Fuehrt PLC-Programm aus und ueberwacht es.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPlc.stop">stop</a></td>
<td>Beendet PLC-Programm.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="RevPiPlc.__init__" ID="RevPiPlc.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc (Constructor)</h3>
<b>RevPiPlc</b>(<i>program, arguments, pversion</i>)
<p>
Instantiiert RevPiPlc-Klasse.
</p><a NAME="RevPiPlc.__get_autoreloaddelay" ID="RevPiPlc.__get_autoreloaddelay"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc.__get_autoreloaddelay</h3>
<b>__get_autoreloaddelay</b>(<i></i>)
<p>
Getter fuer autoreloaddelay.
</p><dl>
<dt>Returns:</dt>
<dd>
Delayzeit in Sekunden <class 'int'>
</dd>
</dl><a NAME="RevPiPlc.__set_autoreloaddelay" ID="RevPiPlc.__set_autoreloaddelay"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc.__set_autoreloaddelay</h3>
<b>__set_autoreloaddelay</b>(<i>value</i>)
<p>
Setter fuer autoreloaddelay.
</p><a NAME="RevPiPlc._configureplw" ID="RevPiPlc._configureplw"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc._configureplw</h3>
<b>_configureplw</b>(<i></i>)
<p>
Konfiguriert den PipeLogwriter fuer Ausgaben der PLCAPP.
</p><dl>
<dt>Returns:</dt>
<dd>
PipeLogwriter()
</dd>
</dl><a NAME="RevPiPlc._setuppopen" ID="RevPiPlc._setuppopen"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc._setuppopen</h3>
<b>_setuppopen</b>(<i></i>)
<p>
Setzt UID und GID fuer das PLC Programm.
</p><a NAME="RevPiPlc._spopen" ID="RevPiPlc._spopen"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc._spopen</h3>
<b>_spopen</b>(<i>lst_proc</i>)
<p>
Startet das PLC Programm.
</p><dl>
<dt><i>lst_proc</i></dt>
<dd>
Prozessliste
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
subprocess
</dd>
</dl><a NAME="RevPiPlc.newlogfile" ID="RevPiPlc.newlogfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc.newlogfile</h3>
<b>newlogfile</b>(<i></i>)
<p>
Konfiguriert die FileHandler auf neue Logdatei.
</p><a NAME="RevPiPlc.run" ID="RevPiPlc.run"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc.run</h3>
<b>run</b>(<i></i>)
<p>
Fuehrt PLC-Programm aus und ueberwacht es.
</p><a NAME="RevPiPlc.stop" ID="RevPiPlc.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPlc.stop</h3>
<b>stop</b>(<i></i>)
<p>
Beendet PLC-Programm.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,207 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>procimgserver</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">
procimgserver</h1>
<p>
Stellt Funktionen bereit um das Prozessabbild zu ueberwachen.
</p><p>
Bei ausreichend Rechten koennen Ausgaenge auch gesetzt werden um einen
IO-Check bei Inbetriebname durchzufuehren.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#ProcimgServer">ProcimgServer</a></td>
<td>Serverkomponente fuer zusaetzliche XML-RPC Funktionen.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="ProcimgServer" ID="ProcimgServer"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">ProcimgServer</h2>
<p>
Serverkomponente fuer zusaetzliche XML-RPC Funktionen.
</p><p>
Diese Klasse registriert zusaetzliche Funktionen an einem besthenden
XML-RPC-Server. Der Funktionsumfang wird erweitert um zyklisch das
Prozessabbild zu empfangen und bei ausreichend Rechten Ausgaenge zu
setzen.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
None
<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="#ProcimgServer.__init__">ProcimgServer</a></td>
<td>Instantiiert RevPiCheckServer()-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.__del__">__del__</a></td>
<td>Clean up RevPiModIO.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.devices">devices</a></td>
<td>Generiert Deviceliste mit Position und Namen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.ios">ios</a></td>
<td>Generiert ein dict() der Devices und IOs.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.loadrevpimodio">loadrevpimodio</a></td>
<td>Instantiiert das RevPiModIO Modul.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.setvalue">setvalue</a></td>
<td>Setzt einen Wert auf dem RevPi.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.start">start</a></td>
<td>Registriert XML Funktionen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.stop">stop</a></td>
<td>Entfernt XML-Funktionen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#ProcimgServer.values">values</a></td>
<td>Liefert Prozessabbild an Client.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="ProcimgServer.__init__" ID="ProcimgServer.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer (Constructor)</h3>
<b>ProcimgServer</b>(<i>xmlserver, replace_ios=None</i>)
<p>
Instantiiert RevPiCheckServer()-Klasse.
</p><dl>
<dt><i>xmlserver</i></dt>
<dd>
XML-RPC Server
</dd><dt><i>replace_ios</i></dt>
<dd>
Replace IOs of RevPiModIO
</dd>
</dl><a NAME="ProcimgServer.__del__" ID="ProcimgServer.__del__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.__del__</h3>
<b>__del__</b>(<i></i>)
<p>
Clean up RevPiModIO.
</p><a NAME="ProcimgServer.devices" ID="ProcimgServer.devices"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.devices</h3>
<b>devices</b>(<i></i>)
<p>
Generiert Deviceliste mit Position und Namen.
</p><dl>
<dt>Returns:</dt>
<dd>
list() mit Tuple (pos, name)
</dd>
</dl><a NAME="ProcimgServer.ios" ID="ProcimgServer.ios"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.ios</h3>
<b>ios</b>(<i>iotype</i>)
<p>
Generiert ein dict() der Devices und IOs.
</p><dl>
<dt><i>iotype</i></dt>
<dd>
IO Typ inp/out
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
pickled dict()
</dd>
</dl><a NAME="ProcimgServer.loadrevpimodio" ID="ProcimgServer.loadrevpimodio"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.loadrevpimodio</h3>
<b>loadrevpimodio</b>(<i></i>)
<p>
Instantiiert das RevPiModIO Modul.
</p><dl>
<dt>Returns:</dt>
<dd>
None or Exception
</dd>
</dl><a NAME="ProcimgServer.setvalue" ID="ProcimgServer.setvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.setvalue</h3>
<b>setvalue</b>(<i>device, io, value</i>)
<p>
Setzt einen Wert auf dem RevPi.
</p><dl>
<dt><i>device</i></dt>
<dd>
Device Position oder Name
</dd><dt><i>io</i></dt>
<dd>
IO Name fuer neuen Wert
</dd><dt><i>value</i></dt>
<dd>
Neuer Wert
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
list() [device, io, status, msg]
</dd>
</dl><a NAME="ProcimgServer.start" ID="ProcimgServer.start"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.start</h3>
<b>start</b>(<i></i>)
<p>
Registriert XML Funktionen.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn erfolgreich
</dd>
</dl><a NAME="ProcimgServer.stop" ID="ProcimgServer.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.stop</h3>
<b>stop</b>(<i></i>)
<p>
Entfernt XML-Funktionen.
</p><a NAME="ProcimgServer.values" ID="ProcimgServer.values"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.values</h3>
<b>values</b>(<i></i>)
<p>
Liefert Prozessabbild an Client.
</p><dl>
<dt>Returns:</dt>
<dd>
Binary() bytes or None
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,50 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>proginit</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">
proginit</h1>
<p>
Main functions of our program.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>conf</td></tr><tr><td>forked</td></tr><tr><td>globalconffile</td></tr><tr><td>logapp</td></tr><tr><td>logger</td></tr><tr><td>logplc</td></tr><tr><td>pargs</td></tr><tr><td>picontrolreset</td></tr><tr><td>rapcatalog</td></tr><tr><td>startdir</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#cleanup">cleanup</a></td>
<td>Clean up program.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#configure">configure</a></td>
<td>Initialize general program functions.</td>
</tr>
</table>
<hr /><hr />
<a NAME="cleanup" ID="cleanup"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">cleanup</h2>
<b>cleanup</b>(<i></i>)
<p>
Clean up program.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="configure" ID="configure"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">configure</h2>
<b>configure</b>(<i></i>)
<p>
Initialize general program functions.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,670 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>revpipyload</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">
revpipyload</h1>
<p>
Revolution Pi Python PLC Loader.
</p><p>
Webpage: https://revpimodio.org/revpipyplc/
</p><p>
Stellt das RevPiPyLoad Programm bereit. Dieses Programm lauft als Daemon auf
dem Revolution Pi. Es stellt Funktionen bereit, die es ermoeglichen ein Python
Programm zu starten und fuehrt dessen Ausgaben in eine Logdatei. Die Logdaten
koennen am Pi selber oder ueber eine XML-RPC Schnittstelle ausgelesen werden.
</p><p>
Dieser Daemon prueft ob das Python Programm noch lauft und kann es im Fall
eines Absturzes neu starten.
</p><p>
Ueber diesen Daemon kann die gesamte piCtory Konfiguration exportiert oder
importiert, ein Dump vom Prozessabbild gezogen und das eigene Python
Programm hochgeladen werden.
</p><p>
Es kann von dem Python Programm auch eine Archivdatei herunterladen werden,
welche optional auch die piCtory Konfiguraiton beinhaltet. Damit kann man sehr
schnell auf einem Revolution Pi das Programm inkl. piCtory Konfiguration
austauschen.
</p><p>
Die Zugriffsmoeglichkeiten koennen ueber einen Konfigurationsparameter
begrenzt werden!
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>__version__</td></tr><tr><td>min_revpimodio</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad">RevPiPyLoad</a></td>
<td>Hauptklasse, die alle Funktionen zur Verfuegung stellt.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="RevPiPyLoad" ID="RevPiPyLoad"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">RevPiPyLoad</h2>
<p>
Hauptklasse, die alle Funktionen zur Verfuegung stellt.
</p><p>
Hier wird die gesamte Konfiguraiton eingelesen und der ggf. aktivierte
XML-RPC-Server gestartet.
</p><p>
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
None
<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="#RevPiPyLoad.__init__">RevPiPyLoad</a></td>
<td>Instantiiert RevPiPyLoad-Klasse.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._check_mustrestart_mqtt">_check_mustrestart_mqtt</a></td>
<td>Prueft ob sich kritische Werte veraendert haben.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._check_mustrestart_plcprogram">_check_mustrestart_plcprogram</a></td>
<td>Prueft ob sich kritische Werte veraendert haben.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._check_mustrestart_plcslave">_check_mustrestart_plcslave</a></td>
<td>Prueft ob sich kritische Werte veraendert haben.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._loadconfig">_loadconfig</a></td>
<td>Load configuration file and setup modul.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._plcmqtt">_plcmqtt</a></td>
<td>Konfiguriert den MQTT-Thread fuer die Ausfuehrung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._plcslave">_plcslave</a></td>
<td>Erstellt den PlcSlave-Server Thread.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._plcthread">_plcthread</a></td>
<td>Konfiguriert den PLC-Thread fuer die Ausfuehrung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._sigexit">_sigexit</a></td>
<td>Signal handler to clean and exit program.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._sigloadconfig">_sigloadconfig</a></td>
<td>Signal handler to load configuration.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad._signewlogfile">_signewlogfile</a></td>
<td>Signal handler to start new logfile.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.check_pictory_changed">check_pictory_changed</a></td>
<td>Prueft ob sich die piCtory Datei veraendert hat.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.check_replace_ios_changed">check_replace_ios_changed</a></td>
<td>Prueft ob sich die replace_ios.conf Datei veraendert hat (oder del).</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.packapp">packapp</a></td>
<td>Erzeugt aus dem PLC-Programm ein TAR/Zip-File.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.start">start</a></td>
<td>Start revpipyload.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.stop">stop</a></td>
<td>Stop revpipyload.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.stop_plcmqtt">stop_plcmqtt</a></td>
<td>Beendet MQTT Sender.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.stop_plcprogram">stop_plcprogram</a></td>
<td>Beendet PLC Programm.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.stop_plcslave">stop_plcslave</a></td>
<td>Beendet PLC Slave.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.stop_xmlrpcserver">stop_xmlrpcserver</a></td>
<td>Beendet XML-RPC.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_getconfig">xml_getconfig</a></td>
<td>Uebertraegt die RevPiPyLoad Konfiguration.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_getfilelist">xml_getfilelist</a></td>
<td>Uebertraegt die Dateiliste vom plcworkdir.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_getpictoryrsc">xml_getpictoryrsc</a></td>
<td>Gibt die config.rsc Datei von piCotry zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_getprocimg">xml_getprocimg</a></td>
<td>Gibt die Rohdaten aus piControl0 zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_mqttrunning">xml_mqttrunning</a></td>
<td>Prueft ob MQTT Uebertragung noch lauft.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_mqttstart">xml_mqttstart</a></td>
<td>Startet die MQTT Uebertragung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_mqttstop">xml_mqttstop</a></td>
<td>Stoppt die MQTT Uebertragung.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcdownload">xml_plcdownload</a></td>
<td>Uebertraegt ein Archiv vom plcworkdir.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcexitcode">xml_plcexitcode</a></td>
<td>Gibt den aktuellen exitcode vom PLC Programm zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcrunning">xml_plcrunning</a></td>
<td>Prueft ob das PLC Programm noch lauft.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcslaverunning">xml_plcslaverunning</a></td>
<td>Prueft ob PLC-Slave noch lauft.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcslavestart">xml_plcslavestart</a></td>
<td>Startet den PLC Slave Server.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcslavestop">xml_plcslavestop</a></td>
<td>Stoppt den PLC Slave Server.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcstart">xml_plcstart</a></td>
<td>Startet das PLC Programm.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcstop">xml_plcstop</a></td>
<td>Stoppt das PLC Programm.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcupload">xml_plcupload</a></td>
<td>Empfaengt Dateien fuer das PLC Programm einzeln.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_plcuploadclean">xml_plcuploadclean</a></td>
<td>Loescht das gesamte plcworkdir Verzeichnis.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_psstart">xml_psstart</a></td>
<td>Startet den Prozessabbildserver.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_psstop">xml_psstop</a></td>
<td>Stoppt den Prozessabbildserver.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_reload">xml_reload</a></td>
<td>Startet RevPiPyLoad neu und verwendet neue Konfiguraiton.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_setconfig">xml_setconfig</a></td>
<td>Empfaengt die RevPiPyLoad Konfiguration.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#RevPiPyLoad.xml_setpictoryrsc">xml_setpictoryrsc</a></td>
<td>Schreibt die config.rsc Datei von piCotry.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="RevPiPyLoad.__init__" ID="RevPiPyLoad.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad (Constructor)</h3>
<b>RevPiPyLoad</b>(<i></i>)
<p>
Instantiiert RevPiPyLoad-Klasse.
</p><a NAME="RevPiPyLoad._check_mustrestart_mqtt" ID="RevPiPyLoad._check_mustrestart_mqtt"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._check_mustrestart_mqtt</h3>
<b>_check_mustrestart_mqtt</b>(<i></i>)
<p>
Prueft ob sich kritische Werte veraendert haben.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Subsystemneustart noetig ist
</dd>
</dl><a NAME="RevPiPyLoad._check_mustrestart_plcprogram" ID="RevPiPyLoad._check_mustrestart_plcprogram"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._check_mustrestart_plcprogram</h3>
<b>_check_mustrestart_plcprogram</b>(<i></i>)
<p>
Prueft ob sich kritische Werte veraendert haben.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Subsystemneustart noetig ist
</dd>
</dl><a NAME="RevPiPyLoad._check_mustrestart_plcslave" ID="RevPiPyLoad._check_mustrestart_plcslave"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._check_mustrestart_plcslave</h3>
<b>_check_mustrestart_plcslave</b>(<i></i>)
<p>
Prueft ob sich kritische Werte veraendert haben.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Subsystemneustart noetig ist
</dd>
</dl><a NAME="RevPiPyLoad._loadconfig" ID="RevPiPyLoad._loadconfig"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._loadconfig</h3>
<b>_loadconfig</b>(<i></i>)
<p>
Load configuration file and setup modul.
</p><a NAME="RevPiPyLoad._plcmqtt" ID="RevPiPyLoad._plcmqtt"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._plcmqtt</h3>
<b>_plcmqtt</b>(<i></i>)
<p>
Konfiguriert den MQTT-Thread fuer die Ausfuehrung.
</p><dl>
<dt>Returns:</dt>
<dd>
MQTT-Thread Object or None
</dd>
</dl><a NAME="RevPiPyLoad._plcslave" ID="RevPiPyLoad._plcslave"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._plcslave</h3>
<b>_plcslave</b>(<i></i>)
<p>
Erstellt den PlcSlave-Server Thread.
</p><dl>
<dt>Returns:</dt>
<dd>
PLC-Server-Thread Object or None
</dd>
</dl><a NAME="RevPiPyLoad._plcthread" ID="RevPiPyLoad._plcthread"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._plcthread</h3>
<b>_plcthread</b>(<i></i>)
<p>
Konfiguriert den PLC-Thread fuer die Ausfuehrung.
</p><dl>
<dt>Returns:</dt>
<dd>
PLC-Thread Object or None
</dd>
</dl><a NAME="RevPiPyLoad._sigexit" ID="RevPiPyLoad._sigexit"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._sigexit</h3>
<b>_sigexit</b>(<i>signum, frame</i>)
<p>
Signal handler to clean and exit program.
</p><a NAME="RevPiPyLoad._sigloadconfig" ID="RevPiPyLoad._sigloadconfig"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._sigloadconfig</h3>
<b>_sigloadconfig</b>(<i>signum, frame</i>)
<p>
Signal handler to load configuration.
</p><a NAME="RevPiPyLoad._signewlogfile" ID="RevPiPyLoad._signewlogfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad._signewlogfile</h3>
<b>_signewlogfile</b>(<i>signum, frame</i>)
<p>
Signal handler to start new logfile.
</p><a NAME="RevPiPyLoad.check_pictory_changed" ID="RevPiPyLoad.check_pictory_changed"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.check_pictory_changed</h3>
<b>check_pictory_changed</b>(<i></i>)
<p>
Prueft ob sich die piCtory Datei veraendert hat.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn veraendert wurde
</dd>
</dl><a NAME="RevPiPyLoad.check_replace_ios_changed" ID="RevPiPyLoad.check_replace_ios_changed"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.check_replace_ios_changed</h3>
<b>check_replace_ios_changed</b>(<i></i>)
<p>
Prueft ob sich die replace_ios.conf Datei veraendert hat (oder del).
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn veraendert wurde
</dd>
</dl><a NAME="RevPiPyLoad.packapp" ID="RevPiPyLoad.packapp"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.packapp</h3>
<b>packapp</b>(<i>mode="tar", pictory=False</i>)
<p>
Erzeugt aus dem PLC-Programm ein TAR/Zip-File.
</p><dl>
<dt><i>mode</i></dt>
<dd>
Packart 'tar' oder 'zip'
</dd><dt><i>pictory</i></dt>
<dd>
piCtory Konfiguration mit einpacken
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Dateinamen des Archivs
</dd>
</dl><a NAME="RevPiPyLoad.start" ID="RevPiPyLoad.start"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.start</h3>
<b>start</b>(<i></i>)
<p>
Start revpipyload.
</p><a NAME="RevPiPyLoad.stop" ID="RevPiPyLoad.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.stop</h3>
<b>stop</b>(<i></i>)
<p>
Stop revpipyload.
</p><a NAME="RevPiPyLoad.stop_plcmqtt" ID="RevPiPyLoad.stop_plcmqtt"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.stop_plcmqtt</h3>
<b>stop_plcmqtt</b>(<i></i>)
<p>
Beendet MQTT Sender.
</p><a NAME="RevPiPyLoad.stop_plcprogram" ID="RevPiPyLoad.stop_plcprogram"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.stop_plcprogram</h3>
<b>stop_plcprogram</b>(<i></i>)
<p>
Beendet PLC Programm.
</p><a NAME="RevPiPyLoad.stop_plcslave" ID="RevPiPyLoad.stop_plcslave"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.stop_plcslave</h3>
<b>stop_plcslave</b>(<i></i>)
<p>
Beendet PLC Slave.
</p><a NAME="RevPiPyLoad.stop_xmlrpcserver" ID="RevPiPyLoad.stop_xmlrpcserver"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.stop_xmlrpcserver</h3>
<b>stop_xmlrpcserver</b>(<i></i>)
<p>
Beendet XML-RPC.
</p><a NAME="RevPiPyLoad.xml_getconfig" ID="RevPiPyLoad.xml_getconfig"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_getconfig</h3>
<b>xml_getconfig</b>(<i></i>)
<p>
Uebertraegt die RevPiPyLoad Konfiguration.
</p><dl>
<dt>Returns:</dt>
<dd>
dict() der Konfiguration
</dd>
</dl><a NAME="RevPiPyLoad.xml_getfilelist" ID="RevPiPyLoad.xml_getfilelist"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_getfilelist</h3>
<b>xml_getfilelist</b>(<i></i>)
<p>
Uebertraegt die Dateiliste vom plcworkdir.
</p><dl>
<dt>Returns:</dt>
<dd>
list() mit Dateinamen
</dd>
</dl><a NAME="RevPiPyLoad.xml_getpictoryrsc" ID="RevPiPyLoad.xml_getpictoryrsc"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_getpictoryrsc</h3>
<b>xml_getpictoryrsc</b>(<i></i>)
<p>
Gibt die config.rsc Datei von piCotry zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
xmlrpc.client.Binary()
</dd>
</dl><a NAME="RevPiPyLoad.xml_getprocimg" ID="RevPiPyLoad.xml_getprocimg"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_getprocimg</h3>
<b>xml_getprocimg</b>(<i></i>)
<p>
Gibt die Rohdaten aus piControl0 zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
xmlrpc.client.Binary()
</dd>
</dl><a NAME="RevPiPyLoad.xml_mqttrunning" ID="RevPiPyLoad.xml_mqttrunning"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_mqttrunning</h3>
<b>xml_mqttrunning</b>(<i></i>)
<p>
Prueft ob MQTT Uebertragung noch lauft.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn MQTT Uebertragung noch lauft
</dd>
</dl><a NAME="RevPiPyLoad.xml_mqttstart" ID="RevPiPyLoad.xml_mqttstart"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_mqttstart</h3>
<b>xml_mqttstart</b>(<i></i>)
<p>
Startet die MQTT Uebertragung.
</p><dl>
<dt>Returns:</dt>
<dd>
Statuscode:
0: erfolgreich gestartet
-1: Nicht aktiv in Konfiguration
-2: Laeuft bereits
</dd>
</dl><a NAME="RevPiPyLoad.xml_mqttstop" ID="RevPiPyLoad.xml_mqttstop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_mqttstop</h3>
<b>xml_mqttstop</b>(<i></i>)
<p>
Stoppt die MQTT Uebertragung.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn stop erfolgreich
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcdownload" ID="RevPiPyLoad.xml_plcdownload"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcdownload</h3>
<b>xml_plcdownload</b>(<i>mode="tar", pictory=False</i>)
<p>
Uebertraegt ein Archiv vom plcworkdir.
</p><dl>
<dt><i>mode</i></dt>
<dd>
Archivart 'tar' 'zip'
</dd><dt><i>pictory</i></dt>
<dd>
piCtory Konfiguraiton mit einpacken
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Binary() mit Archivdatei
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcexitcode" ID="RevPiPyLoad.xml_plcexitcode"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcexitcode</h3>
<b>xml_plcexitcode</b>(<i></i>)
<p>
Gibt den aktuellen exitcode vom PLC Programm zurueck.
</p><dl>
<dt>Returns:</dt>
<dd>
int() exitcode oder:
-1 laeuft noch
-2 Datei nicht gefunden
-3 Lief nie
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcrunning" ID="RevPiPyLoad.xml_plcrunning"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcrunning</h3>
<b>xml_plcrunning</b>(<i></i>)
<p>
Prueft ob das PLC Programm noch lauft.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn das PLC Programm noch lauft
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcslaverunning" ID="RevPiPyLoad.xml_plcslaverunning"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcslaverunning</h3>
<b>xml_plcslaverunning</b>(<i></i>)
<p>
Prueft ob PLC-Slave noch lauft.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn PLC-Slave noch lauft
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcslavestart" ID="RevPiPyLoad.xml_plcslavestart"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcslavestart</h3>
<b>xml_plcslavestart</b>(<i></i>)
<p>
Startet den PLC Slave Server.
</p><dl>
<dt>Returns:</dt>
<dd>
Statuscode:
0: erfolgreich gestartet
-1: Nicht aktiv in Konfiguration
-2: Laeuft bereits
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcslavestop" ID="RevPiPyLoad.xml_plcslavestop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcslavestop</h3>
<b>xml_plcslavestop</b>(<i></i>)
<p>
Stoppt den PLC Slave Server.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn stop erfolgreich
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcstart" ID="RevPiPyLoad.xml_plcstart"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcstart</h3>
<b>xml_plcstart</b>(<i></i>)
<p>
Startet das PLC Programm.
</p><dl>
<dt>Returns:</dt>
<dd>
int() Status:
-0 Erfolgreich
-1 Programm lauft noch
-2 Datei nicht gefunden
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcstop" ID="RevPiPyLoad.xml_plcstop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcstop</h3>
<b>xml_plcstop</b>(<i></i>)
<p>
Stoppt das PLC Programm.
</p><dl>
<dt>Returns:</dt>
<dd>
int() Exitcode vom PLC Programm
-0 Erfolgreich
-1 PLC Programm lief nicht
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcupload" ID="RevPiPyLoad.xml_plcupload"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcupload</h3>
<b>xml_plcupload</b>(<i>filedata, filename</i>)
<p>
Empfaengt Dateien fuer das PLC Programm einzeln.
</p><dl>
<dt><i>filedata</i></dt>
<dd>
GZIP Binary data der datei
</dd><dt><i>filename</i></dt>
<dd>
Name inkl. Unterverzeichnis der Datei
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Ture, wenn Datei erfolgreich gespeichert wurde
</dd>
</dl><a NAME="RevPiPyLoad.xml_plcuploadclean" ID="RevPiPyLoad.xml_plcuploadclean"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_plcuploadclean</h3>
<b>xml_plcuploadclean</b>(<i></i>)
<p>
Loescht das gesamte plcworkdir Verzeichnis.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn erfolgreich
</dd>
</dl><a NAME="RevPiPyLoad.xml_psstart" ID="RevPiPyLoad.xml_psstart"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_psstart</h3>
<b>xml_psstart</b>(<i></i>)
<p>
Startet den Prozessabbildserver.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn start erfolgreich
</dd>
</dl><a NAME="RevPiPyLoad.xml_psstop" ID="RevPiPyLoad.xml_psstop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_psstop</h3>
<b>xml_psstop</b>(<i></i>)
<p>
Stoppt den Prozessabbildserver.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn stop erfolgreich
</dd>
</dl><a NAME="RevPiPyLoad.xml_reload" ID="RevPiPyLoad.xml_reload"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_reload</h3>
<b>xml_reload</b>(<i></i>)
<p>
Startet RevPiPyLoad neu und verwendet neue Konfiguraiton.
</p><a NAME="RevPiPyLoad.xml_setconfig" ID="RevPiPyLoad.xml_setconfig"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_setconfig</h3>
<b>xml_setconfig</b>(<i>dc, loadnow=False</i>)
<p>
Empfaengt die RevPiPyLoad Konfiguration.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn erfolgreich angewendet
</dd>
</dl><a NAME="RevPiPyLoad.xml_setpictoryrsc" ID="RevPiPyLoad.xml_setpictoryrsc"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
RevPiPyLoad.xml_setpictoryrsc</h3>
<b>xml_setpictoryrsc</b>(<i>filebytes, reset=False</i>)
<p>
Schreibt die config.rsc Datei von piCotry.
</p><dl>
<dt><i>filebytes</i></dt>
<dd>
xmlrpc.client.Binary()-Objekt
</dd><dt><i>reset</i></dt>
<dd>
Reset piControl Device
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Statuscode:
-0 Alles erfolgreich
-1 Kann JSON-Datei nicht laden
-2 piCtory Elemente in JSON-Datei nicht gefunden
-3 Konnte Konfiguraiton nicht schreiben
-4 Module in Konfiguration enthalten, die es nicht gibt
-5 Kein RAP Katalog zur Ueberpruefung gefunden
Positive Zahl ist exitcode von piControlReset
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,239 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>revpipyload.shared.ipaclmanager</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">
revpipyload.shared.ipaclmanager</h1>
<p>
Verwaltet IP Adressen und deren ACLs.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>__version__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#IpAclManager">IpAclManager</a></td>
<td>Verwaltung fuer IP Adressen und deren ACL Level.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#refullmatch">refullmatch</a></td>
<td>re.fullmatch wegen alter python version aus wheezy nachgebaut.</td>
</tr>
</table>
<hr /><hr />
<a NAME="IpAclManager" ID="IpAclManager"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">IpAclManager</h2>
<p>
Verwaltung fuer IP Adressen und deren ACL Level.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
None
<h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3>
<table>
<tr><td>acl</td></tr><tr><td>filename</td></tr><tr><td>regex_acl</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="#IpAclManager.__init__">IpAclManager</a></td>
<td>Init IpAclManager class.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.__get_acl">__get_acl</a></td>
<td>Getter fuer den rohen ACL-String.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.__get_filename">__get_filename</a></td>
<td>Getter fuer Dateinamen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.__get_regex_acl">__get_regex_acl</a></td>
<td>Gibt formatierten RegEx-String zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.__iter__">__iter__</a></td>
<td>Gibt einzelne ACLs als <class 'tuple'> aus.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.__set_acl">__set_acl</a></td>
<td>Uebernimmt neue ACL-Liste fuer die Ausertung der Level.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.get_acllevel">get_acllevel</a></td>
<td>Prueft IP gegen ACL List und gibt ACL-Wert aus.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.loadacl">loadacl</a></td>
<td>Laed ACL String und gibt erfolg zurueck.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.loadaclfile">loadaclfile</a></td>
<td>Laed ACL Definitionen aus Datei.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#IpAclManager.writeaclfile">writeaclfile</a></td>
<td>Schreibt ACL Definitionen in Datei.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="IpAclManager.__init__" ID="IpAclManager.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager (Constructor)</h3>
<b>IpAclManager</b>(<i>minlevel, maxlevel, acl=None</i>)
<p>
Init IpAclManager class.
</p><dl>
<dt><i>minlevel</i></dt>
<dd>
Smallest access level (min. 0)
</dd><dt><i>maxlevel</i></dt>
<dd>
Biggest access level (max. 9)
</dd><dt><i>acl</i></dt>
<dd>
ACL Liste fuer Berechtigungen als <class 'str'>
</dd>
</dl><a NAME="IpAclManager.__get_acl" ID="IpAclManager.__get_acl"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.__get_acl</h3>
<b>__get_acl</b>(<i></i>)
<p>
Getter fuer den rohen ACL-String.
return ACLs als <class 'str'>
</p><a NAME="IpAclManager.__get_filename" ID="IpAclManager.__get_filename"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.__get_filename</h3>
<b>__get_filename</b>(<i></i>)
<p>
Getter fuer Dateinamen.
</p><dl>
<dt>Returns:</dt>
<dd>
Filename der ACL <class 'str'>
</dd>
</dl><a NAME="IpAclManager.__get_regex_acl" ID="IpAclManager.__get_regex_acl"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.__get_regex_acl</h3>
<b>__get_regex_acl</b>(<i></i>)
<p>
Gibt formatierten RegEx-String zurueck.
return RegEx Code als <class 'str'>
</p><a NAME="IpAclManager.__iter__" ID="IpAclManager.__iter__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.__iter__</h3>
<b>__iter__</b>(<i></i>)
<p>
Gibt einzelne ACLs als <class 'tuple'> aus.
</p><a NAME="IpAclManager.__set_acl" ID="IpAclManager.__set_acl"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.__set_acl</h3>
<b>__set_acl</b>(<i>value</i>)
<p>
Uebernimmt neue ACL-Liste fuer die Ausertung der Level.
</p><dl>
<dt><i>value</i></dt>
<dd>
Neue ACL-Liste als <class 'str'>
</dd>
</dl><a NAME="IpAclManager.get_acllevel" ID="IpAclManager.get_acllevel"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.get_acllevel</h3>
<b>get_acllevel</b>(<i>ipaddress</i>)
<p>
Prueft IP gegen ACL List und gibt ACL-Wert aus.
</p><dl>
<dt><i>ipaddress</i></dt>
<dd>
zum pruefen
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
<class 'int'> ACL Wert oder -1 wenn nicht gefunden
</dd>
</dl><a NAME="IpAclManager.loadacl" ID="IpAclManager.loadacl"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.loadacl</h3>
<b>loadacl</b>(<i>str_acl</i>)
<p>
Laed ACL String und gibt erfolg zurueck.
</p><dl>
<dt><i>str_acl</i></dt>
<dd>
ACL als <class 'str'>
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
True, wenn erfolgreich uebernommen
</dd>
</dl><a NAME="IpAclManager.loadaclfile" ID="IpAclManager.loadaclfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.loadaclfile</h3>
<b>loadaclfile</b>(<i>filename</i>)
<p>
Laed ACL Definitionen aus Datei.
</p><dl>
<dt><i>filename</i></dt>
<dd>
Dateiname fuer Definitionen
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
True, wenn Laden erfolgreich war
</dd>
</dl><a NAME="IpAclManager.writeaclfile" ID="IpAclManager.writeaclfile"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
IpAclManager.writeaclfile</h3>
<b>writeaclfile</b>(<i>filename=None, aclname=None</i>)
<p>
Schreibt ACL Definitionen in Datei.
</p><dl>
<dt><i>filename</i></dt>
<dd>
Dateiname fuer Definitionen
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
True, wenn Schreiben erfolgreich war
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="refullmatch" ID="refullmatch"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">refullmatch</h2>
<b>refullmatch</b>(<i>regex, string</i>)
<p>
re.fullmatch wegen alter python version aus wheezy nachgebaut.
</p><dl>
<dt><i>regex</i></dt>
<dd>
RegEx Statement
</dd><dt><i>string</i></dt>
<dd>
Zeichenfolge gegen die getestet wird
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
True, wenn komplett passt sonst False
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,108 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>testsystem</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">
testsystem</h1>
<p>
Test all config files and print results.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>newline</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#TestSystem">TestSystem</a></td>
<td>Main class for test system of revpipyload.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="TestSystem" ID="TestSystem"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">TestSystem</h2>
<p>
Main class for test system of revpipyload.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
None
<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="#TestSystem.__init__">TestSystem</a></td>
<td>Init TestSystem class.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#TestSystem.start">start</a></td>
<td>Start test program and run tests.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#TestSystem.test_replace_io">test_replace_io</a></td>
<td>Test replace_io file.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#TestSystem.test_sections">test_sections</a></td>
<td>Test config file.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="TestSystem.__init__" ID="TestSystem.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
TestSystem (Constructor)</h3>
<b>TestSystem</b>(<i></i>)
<p>
Init TestSystem class.
</p><a NAME="TestSystem.start" ID="TestSystem.start"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
TestSystem.start</h3>
<b>start</b>(<i></i>)
<p>
Start test program and run tests.
</p><a NAME="TestSystem.test_replace_io" ID="TestSystem.test_replace_io"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
TestSystem.test_replace_io</h3>
<b>test_replace_io</b>(<i></i>)
<p>
Test replace_io file.
</p><dl>
<dt>Returns:</dt>
<dd>
0 if successful testet
</dd>
</dl><a NAME="TestSystem.test_sections" ID="TestSystem.test_sections"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
TestSystem.test_sections</h3>
<b>test_sections</b>(<i></i>)
<p>
Test config file.
</p><dl>
<dt>Returns:</dt>
<dd>
0 if successful testet
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

View File

@@ -1,198 +0,0 @@
<!DOCTYPE html>
<html><head>
<title>xrpcserver</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">
xrpcserver</h1>
<p>
XML-RPC Server anpassungen fuer Absicherung.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3>
<table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3>
<table>
<tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCRequestHandler">SaveXMLRPCRequestHandler</a></td>
<td>Verwaltet die XML-Requests und prueft Berechtigungen.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCServer">SaveXMLRPCServer</a></td>
<td>Erstellt einen erweiterten XMLRPCServer.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="SaveXMLRPCRequestHandler" ID="SaveXMLRPCRequestHandler"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">SaveXMLRPCRequestHandler</h2>
<p>
Verwaltet die XML-Requests und prueft Berechtigungen.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
SimpleXMLRPCRequestHandler
<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="#SaveXMLRPCRequestHandler.parse_request">parse_request</a></td>
<td>Berechtigungen pruefen.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="SaveXMLRPCRequestHandler.parse_request" ID="SaveXMLRPCRequestHandler.parse_request"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCRequestHandler.parse_request</h3>
<b>parse_request</b>(<i></i>)
<p>
Berechtigungen pruefen.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Parsen erfolgreich war
</dd>
</dl>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr /><hr />
<a NAME="SaveXMLRPCServer" ID="SaveXMLRPCServer"></a>
<h2 style="background-color:#FFFFFF;color:#0000FF">SaveXMLRPCServer</h2>
<p>
Erstellt einen erweiterten XMLRPCServer.
</p>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Derived from</h3>
SimpleXMLRPCServer
<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="#SaveXMLRPCServer.__init__">SaveXMLRPCServer</a></td>
<td>Init SaveXMLRPCServer class.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCServer._dispatch">_dispatch</a></td>
<td>Prueft ACL Level fuer angeforderte Methode.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCServer.is_alive">is_alive</a></td>
<td>Prueft ob der XML RPC Server laeuft.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCServer.register_function">register_function</a></td>
<td>Override register_function to add acl_level.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCServer.start">start</a></td>
<td>Startet den XML-RPC Server.</td>
</tr><tr>
<td><a style="color:#0000FF" href="#SaveXMLRPCServer.stop">stop</a></td>
<td>Stoppt den XML-RPC Server.</td>
</tr>
</table>
<h3 style="background-color:#FFFFFF;color:#FF0000">
Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="SaveXMLRPCServer.__init__" ID="SaveXMLRPCServer.__init__"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer (Constructor)</h3>
<b>SaveXMLRPCServer</b>(<i>addr, logRequests=True, allow_none=False, ipacl=None</i>)
<p>
Init SaveXMLRPCServer class.
</p><dl>
<dt><i>ipacl</i></dt>
<dd>
AclManager <class 'IpAclManager'>
</dd>
</dl><a NAME="SaveXMLRPCServer._dispatch" ID="SaveXMLRPCServer._dispatch"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer._dispatch</h3>
<b>_dispatch</b>(<i>method, params</i>)
<p>
Prueft ACL Level fuer angeforderte Methode.
</p><dl>
<dt><i>method</i></dt>
<dd>
Angeforderte Methode
</dd><dt><i>params</i></dt>
<dd>
Argumente fuer Methode
</dd>
</dl><dl>
<dt>Returns:</dt>
<dd>
Dispatched data
</dd>
</dl><a NAME="SaveXMLRPCServer.is_alive" ID="SaveXMLRPCServer.is_alive"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer.is_alive</h3>
<b>is_alive</b>(<i></i>)
<p>
Prueft ob der XML RPC Server laeuft.
</p><dl>
<dt>Returns:</dt>
<dd>
True, wenn Server noch laeuft
</dd>
</dl><a NAME="SaveXMLRPCServer.register_function" ID="SaveXMLRPCServer.register_function"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer.register_function</h3>
<b>register_function</b>(<i>acl_level, function, name=None</i>)
<p>
Override register_function to add acl_level.
</p><dl>
<dt><i>acl_level</i></dt>
<dd>
ACL level to call this function
</dd><dt><i>function</i></dt>
<dd>
Function to register
</dd><dt><i>name</i></dt>
<dd>
Alternative name to use
</dd>
</dl><a NAME="SaveXMLRPCServer.start" ID="SaveXMLRPCServer.start"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer.start</h3>
<b>start</b>(<i></i>)
<p>
Startet den XML-RPC Server.
</p><a NAME="SaveXMLRPCServer.stop" ID="SaveXMLRPCServer.stop"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000">
SaveXMLRPCServer.stop</h3>
<b>stop</b>(<i></i>)
<p>
Stoppt den XML-RPC Server.
</p>
<div align="right"><a style="color:#0000FF" href="#top">Up</a></div>
<hr />
</body></html>

20
docs/Makefile Normal file
View File

@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = RevPiPyLoad
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

174
docs/conf.py Normal file
View File

@@ -0,0 +1,174 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# RevPiPyLoad documentation build configuration file, created by
# sphinx-quickstart on Sun Oct 20 16:27:29 2019.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
sys.path.insert(0, os.path.abspath('../revpipyload'))
from revpipyload import __version__
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.todo',
'sphinx.ext.viewcode',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = 'RevPiPyLoad'
copyright = '2019, Sven Sager (NaruX)'
author = 'Sven Sager (NaruX)'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = __version__
# The full version, including alpha/beta/rc tags.
release = ''
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# This is required for the alabaster theme
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
html_sidebars = {
'**': [
'relations.html', # needs 'show_related': True theme option to display
'searchbox.html',
]
}
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'RevPiPyLoaddoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'RevPiPyLoad.tex', 'RevPiPyLoad Documentation',
'Sven Sager (NaruX)', 'manual'),
]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'revpipyload', 'RevPiPyLoad Documentation',
[author], 1)
]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'RevPiPyLoad', 'RevPiPyLoad Documentation',
author, 'RevPiPyLoad', 'One line description of project.',
'Miscellaneous'),
]

7
docs/helper.rst Normal file
View File

@@ -0,0 +1,7 @@
helper module
=============
.. automodule:: helper
:members:
:undoc-members:
:show-inheritance:

20
docs/index.rst Normal file
View File

@@ -0,0 +1,20 @@
.. RevPiPyLoad documentation master file, created by
sphinx-quickstart on Sun Oct 20 16:27:29 2019.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to RevPiPyLoad's documentation!
=======================================
.. toctree::
:maxdepth: 2
:caption: Contents:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

7
docs/logsystem.rst Normal file
View File

@@ -0,0 +1,7 @@
logsystem module
================
.. automodule:: logsystem
:members:
:undoc-members:
:show-inheritance:

17
docs/modules.rst Normal file
View File

@@ -0,0 +1,17 @@
revpipyload
===========
.. toctree::
:maxdepth: 4
helper
logsystem
mqttserver
picontrolserver
plcsystem
procimgserver
proginit
revpipyload
shared
testsystem
xrpcserver

7
docs/mqttserver.rst Normal file
View File

@@ -0,0 +1,7 @@
mqttserver module
=================
.. automodule:: mqttserver
:members:
:undoc-members:
:show-inheritance:

7
docs/picontrolserver.rst Normal file
View File

@@ -0,0 +1,7 @@
picontrolserver module
======================
.. automodule:: picontrolserver
:members:
:undoc-members:
:show-inheritance:

7
docs/plcsystem.rst Normal file
View File

@@ -0,0 +1,7 @@
plcsystem module
================
.. automodule:: plcsystem
:members:
:undoc-members:
:show-inheritance:

7
docs/procimgserver.rst Normal file
View File

@@ -0,0 +1,7 @@
procimgserver module
====================
.. automodule:: procimgserver
:members:
:undoc-members:
:show-inheritance:

7
docs/proginit.rst Normal file
View File

@@ -0,0 +1,7 @@
proginit module
===============
.. automodule:: proginit
:members:
:undoc-members:
:show-inheritance:

7
docs/revpipyload.rst Normal file
View File

@@ -0,0 +1,7 @@
revpipyload module
==================
.. automodule:: revpipyload
:members:
:undoc-members:
:show-inheritance:

22
docs/shared.rst Normal file
View File

@@ -0,0 +1,22 @@
shared package
==============
Submodules
----------
shared\.ipaclmanager module
---------------------------
.. automodule:: shared.ipaclmanager
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: shared
:members:
:undoc-members:
:show-inheritance:

7
docs/testsystem.rst Normal file
View File

@@ -0,0 +1,7 @@
testsystem module
=================
.. automodule:: testsystem
:members:
:undoc-members:
:show-inheritance:

7
docs/xrpcserver.rst Normal file
View File

@@ -0,0 +1,7 @@
xrpcserver module
=================
.. automodule:: xrpcserver
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,177 +0,0 @@
helper.__author__?9
helper.__copyright__?9
helper.__license__?9
helper._setuprt?5(pid, evt_exit)
helper._zeroprocimg?5()
helper.refullmatch?4(regex, string)
logsystem.LogReader.closeall?4()
logsystem.LogReader.load_applog?4(start, count)
logsystem.LogReader.load_plclog?4(start, count)
logsystem.LogReader?1()
logsystem.PipeLogwriter.__del__?6()
logsystem.PipeLogwriter._configurefh?5()
logsystem.PipeLogwriter.logline?4(message)
logsystem.PipeLogwriter.newlogfile?4()
logsystem.PipeLogwriter.run?4()
logsystem.PipeLogwriter.stop?4()
logsystem.PipeLogwriter?1(logfilename)
logsystem.__author__?9
logsystem.__copyright__?9
logsystem.__license__?9
mqttserver.MqttServer._evt_io?5(name, value, requested=False)
mqttserver.MqttServer._loadrevpimodio?5()
mqttserver.MqttServer._on_connect?5(client, userdata, flags, rc)
mqttserver.MqttServer._on_disconnect?5(client, userdata, rc)
mqttserver.MqttServer._on_message?5(client, userdata, msg)
mqttserver.MqttServer._send_pictory_conf?5()
mqttserver.MqttServer.newlogfile?4()
mqttserver.MqttServer.reload_revpimodio?4()
mqttserver.MqttServer.run?4()
mqttserver.MqttServer.stop?4()
mqttserver.MqttServer?1(basetopic, sendinterval, broker_address, port=1883, tls_set=False, username="", password=None, client_id="", send_events=False, write_outputs=False, replace_ios=None)
mqttserver.__author__?9
mqttserver.__copyright__?9
mqttserver.__license__?9
picontrolserver.HASH_FAIL?7
picontrolserver.HASH_NULL?7
picontrolserver.HASH_PICT?7
picontrolserver.HASH_RPIO?7
picontrolserver.RevPiSlave.check_connectedacl?4()
picontrolserver.RevPiSlave.disconnect_all?4()
picontrolserver.RevPiSlave.disconnect_replace_ios?4()
picontrolserver.RevPiSlave.newlogfile?4()
picontrolserver.RevPiSlave.run?4()
picontrolserver.RevPiSlave.stop?4()
picontrolserver.RevPiSlave?1(ipacl, port=55234, bindip="")
picontrolserver.RevPiSlaveDev.run?4()
picontrolserver.RevPiSlaveDev.stop?4()
picontrolserver.RevPiSlaveDev?1(devcon, acl)
picontrolserver.__author__?9
picontrolserver.__copyright__?9
picontrolserver.__license__?9
plcsystem.RevPiPlc.__get_autoreloaddelay?6()
plcsystem.RevPiPlc.__set_autoreloaddelay?6(value)
plcsystem.RevPiPlc._configureplw?5()
plcsystem.RevPiPlc._setuppopen?5()
plcsystem.RevPiPlc._spopen?5(lst_proc)
plcsystem.RevPiPlc.autoreloaddelay?7
plcsystem.RevPiPlc.newlogfile?4()
plcsystem.RevPiPlc.run?4()
plcsystem.RevPiPlc.stop?4()
plcsystem.RevPiPlc?1(program, arguments, pversion)
plcsystem.__author__?9
plcsystem.__copyright__?9
plcsystem.__license__?9
procimgserver.ProcimgServer.__del__?6()
procimgserver.ProcimgServer.devices?4()
procimgserver.ProcimgServer.ios?4(iotype)
procimgserver.ProcimgServer.loadrevpimodio?4()
procimgserver.ProcimgServer.setvalue?4(device, io, value)
procimgserver.ProcimgServer.start?4()
procimgserver.ProcimgServer.stop?4()
procimgserver.ProcimgServer.values?4()
procimgserver.ProcimgServer?1(xmlserver, replace_ios=None)
procimgserver.__author__?9
procimgserver.__copyright__?9
procimgserver.__license__?9
proginit.__author__?9
proginit.__copyright__?9
proginit.__license__?9
proginit.cleanup?4()
proginit.conf?7
proginit.configure?4()
proginit.forked?7
proginit.globalconffile?7
proginit.logapp?7
proginit.logger?7
proginit.logplc?7
proginit.pargs?7
proginit.picontrolreset?7
proginit.rapcatalog?7
proginit.startdir?7
revpipyload.RevPiPyLoad._check_mustrestart_mqtt?5()
revpipyload.RevPiPyLoad._check_mustrestart_plcprogram?5()
revpipyload.RevPiPyLoad._check_mustrestart_plcslave?5()
revpipyload.RevPiPyLoad._loadconfig?5()
revpipyload.RevPiPyLoad._plcmqtt?5()
revpipyload.RevPiPyLoad._plcslave?5()
revpipyload.RevPiPyLoad._plcthread?5()
revpipyload.RevPiPyLoad._sigexit?5(signum, frame)
revpipyload.RevPiPyLoad._sigloadconfig?5(signum, frame)
revpipyload.RevPiPyLoad._signewlogfile?5(signum, frame)
revpipyload.RevPiPyLoad.check_pictory_changed?4()
revpipyload.RevPiPyLoad.check_replace_ios_changed?4()
revpipyload.RevPiPyLoad.packapp?4(mode="tar", pictory=False)
revpipyload.RevPiPyLoad.start?4()
revpipyload.RevPiPyLoad.stop?4()
revpipyload.RevPiPyLoad.stop_plcmqtt?4()
revpipyload.RevPiPyLoad.stop_plcprogram?4()
revpipyload.RevPiPyLoad.stop_plcslave?4()
revpipyload.RevPiPyLoad.stop_xmlrpcserver?4()
revpipyload.RevPiPyLoad.xml_getconfig?4()
revpipyload.RevPiPyLoad.xml_getfilelist?4()
revpipyload.RevPiPyLoad.xml_getpictoryrsc?4()
revpipyload.RevPiPyLoad.xml_getprocimg?4()
revpipyload.RevPiPyLoad.xml_mqttrunning?4()
revpipyload.RevPiPyLoad.xml_mqttstart?4()
revpipyload.RevPiPyLoad.xml_mqttstop?4()
revpipyload.RevPiPyLoad.xml_plcdownload?4(mode="tar", pictory=False)
revpipyload.RevPiPyLoad.xml_plcexitcode?4()
revpipyload.RevPiPyLoad.xml_plcrunning?4()
revpipyload.RevPiPyLoad.xml_plcslaverunning?4()
revpipyload.RevPiPyLoad.xml_plcslavestart?4()
revpipyload.RevPiPyLoad.xml_plcslavestop?4()
revpipyload.RevPiPyLoad.xml_plcstart?4()
revpipyload.RevPiPyLoad.xml_plcstop?4()
revpipyload.RevPiPyLoad.xml_plcupload?4(filedata, filename)
revpipyload.RevPiPyLoad.xml_plcuploadclean?4()
revpipyload.RevPiPyLoad.xml_psstart?4()
revpipyload.RevPiPyLoad.xml_psstop?4()
revpipyload.RevPiPyLoad.xml_reload?4()
revpipyload.RevPiPyLoad.xml_setconfig?4(dc, loadnow=False)
revpipyload.RevPiPyLoad.xml_setpictoryrsc?4(filebytes, reset=False)
revpipyload.RevPiPyLoad?1()
revpipyload.__author__?9
revpipyload.__copyright__?9
revpipyload.__license__?9
revpipyload.__version__?9
revpipyload.min_revpimodio?7
revpipyload.shared.__author__?9
revpipyload.shared.__copyright__?9
revpipyload.shared.__license__?9
revpipyload.shared.ipaclmanager.IpAclManager.__get_acl?6()
revpipyload.shared.ipaclmanager.IpAclManager.__get_filename?6()
revpipyload.shared.ipaclmanager.IpAclManager.__get_regex_acl?6()
revpipyload.shared.ipaclmanager.IpAclManager.__iter__?6()
revpipyload.shared.ipaclmanager.IpAclManager.__set_acl?6(value)
revpipyload.shared.ipaclmanager.IpAclManager.acl?7
revpipyload.shared.ipaclmanager.IpAclManager.filename?7
revpipyload.shared.ipaclmanager.IpAclManager.get_acllevel?4(ipaddress)
revpipyload.shared.ipaclmanager.IpAclManager.loadacl?4(str_acl)
revpipyload.shared.ipaclmanager.IpAclManager.loadaclfile?4(filename)
revpipyload.shared.ipaclmanager.IpAclManager.regex_acl?7
revpipyload.shared.ipaclmanager.IpAclManager.writeaclfile?4(filename=None, aclname=None)
revpipyload.shared.ipaclmanager.IpAclManager?1(minlevel, maxlevel, acl=None)
revpipyload.shared.ipaclmanager.__author__?9
revpipyload.shared.ipaclmanager.__copyright__?9
revpipyload.shared.ipaclmanager.__license__?9
revpipyload.shared.ipaclmanager.__version__?9
revpipyload.shared.ipaclmanager.refullmatch?4(regex, string)
testsystem.TestSystem.start?4()
testsystem.TestSystem.test_replace_io?4()
testsystem.TestSystem.test_sections?4()
testsystem.TestSystem?1()
testsystem.__author__?9
testsystem.__copyright__?9
testsystem.__license__?9
testsystem.newline?7
xrpcserver.SaveXMLRPCRequestHandler.parse_request?4()
xrpcserver.SaveXMLRPCServer._dispatch?5(method, params)
xrpcserver.SaveXMLRPCServer.is_alive?4()
xrpcserver.SaveXMLRPCServer.register_function?4(acl_level, function, name=None)
xrpcserver.SaveXMLRPCServer.start?4()
xrpcserver.SaveXMLRPCServer.stop?4()
xrpcserver.SaveXMLRPCServer?1(addr, logRequests=True, allow_none=False, ipacl=None)
xrpcserver.__author__?9
xrpcserver.__copyright__?9
xrpcserver.__license__?9

View File

@@ -1,7 +0,0 @@
MqttServer Thread
PipeLogwriter Thread
RevPiPlc Thread
RevPiSlave Thread
RevPiSlaveDev Thread
SaveXMLRPCRequestHandler SimpleXMLRPCRequestHandler
SaveXMLRPCServer SimpleXMLRPCServer

View File

@@ -1,399 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
<!-- eric project file for project revpipyload -->
<!-- Saved: 2019-09-15, 20:15:23 -->
<!-- Copyright (C) 2019 Sven Sager, akira@narux.de -->
<Project version="5.1">
<Language>en_US</Language>
<Hash>89ddb4e70b339f832ee277085202b38acc6a125c</Hash>
<ProgLanguage mixed="0">Python3</ProgLanguage>
<ProjectType>Console</ProjectType>
<Description>Dieser Loader wird über das Init-System geladen und führt das angegebene Pythonprogramm aus. Es ist für den RevolutionPi gedacht um automatisch das SPS-Programm zu starten.</Description>
<Version>0.8.1</Version>
<Author>Sven Sager</Author>
<Email>akira@narux.de</Email>
<Eol index="1"/>
<Sources>
<Source>revpipyload/helper.py</Source>
<Source>revpipyload/logsystem.py</Source>
<Source>revpipyload/mqttserver.py</Source>
<Source>revpipyload/picontrolserver.py</Source>
<Source>revpipyload/plcsystem.py</Source>
<Source>revpipyload/procimgserver.py</Source>
<Source>revpipyload/proginit.py</Source>
<Source>revpipyload/revpipyload.py</Source>
<Source>revpipyload/shared/__init__.py</Source>
<Source>revpipyload/shared/ipaclmanager.py</Source>
<Source>revpipyload/testsystem.py</Source>
<Source>revpipyload/xrpcserver.py</Source>
<Source>setup.py</Source>
</Sources>
<Forms/>
<Translations/>
<Resources/>
<Interfaces/>
<Others>
<Other>MANIFEST.in</Other>
<Other>data</Other>
<Other>debian</Other>
<Other>doc</Other>
<Other>eric-revpipyload.api</Other>
<Other>stdeb.cfg</Other>
</Others>
<MainScript>revpipyload/revpipyload.py</MainScript>
<Vcs>
<VcsType>Mercurial</VcsType>
<VcsOptions>
<dict>
<key>
<string>add</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>checkout</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>commit</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>diff</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>export</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>global</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>history</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>log</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>remove</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>status</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>tag</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
<key>
<string>update</string>
</key>
<value>
<list>
<string></string>
</list>
</value>
</dict>
</VcsOptions>
</Vcs>
<FiletypeAssociations>
<FiletypeAssociation pattern="*.idl" type="INTERFACES"/>
<FiletypeAssociation pattern="*.py" type="SOURCES"/>
<FiletypeAssociation pattern="*.py3" type="SOURCES"/>
<FiletypeAssociation pattern="*.pyw" type="SOURCES"/>
<FiletypeAssociation pattern="*.pyw3" type="SOURCES"/>
</FiletypeAssociations>
<Documentation>
<DocumentationParams>
<dict>
<key>
<string>ERIC4API</string>
</key>
<value>
<dict>
<key>
<string>ignoreDirectories</string>
</key>
<value>
<list>
<string>demo</string>
<string>paho</string>
</list>
</value>
<key>
<string>ignoreFilePatterns</string>
</key>
<value>
<list>
<string>setup.py</string>
</list>
</value>
<key>
<string>includePrivate</string>
</key>
<value>
<bool>True</bool>
</value>
<key>
<string>languages</string>
</key>
<value>
<list>
<string>Python3</string>
</list>
</value>
<key>
<string>outputFile</string>
</key>
<value>
<string>eric-revpipyload.api</string>
</value>
<key>
<string>useRecursion</string>
</key>
<value>
<bool>True</bool>
</value>
</dict>
</value>
<key>
<string>ERIC4DOC</string>
</key>
<value>
<dict>
<key>
<string>ignoreDirectories</string>
</key>
<value>
<list>
<string>data</string>
<string>deb</string>
<string>dist</string>
<string>demo</string>
<string>paho</string>
</list>
</value>
<key>
<string>ignoreFilePatterns</string>
</key>
<value>
<list>
<string>setup.py</string>
</list>
</value>
<key>
<string>outputDirectory</string>
</key>
<value>
<string>doc</string>
</value>
<key>
<string>qtHelpEnabled</string>
</key>
<value>
<bool>False</bool>
</value>
<key>
<string>useRecursion</string>
</key>
<value>
<bool>True</bool>
</value>
</dict>
</value>
</dict>
</DocumentationParams>
</Documentation>
<Checkers>
<CheckersParams>
<dict>
<key>
<string>Pep8Checker</string>
</key>
<value>
<dict>
<key>
<string>BuiltinsChecker</string>
</key>
<value>
<dict>
<key>
<string>chr</string>
</key>
<value>
<list>
<string>unichr</string>
</list>
</value>
<key>
<string>str</string>
</key>
<value>
<list>
<string>unicode</string>
</list>
</value>
</dict>
</value>
<key>
<string>CopyrightAuthor</string>
</key>
<value>
<string></string>
</value>
<key>
<string>CopyrightMinFileSize</string>
</key>
<value>
<int>0</int>
</value>
<key>
<string>DocstringType</string>
</key>
<value>
<string>pep257</string>
</value>
<key>
<string>ExcludeFiles</string>
</key>
<value>
<string>*/demo/*</string>
</value>
<key>
<string>ExcludeMessages</string>
</key>
<value>
<string>E123,E226,E24,C101</string>
</value>
<key>
<string>FixCodes</string>
</key>
<value>
<string></string>
</value>
<key>
<string>FixIssues</string>
</key>
<value>
<bool>False</bool>
</value>
<key>
<string>FutureChecker</string>
</key>
<value>
<string></string>
</value>
<key>
<string>HangClosing</string>
</key>
<value>
<bool>False</bool>
</value>
<key>
<string>IncludeMessages</string>
</key>
<value>
<string></string>
</value>
<key>
<string>LineComplexity</string>
</key>
<value>
<int>15</int>
</value>
<key>
<string>LineComplexityScore</string>
</key>
<value>
<int>10</int>
</value>
<key>
<string>MaxCodeComplexity</string>
</key>
<value>
<int>10</int>
</value>
<key>
<string>MaxLineLength</string>
</key>
<value>
<int>79</int>
</value>
<key>
<string>NoFixCodes</string>
</key>
<value>
<string>E501</string>
</value>
<key>
<string>RepeatMessages</string>
</key>
<value>
<bool>True</bool>
</value>
<key>
<string>ShowIgnored</string>
</key>
<value>
<bool>False</bool>
</value>
<key>
<string>ValidEncodings</string>
</key>
<value>
<string>latin-1, utf-8</string>
</value>
</dict>
</value>
</dict>
</CheckersParams>
</Checkers>
</Project>

View File

@@ -188,6 +188,6 @@ def configure():
loglevel = logging.WARNING loglevel = logging.WARNING
elif pargs.verbose == 1: elif pargs.verbose == 1:
loglevel = logging.INFO loglevel = logging.INFO
elif pargs.verbose > 1: else:
loglevel = logging.DEBUG loglevel = logging.DEBUG
logger.setLevel(loglevel) logger.setLevel(loglevel)

View File

@@ -46,8 +46,8 @@ setup(
]), ]),
("share/revpipyload", glob("revpipyload/*.*")), ("share/revpipyload", glob("revpipyload/*.*")),
("share/revpipyload/shared", glob("revpipyload/shared/*.*")), ("share/revpipyload/shared", glob("revpipyload/shared/*.*")),
("share/revpipyload/paho", ["revpipyload/paho/__init__.py"]), ("share/revpipyload/paho", ["lib/paho/__init__.py"]),
("share/revpipyload/paho/mqtt", glob("revpipyload/paho/mqtt/*.*")), ("share/revpipyload/paho/mqtt", glob("lib/paho/mqtt/*.*")),
("/var/lib/revpipyload", [ ("/var/lib/revpipyload", [
"data/var/lib/revpipyload/.placeholder", "data/var/lib/revpipyload/.placeholder",
]) ])