Wenn keine piCtory Konfiguration vorhanden ist, dennoch Modul laden

Bei RevPiModIO Instantiierung Rückgabewert False, sollte piCtory leer sein
description Text angepasst
This commit is contained in:
2017-07-06 12:50:26 +02:00
parent d3f3813ee7
commit 9f7e3cc5a4
5 changed files with 51 additions and 26 deletions

View File

@@ -146,7 +146,12 @@ ProcimgServer.loadrevpimodio</h3>
<b>loadrevpimodio</b>(<i></i>) <b>loadrevpimodio</b>(<i></i>)
<p> <p>
Instantiiert das RevPiModIO Modul. Instantiiert das RevPiModIO Modul.
</p><a NAME="ProcimgServer.setvalue" ID="ProcimgServer.setvalue"></a> </p><dl>
<dt>Returns:</dt>
<dd>
True, wenn erfolgreich, sonst False
</dd>
</dl><a NAME="ProcimgServer.setvalue" ID="ProcimgServer.setvalue"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.setvalue</h3> ProcimgServer.setvalue</h3>
<b>setvalue</b>(<i>device, io, value</i>) <b>setvalue</b>(<i>device, io, value</i>)
@@ -174,7 +179,12 @@ ProcimgServer.start</h3>
<b>start</b>(<i></i>) <b>start</b>(<i></i>)
<p> <p>
Registriert XML Funktionen. Registriert XML Funktionen.
</p><a NAME="ProcimgServer.stop" ID="ProcimgServer.stop"></a> </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"> <h3 style="background-color:#FFFFFF;color:#FF0000">
ProcimgServer.stop</h3> ProcimgServer.stop</h3>
<b>stop</b>(<i></i>) <b>stop</b>(<i></i>)

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-5.1.dtd"> <!DOCTYPE Project SYSTEM "Project-5.1.dtd">
<!-- eric project file for project revpipyload --> <!-- eric project file for project revpipyload -->
<!-- Saved: 2017-07-02, 21:15:03 --> <!-- Saved: 2017-07-06, 12:34:30 -->
<!-- Copyright (C) 2017 Sven Sager, akira@narux.de --> <!-- Copyright (C) 2017 Sven Sager, akira@narux.de -->
<Project version="5.1"> <Project version="5.1">
<Language>en_US</Language> <Language>en_US</Language>
@@ -9,7 +9,7 @@
<ProgLanguage mixed="0">Python3</ProgLanguage> <ProgLanguage mixed="0">Python3</ProgLanguage>
<ProjectType>Console</ProjectType> <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> <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.4.1</Version> <Version>0.4.2</Version>
<Author>Sven Sager</Author> <Author>Sven Sager</Author>
<Email>akira@narux.de</Email> <Email>akira@narux.de</Email>
<Eol index="-1"/> <Eol index="-1"/>

View File

@@ -98,18 +98,26 @@ class ProcimgServer():
return Binary(pickle.dumps(dict_ios)) return Binary(pickle.dumps(dict_ios))
def loadrevpimodio(self): def loadrevpimodio(self):
"""Instantiiert das RevPiModIO Modul.""" """Instantiiert das RevPiModIO Modul.
@return True, wenn erfolgreich, sonst False"""
# RevPiModIO-Modul Instantiieren # RevPiModIO-Modul Instantiieren
if self.rpi is not None: if self.rpi is not None:
self.rpi.cleanup() self.rpi.cleanup()
self.logger.debug("create revpimodio class") self.logger.debug("create revpimodio class")
self.rpi = revpimodio.RevPiModIO( try:
configrsc=self.configrsc, self.rpi = revpimodio.RevPiModIO(
procimg=self.procimg, configrsc=self.configrsc,
) procimg=self.procimg,
)
except:
self.rpi = None
self.logger.error("piCtory configuration not loadable")
return False
self.rpi.devices.syncoutputs(device=0) self.rpi.devices.syncoutputs(device=0)
self.logger.debug("created revpimodio class") self.logger.debug("created revpimodio class")
return True
def setvalue(self, device, io, value): def setvalue(self, device, io, value):
"""Setzt einen Wert auf dem RevPi. """Setzt einen Wert auf dem RevPi.
@@ -161,19 +169,27 @@ class ProcimgServer():
return None return None
def start(self): def start(self):
"""Registriert XML Funktionen.""" """Registriert XML Funktionen.
@return True, wenn erfolgreich"""
self.logger.debug("enter ProcimgServer.start()") self.logger.debug("enter ProcimgServer.start()")
ec = False
# Registriere Funktionen if self.rpi is not None:
for xmlfunc in self.xmlreadfuncs:
self.xmlsrv.register_function(self.xmlreadfuncs[xmlfunc], xmlfunc) # Registriere Funktionen
if self.acl >= 3: for xmlfunc in self.xmlreadfuncs:
for xmlfunc in self.xmlwritefuncs:
self.xmlsrv.register_function( self.xmlsrv.register_function(
self.xmlwritefuncs[xmlfunc], xmlfunc self.xmlreadfuncs[xmlfunc], xmlfunc
) )
if self.acl >= 3:
for xmlfunc in self.xmlwritefuncs:
self.xmlsrv.register_function(
self.xmlwritefuncs[xmlfunc], xmlfunc
)
ec = True
self.logger.debug("leave ProcimgServer.start()") self.logger.debug("leave ProcimgServer.start()")
return ec
def stop(self): def stop(self):
"""Entfernt XML-Funktionen.""" """Entfernt XML-Funktionen."""

View File

@@ -53,7 +53,7 @@ from xmlrpc.server import SimpleXMLRPCServer
configrsc = None configrsc = None
picontrolreset = "/opt/KUNBUS/piControlReset" picontrolreset = "/opt/KUNBUS/piControlReset"
procimg = "/dev/piControl0" procimg = "/dev/piControl0"
pyloadverion = "0.4.1" pyloadverion = "0.4.2"
rapcatalog = None rapcatalog = None
@@ -1069,8 +1069,7 @@ class RevPiPyLoad():
"""Startet den Prozessabbildserver. """Startet den Prozessabbildserver.
@return True, wenn start erfolgreich""" @return True, wenn start erfolgreich"""
if self.xml_ps is not None: if self.xml_ps is not None:
self.xml_ps.start() return self.xml_ps.start()
return True
else: else:
return False return False

View File

@@ -27,7 +27,7 @@ setup(
license="LGPLv3", license="LGPLv3",
name="revpipyload", name="revpipyload",
version="0.4.1", version="0.4.2",
scripts=["data/revpipyload"], scripts=["data/revpipyload"],
@@ -42,12 +42,12 @@ setup(
description="PLC Loader für Python-Projekte auf den RevolutionPi", description="PLC Loader für Python-Projekte auf den RevolutionPi",
long_description="" long_description=""
"Dieses Programm startet beim Systemstart ein angegebenes Python PLC\n" "Dieses Programm startet beim Systemstart ein angegebenes Python PLC \n"
"Programm. Es überwacht das Programm und startet es im Fehlerfall neu.\n" "Programm. Es überwacht das Programm und startet es im Fehlerfall neu. \n"
"Bei Absturz kann das gesamte /dev/piControl0 auf 0x00 gesetzt werden.\n" "Bei Absturz kann das gesamte /dev/piControl0 auf 0x00 gesetzt werden. \n"
"Außerdem stellt es einen XML-RPC Server bereit, über den die Software\n" "Außerdem stellt es einen XML-RPC Server bereit, über den die Software \n"
"auf den RevPi geladen werden kann. Das Prozessabbild kann über ein Tool\n" "auf den RevPi geladen werden kann. Das Prozessabbild kann über ein \n"
"zur Laufzeit überwacht werden.", "Tool zur Laufzeit überwacht werden.",
classifiers=[ classifiers=[
"License :: OSI Approved :: " "License :: OSI Approved :: "