revpipyload

Revolution Pi Python PLC Loader.

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.

Dieser Daemon prueft ob das Python Programm noch lauft und kann es im Fall eines Absturzes neu starten.

Ueber diesen Daemon kann die gesamte piCtory Konfiguration exportiert oder importiert, ein Dump vom Prozessabbild gezogen und das eigene Python Programm hochgeladen werden.

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.

Die Zugriffsmoeglichkeiten koennen ueber einen Konfigurationsparameter begrenzt werden!

Global Attributes

pyloadverion

Classes

RevPiPyLoad Hauptklasse, die alle Funktionen zur Verfuegung stellt.

Functions

None


RevPiPyLoad

Hauptklasse, die alle Funktionen zur Verfuegung stellt.

Hier wird die gesamte Konfiguraiton eingelesen und der ggf. aktivierte XML-RPC-Server gestartet.

Derived from

None

Class Attributes

root

Class Methods

None

Methods

RevPiPyLoad Instantiiert RevPiPyLoad-Klasse.
_loadconfig Load configuration file and setup modul.
_plcthread Konfiguriert den PLC-Thread fuer die Ausfuehrung.
_sigexit Signal handler to clean and exit program.
_sigloadconfig Signal handler to load configuration.
_signewlogfile Signal handler to start new logfile.
packapp Erzeugt aus dem PLC-Programm ein TAR/Zip-File.
start Start revpipyload.
stop Stop revpipyload.
xml_getconfig Uebertraegt die RevPiPyLoad Konfiguration.
xml_getfilelist Uebertraegt die Dateiliste vom plcworkdir.
xml_getpictoryrsc Gibt die config.rsc Datei von piCotry zurueck.
xml_getprocimg Gibt die Rohdaten aus piControl0 zurueck.
xml_plcdownload Uebertraegt ein Archiv vom plcworkdir.
xml_plcexitcode Gibt den aktuellen exitcode vom PLC Programm zurueck.
xml_plcrunning Prueft ob das PLC Programm noch lauft.
xml_plcstart Startet das PLC Programm.
xml_plcstop Stoppt das PLC Programm.
xml_plcupload Empfaengt Dateien fuer das PLC Programm einzeln.
xml_plcuploadclean Loescht das gesamte plcworkdir Verzeichnis.
xml_psstart Startet den Prozessabbildserver.
xml_psstop Stoppt den Prozessabbildserver.
xml_reload Startet RevPiPyLoad neu und verwendet neue Konfiguraiton.
xml_setconfig Empfaengt die RevPiPyLoad Konfiguration.
xml_setpictoryrsc Schreibt die config.rsc Datei von piCotry.

Static Methods

None

RevPiPyLoad (Constructor)

RevPiPyLoad()

Instantiiert RevPiPyLoad-Klasse.

RevPiPyLoad._loadconfig

_loadconfig()

Load configuration file and setup modul.

RevPiPyLoad._plcthread

_plcthread()

Konfiguriert den PLC-Thread fuer die Ausfuehrung.

Returns:
PLC-Thread Object or None

RevPiPyLoad._sigexit

_sigexit(signum, frame)

Signal handler to clean and exit program.

RevPiPyLoad._sigloadconfig

_sigloadconfig(signum, frame)

Signal handler to load configuration.

RevPiPyLoad._signewlogfile

_signewlogfile(signum, frame)

Signal handler to start new logfile.

RevPiPyLoad.packapp

packapp(mode="tar", pictory=False)

Erzeugt aus dem PLC-Programm ein TAR/Zip-File.

mode
Packart 'tar' oder 'zip'
pictory
piCtory Konfiguration mit einpacken
Returns:
Dateinamen des Archivs

RevPiPyLoad.start

start()

Start revpipyload.

RevPiPyLoad.stop

stop()

Stop revpipyload.

RevPiPyLoad.xml_getconfig

xml_getconfig()

Uebertraegt die RevPiPyLoad Konfiguration.

Returns:
dict() der Konfiguration

RevPiPyLoad.xml_getfilelist

xml_getfilelist()

Uebertraegt die Dateiliste vom plcworkdir.

Returns:
list() mit Dateinamen

RevPiPyLoad.xml_getpictoryrsc

xml_getpictoryrsc()

Gibt die config.rsc Datei von piCotry zurueck.

Returns:
xmlrpc.client.Binary()

RevPiPyLoad.xml_getprocimg

xml_getprocimg()

Gibt die Rohdaten aus piControl0 zurueck.

Returns:
xmlrpc.client.Binary()

RevPiPyLoad.xml_plcdownload

xml_plcdownload(mode="tar", pictory=False)

Uebertraegt ein Archiv vom plcworkdir.

mode
Archivart 'tar' 'zip'
pictory
piCtory Konfiguraiton mit einpacken
Returns:
Binary() mit Archivdatei

RevPiPyLoad.xml_plcexitcode

xml_plcexitcode()

Gibt den aktuellen exitcode vom PLC Programm zurueck.

Returns:
int() exitcode oder: -1 laeuft noch -2 Datei nicht gefunden -3 Lief nie

RevPiPyLoad.xml_plcrunning

xml_plcrunning()

Prueft ob das PLC Programm noch lauft.

Returns:
True, wenn das PLC Programm noch lauft

RevPiPyLoad.xml_plcstart

xml_plcstart()

Startet das PLC Programm.

Returns:
int() Status: -0 Erfolgreich -1 Programm lauft noch -2 Datei nicht gefunden

RevPiPyLoad.xml_plcstop

xml_plcstop()

Stoppt das PLC Programm.

Returns:
int() Exitcode vom PLC Programm -0 Erfolgreich -1 PLC Programm lief nicht

RevPiPyLoad.xml_plcupload

xml_plcupload(filedata, filename)

Empfaengt Dateien fuer das PLC Programm einzeln.

filedata
GZIP Binary data der datei
filename
Name inkl. Unterverzeichnis der Datei
Returns:
Ture, wenn Datei erfolgreich gespeichert wurde

RevPiPyLoad.xml_plcuploadclean

xml_plcuploadclean()

Loescht das gesamte plcworkdir Verzeichnis.

Returns:
True, wenn erfolgreich

RevPiPyLoad.xml_psstart

xml_psstart()

Startet den Prozessabbildserver.

Returns:
True, wenn start erfolgreich

RevPiPyLoad.xml_psstop

xml_psstop()

Stoppt den Prozessabbildserver.

Returns:
True, wenn stop erfolgreich

RevPiPyLoad.xml_reload

xml_reload()

Startet RevPiPyLoad neu und verwendet neue Konfiguraiton.

RevPiPyLoad.xml_setconfig

xml_setconfig(dc, loadnow=False)

Empfaengt die RevPiPyLoad Konfiguration.

Returns:
True, wenn erfolgreich angewendet

RevPiPyLoad.xml_setpictoryrsc

xml_setpictoryrsc(filebytes, reset=False)

Schreibt die config.rsc Datei von piCotry.

filebytes
xmlrpc.client.Binary()-Objekt
reset
Reset piControl Device
Returns:
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
Up