Connect-Attribut watchdogtrigger in wdautotoggle umbenannt

Bei handlesignalend wird im monitoring Modus nicht mehr geschrieben
This commit is contained in:
2018-08-09 08:36:18 +02:00
parent ff7cd3ce7f
commit 27a69488f4
7 changed files with 40 additions and 39 deletions

View File

@@ -58,7 +58,7 @@ Core
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Class Attributes</h3> Class Attributes</h3>
<table> <table>
<tr><td>A3</td></tr><tr><td>watchdogtrigger</td></tr> <tr><td>A3</td></tr><tr><td>wdautotoggle</td></tr>
</table> </table>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Class Methods</h3> Class Methods</h3>
@@ -69,7 +69,7 @@ Class Methods</h3>
Methods</h3> Methods</h3>
<table> <table>
<tr> <tr>
<td><a style="color:#0000FF" href="#Connect.__wdtrigger">__wdtrigger</a></td> <td><a style="color:#0000FF" href="#Connect.__wdtoggle">__wdtoggle</a></td>
<td>WD Ausgang alle 10 Sekunden automatisch toggeln.</td> <td>WD Ausgang alle 10 Sekunden automatisch toggeln.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#Connect._devconfigure">_devconfigure</a></td> <td><a style="color:#0000FF" href="#Connect._devconfigure">_devconfigure</a></td>
@@ -78,13 +78,13 @@ Methods</h3>
<td><a style="color:#0000FF" href="#Connect._get_leda3">_get_leda3</a></td> <td><a style="color:#0000FF" href="#Connect._get_leda3">_get_leda3</a></td>
<td>Gibt den Zustand der LED A3 vom Connect zurueck.</td> <td>Gibt den Zustand der LED A3 vom Connect zurueck.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#Connect._get_wdtrigger">_get_wdtrigger</a></td> <td><a style="color:#0000FF" href="#Connect._get_wdtoggle">_get_wdtoggle</a></td>
<td>Ruft den Wert fuer Autowatchdog ab.</td> <td>Ruft den Wert fuer Autowatchdog ab.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#Connect._set_leda3">_set_leda3</a></td> <td><a style="color:#0000FF" href="#Connect._set_leda3">_set_leda3</a></td>
<td>Setzt den Zustand der LED A3 vom Connect.</td> <td>Setzt den Zustand der LED A3 vom Connect.</td>
</tr><tr> </tr><tr>
<td><a style="color:#0000FF" href="#Connect._set_wdtrigger">_set_wdtrigger</a></td> <td><a style="color:#0000FF" href="#Connect._set_wdtoggle">_set_wdtoggle</a></td>
<td>Setzt den Wert fuer Autowatchdog.</td> <td>Setzt den Wert fuer Autowatchdog.</td>
</tr> </tr>
</table> </table>
@@ -93,10 +93,10 @@ Static Methods</h3>
<table> <table>
<tr><td>None</td></tr> <tr><td>None</td></tr>
</table> </table>
<a NAME="Connect.__wdtrigger" ID="Connect.__wdtrigger"></a> <a NAME="Connect.__wdtoggle" ID="Connect.__wdtoggle"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Connect.__wdtrigger</h3> Connect.__wdtoggle</h3>
<b>__wdtrigger</b>(<i></i>) <b>__wdtoggle</b>(<i></i>)
<p> <p>
WD Ausgang alle 10 Sekunden automatisch toggeln. WD Ausgang alle 10 Sekunden automatisch toggeln.
</p><a NAME="Connect._devconfigure" ID="Connect._devconfigure"></a> </p><a NAME="Connect._devconfigure" ID="Connect._devconfigure"></a>
@@ -116,10 +116,10 @@ Gibt den Zustand der LED A3 vom Connect zurueck.
<dd> <dd>
0=aus, 1=gruen, 2=rot 0=aus, 1=gruen, 2=rot
</dd> </dd>
</dl><a NAME="Connect._get_wdtrigger" ID="Connect._get_wdtrigger"></a> </dl><a NAME="Connect._get_wdtoggle" ID="Connect._get_wdtoggle"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Connect._get_wdtrigger</h3> Connect._get_wdtoggle</h3>
<b>_get_wdtrigger</b>(<i></i>) <b>_get_wdtoggle</b>(<i></i>)
<p> <p>
Ruft den Wert fuer Autowatchdog ab. Ruft den Wert fuer Autowatchdog ab.
</p><dl> </p><dl>
@@ -138,10 +138,10 @@ Setzt den Zustand der LED A3 vom Connect.
<dd> <dd>
0=aus, 1=gruen, 2=rot 0=aus, 1=gruen, 2=rot
</dd> </dd>
</dl><a NAME="Connect._set_wdtrigger" ID="Connect._set_wdtrigger"></a> </dl><a NAME="Connect._set_wdtoggle" ID="Connect._set_wdtoggle"></a>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Connect._set_wdtrigger</h3> Connect._set_wdtoggle</h3>
<b>_set_wdtrigger</b>(<i>value</i>) <b>_set_wdtoggle</b>(<i>value</i>)
<p> <p>
Setzt den Wert fuer Autowatchdog. Setzt den Wert fuer Autowatchdog.
</p><p> </p><p>

View File

@@ -12,10 +12,10 @@ revpimodio2.consttostr?4(value)
revpimodio2.device.Connect.A3?7 revpimodio2.device.Connect.A3?7
revpimodio2.device.Connect._devconfigure?5() revpimodio2.device.Connect._devconfigure?5()
revpimodio2.device.Connect._get_leda3?5() revpimodio2.device.Connect._get_leda3?5()
revpimodio2.device.Connect._get_wdtrigger?5() revpimodio2.device.Connect._get_wdtoggle?5()
revpimodio2.device.Connect._set_leda3?5(value) revpimodio2.device.Connect._set_leda3?5(value)
revpimodio2.device.Connect._set_wdtrigger?5(value) revpimodio2.device.Connect._set_wdtoggle?5(value)
revpimodio2.device.Connect.watchdogtrigger?7 revpimodio2.device.Connect.wdautotoggle?7
revpimodio2.device.Core.A1?7 revpimodio2.device.Core.A1?7
revpimodio2.device.Core.A2?7 revpimodio2.device.Core.A2?7
revpimodio2.device.Core._devconfigure?5() revpimodio2.device.Core._devconfigure?5()

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 revpimodio2 --> <!-- eric project file for project revpimodio2 -->
<!-- Saved: 2018-08-01, 17:40:40 --> <!-- Saved: 2018-08-09, 08:14:06 -->
<!-- Copyright (C) 2018 Sven Sager, akira@narux.de --> <!-- Copyright (C) 2018 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>Das Modul stellt alle Devices und IOs aus der piCtory Konfiguration in Python3 zur Verfügung. Es ermöglicht den direkten Zugriff auf die Werte über deren vergebenen Namen. Lese- und Schreibaktionen mit dem Prozessabbild werden von dem Modul selbst verwaltet, ohne dass sich der Programmierer um Offsets und Adressen kümmern muss. Für die Gatewaymodule wie ModbusTCP oder Profinet sind eigene 'Inputs' und 'Outputs' über einen bestimmten Adressbereich definierbar. Auf diese IOs kann mit Python3 über den Namen direkt auf die Werte zugegriffen werden.</Description> <Description>Das Modul stellt alle Devices und IOs aus der piCtory Konfiguration in Python3 zur Verfügung. Es ermöglicht den direkten Zugriff auf die Werte über deren vergebenen Namen. Lese- und Schreibaktionen mit dem Prozessabbild werden von dem Modul selbst verwaltet, ohne dass sich der Programmierer um Offsets und Adressen kümmern muss. Für die Gatewaymodule wie ModbusTCP oder Profinet sind eigene 'Inputs' und 'Outputs' über einen bestimmten Adressbereich definierbar. Auf diese IOs kann mit Python3 über den Namen direkt auf die Werte zugegriffen werden.</Description>
<Version>2.2.1</Version> <Version>2.2.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

@@ -25,7 +25,7 @@ __all__ = [
__author__ = "Sven Sager <akira@revpimodio.org>" __author__ = "Sven Sager <akira@revpimodio.org>"
__name__ = "revpimodio2" __name__ = "revpimodio2"
__package__ = "revpimodio2" __package__ = "revpimodio2"
__version__ = "2.2.1" __version__ = "2.2.2"
# Global package values # Global package values
OFF = 0 OFF = 0

View File

@@ -649,16 +649,16 @@ class Connect(Core):
""" """
def __wdtrigger(self): def __wdtoggle(self):
"""WD Ausgang alle 10 Sekunden automatisch toggeln.""" """WD Ausgang alle 10 Sekunden automatisch toggeln."""
while not self.__evt_wdtrigger.wait(10): while not self.__evt_wdtoggle.wait(10):
self.wd.value = not self.wd.value self.wd.value = not self.wd.value
def _devconfigure(self): def _devconfigure(self):
"""Connect-Klasse vorbereiten.""" """Connect-Klasse vorbereiten."""
super()._devconfigure() super()._devconfigure()
self.__evt_wdtrigger = Event() self.__evt_wdtoggle = Event()
self.__th_wdtrigger = None self.__th_wdtoggle = None
# Echte IOs erzeugen # Echte IOs erzeugen
self.a3green = IOBase(self, [ self.a3green = IOBase(self, [
@@ -694,11 +694,11 @@ class Connect(Core):
led += int_led & 2 led += int_led & 2
return led return led
def _get_wdtrigger(self): def _get_wdtoggle(self):
"""Ruft den Wert fuer Autowatchdog ab. """Ruft den Wert fuer Autowatchdog ab.
@return True, wenn Autowatchdog aktiv ist""" @return True, wenn Autowatchdog aktiv ist"""
return self.__th_wdtrigger is not None \ return self.__th_wdtoggle is not None \
and self.__th_wdtrigger.is_alive() and self.__th_wdtoggle.is_alive()
def _set_leda3(self, value): def _set_leda3(self, value):
"""Setzt den Zustand der LED A3 vom Connect. """Setzt den Zustand der LED A3 vom Connect.
@@ -708,7 +708,7 @@ class Connect(Core):
else: else:
raise ValueError("led status must be between 0 and 3") raise ValueError("led status must be between 0 and 3")
def _set_wdtrigger(self, value): def _set_wdtoggle(self, value):
"""Setzt den Wert fuer Autowatchdog. """Setzt den Wert fuer Autowatchdog.
Wird dieser Wert auf True gesetzt, wechselt im Hintergrund das noetige Wird dieser Wert auf True gesetzt, wechselt im Hintergrund das noetige
@@ -723,24 +723,24 @@ class Connect(Core):
@param value True zum aktivieren, Fals zum beenden""" @param value True zum aktivieren, Fals zum beenden"""
if self._modio._monitoring: if self._modio._monitoring:
raise RuntimeError( raise RuntimeError(
"can not trigger watchdog, while system is in monitoring mode" "can not toggle watchdog, while system is in monitoring mode"
) )
if self._modio._simulator: if self._modio._simulator:
raise RuntimeError( raise RuntimeError(
"can not trigger watchdog, while system is in simulator mode" "can not toggle watchdog, while system is in simulator mode"
) )
if not value: if not value:
self.__evt_wdtrigger.set() self.__evt_wdtoggle.set()
elif not self._get_wdtrigger(): elif not self._get_wdtoggle():
# Watchdogtrigger erstellen # Watchdogtoggler erstellen
self.__evt_wdtrigger.clear() self.__evt_wdtoggle.clear()
self.__th_wdtrigger = Thread(target=self.__wdtrigger, daemon=True) self.__th_wdtoggle = Thread(target=self.__wdtoggle, daemon=True)
self.__th_wdtrigger.start() self.__th_wdtoggle.start()
A3 = property(_get_leda3, _set_leda3) A3 = property(_get_leda3, _set_leda3)
watchdogtrigger = property(_get_wdtrigger, _set_wdtrigger) wdautotoggle = property(_get_wdtoggle, _set_wdtoggle)
class Gateway(Device): class Gateway(Device):

View File

@@ -103,7 +103,8 @@ class RevPiModIO(object):
if self.__cleanupfunc is not None: if self.__cleanupfunc is not None:
self.readprocimg() self.readprocimg()
self.__cleanupfunc() self.__cleanupfunc()
self.writeprocimg() if not self._monitoring:
self.writeprocimg()
def _configure(self, jconfigrsc): def _configure(self, jconfigrsc):
"""Verarbeitet die piCtory Konfigurationsdatei.""" """Verarbeitet die piCtory Konfigurationsdatei."""
@@ -459,7 +460,7 @@ class RevPiModIO(object):
self._imgwriter.stop() self._imgwriter.stop()
self._imgwriter.join(self._imgwriter._refresh) self._imgwriter.join(self._imgwriter._refresh)
# Mainloop beenden und darauf waretn # Mainloop beenden und darauf 1 Sekunde warten
if self._th_mainloop is not None and self._th_mainloop.is_alive(): if self._th_mainloop is not None and self._th_mainloop.is_alive():
self._th_mainloop.join(1) self._th_mainloop.join(1)

View File

@@ -16,7 +16,7 @@ setup(
license="LGPLv3", license="LGPLv3",
name="revpimodio2", name="revpimodio2",
version="2.2.1", version="2.2.2",
packages=["revpimodio2"], packages=["revpimodio2"],
python_requires="~=3.2", python_requires="~=3.2",