mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +01:00
Counter Reset in MQTT eingebaut basename/reset/ioname - payload egal
This commit is contained in:
@@ -37,7 +37,7 @@ Functions</h3>
|
|||||||
RevPi PLC-Server.
|
RevPi PLC-Server.
|
||||||
</p><p>
|
</p><p>
|
||||||
Diese Klasste stellt den RevPi PLC-Server zur verfuegung und akzeptiert
|
Diese Klasste stellt den RevPi PLC-Server zur verfuegung und akzeptiert
|
||||||
neue Verbindungen. Dieser werden dann als RevPiSlaveDev abgebildet.
|
neue Verbindungen. Diese werden dann als RevPiSlaveDev abgebildet.
|
||||||
</p><p>
|
</p><p>
|
||||||
Ueber die angegebenen ACLs koennen Zugriffsbeschraenkungen vergeben werden.
|
Ueber die angegebenen ACLs koennen Zugriffsbeschraenkungen vergeben werden.
|
||||||
</p><p>
|
</p><p>
|
||||||
@@ -84,7 +84,7 @@ Static Methods</h3>
|
|||||||
<a NAME="RevPiSlave.__init__" ID="RevPiSlave.__init__"></a>
|
<a NAME="RevPiSlave.__init__" ID="RevPiSlave.__init__"></a>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
RevPiSlave (Constructor)</h3>
|
RevPiSlave (Constructor)</h3>
|
||||||
<b>RevPiSlave</b>(<i>ipacl, port=55234</i>)
|
<b>RevPiSlave</b>(<i>ipacl, port=55234, bindip=""</i>)
|
||||||
<p>
|
<p>
|
||||||
Instantiiert RevPiSlave-Klasse.
|
Instantiiert RevPiSlave-Klasse.
|
||||||
</p><dl>
|
</p><dl>
|
||||||
@@ -94,6 +94,9 @@ AclManager <class 'IpAclManager'>
|
|||||||
</dd><dt><i>port</i></dt>
|
</dd><dt><i>port</i></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Listen Port fuer plc Slaveserver
|
Listen Port fuer plc Slaveserver
|
||||||
|
</dd><dt><i>bindip</i></dt>
|
||||||
|
<dd>
|
||||||
|
IP-Adresse an die der Dienst gebunden wird (leer=alle)
|
||||||
</dd>
|
</dd>
|
||||||
</dl><a NAME="RevPiSlave.check_connectedacl" ID="RevPiSlave.check_connectedacl"></a>
|
</dl><a NAME="RevPiSlave.check_connectedacl" ID="RevPiSlave.check_connectedacl"></a>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ begrenzt werden!
|
|||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
Global Attributes</h3>
|
Global Attributes</h3>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr><tr><td>__version__</td></tr>
|
<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>
|
</table>
|
||||||
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
<h3 style="background-color:#FFFFFF;color:#FF0000">
|
||||||
Classes</h3>
|
Classes</h3>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ picontrolserver.RevPiSlave.check_connectedacl?4()
|
|||||||
picontrolserver.RevPiSlave.newlogfile?4()
|
picontrolserver.RevPiSlave.newlogfile?4()
|
||||||
picontrolserver.RevPiSlave.run?4()
|
picontrolserver.RevPiSlave.run?4()
|
||||||
picontrolserver.RevPiSlave.stop?4()
|
picontrolserver.RevPiSlave.stop?4()
|
||||||
picontrolserver.RevPiSlave?1(ipacl, port=55234)
|
picontrolserver.RevPiSlave?1(ipacl, port=55234, bindip="")
|
||||||
picontrolserver.RevPiSlaveDev.run?4()
|
picontrolserver.RevPiSlaveDev.run?4()
|
||||||
picontrolserver.RevPiSlaveDev.stop?4()
|
picontrolserver.RevPiSlaveDev.stop?4()
|
||||||
picontrolserver.RevPiSlaveDev?1(devcon, acl)
|
picontrolserver.RevPiSlaveDev?1(devcon, acl)
|
||||||
@@ -126,6 +126,7 @@ revpipyload.__author__?9
|
|||||||
revpipyload.__copyright__?9
|
revpipyload.__copyright__?9
|
||||||
revpipyload.__license__?9
|
revpipyload.__license__?9
|
||||||
revpipyload.__version__?9
|
revpipyload.__version__?9
|
||||||
|
revpipyload.min_revpimodio?7
|
||||||
revpipyload.shared.__author__?9
|
revpipyload.shared.__author__?9
|
||||||
revpipyload.shared.__copyright__?9
|
revpipyload.shared.__copyright__?9
|
||||||
revpipyload.shared.__license__?9
|
revpipyload.shared.__license__?9
|
||||||
|
|||||||
@@ -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: 2018-09-30, 16:31:40 -->
|
<!-- Saved: 2018-12-21, 12:21:56 -->
|
||||||
<!-- 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>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.7.3</Version>
|
<Version>0.7.5</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"/>
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ class MqttServer(Thread):
|
|||||||
self._mqtt_io = join(basetopic, "io/{0}")
|
self._mqtt_io = join(basetopic, "io/{0}")
|
||||||
self._mqtt_ioget = join(basetopic, "get/#")
|
self._mqtt_ioget = join(basetopic, "get/#")
|
||||||
self._mqtt_ioset = join(basetopic, "set/#")
|
self._mqtt_ioset = join(basetopic, "set/#")
|
||||||
|
self._mqtt_ioreset = join(basetopic, "reset/#")
|
||||||
self._mqtt_pictory = join(basetopic, "pictory")
|
self._mqtt_pictory = join(basetopic, "pictory")
|
||||||
self._mqtt_senddata = join(basetopic, "get")
|
self._mqtt_senddata = join(basetopic, "get")
|
||||||
self._mqtt_sendpictory = join(basetopic, "needpictory")
|
self._mqtt_sendpictory = join(basetopic, "needpictory")
|
||||||
@@ -206,6 +207,7 @@ class MqttServer(Thread):
|
|||||||
client.subscribe(self._mqtt_sendpictory)
|
client.subscribe(self._mqtt_sendpictory)
|
||||||
if self._write_outputs:
|
if self._write_outputs:
|
||||||
client.subscribe(self._mqtt_ioset)
|
client.subscribe(self._mqtt_ioset)
|
||||||
|
client.subscribe(self._mqtt_ioreset)
|
||||||
|
|
||||||
proginit.logger.debug("leave MqttServer._on_connect()")
|
proginit.logger.debug("leave MqttServer._on_connect()")
|
||||||
|
|
||||||
@@ -242,6 +244,7 @@ class MqttServer(Thread):
|
|||||||
# Aktion und IO auswerten
|
# Aktion und IO auswerten
|
||||||
ioget = lst_topic[-2].lower() == "get"
|
ioget = lst_topic[-2].lower() == "get"
|
||||||
ioset = lst_topic[-2].lower() == "set"
|
ioset = lst_topic[-2].lower() == "set"
|
||||||
|
ioreset = lst_topic[-2].lower() == "reset"
|
||||||
ioname = lst_topic[-1]
|
ioname = lst_topic[-1]
|
||||||
coreio = ioname.find(".") != -1
|
coreio = ioname.find(".") != -1
|
||||||
|
|
||||||
@@ -282,8 +285,8 @@ class MqttServer(Thread):
|
|||||||
proginit.logger.error(
|
proginit.logger.error(
|
||||||
"can not write to inputs with MQTT"
|
"can not write to inputs with MQTT"
|
||||||
)
|
)
|
||||||
elif ioset:
|
|
||||||
|
|
||||||
|
elif ioset:
|
||||||
# Convert MQTT Payload to valid Output-Value
|
# Convert MQTT Payload to valid Output-Value
|
||||||
value = msg.payload.decode("utf8")
|
value = msg.payload.decode("utf8")
|
||||||
|
|
||||||
@@ -324,6 +327,13 @@ class MqttServer(Thread):
|
|||||||
else:
|
else:
|
||||||
io._parentdevice.writeprocimg()
|
io._parentdevice.writeprocimg()
|
||||||
|
|
||||||
|
elif ioreset:
|
||||||
|
# Counter zurücksetzen
|
||||||
|
if not isinstance(io, revpimodio2.io.IntIOCounter):
|
||||||
|
proginit.logger.warning("this io has no counter")
|
||||||
|
else:
|
||||||
|
io.reset()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Aktion nicht erkennbar
|
# Aktion nicht erkennbar
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ begrenzt werden!
|
|||||||
__author__ = "Sven Sager"
|
__author__ = "Sven Sager"
|
||||||
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
||||||
__license__ = "GPLv3"
|
__license__ = "GPLv3"
|
||||||
__version__ = "0.7.3"
|
__version__ = "0.7.5"
|
||||||
import gzip
|
import gzip
|
||||||
import logsystem
|
import logsystem
|
||||||
import picontrolserver
|
import picontrolserver
|
||||||
@@ -49,6 +49,8 @@ from time import asctime
|
|||||||
from xmlrpc.client import Binary
|
from xmlrpc.client import Binary
|
||||||
from xrpcserver import SaveXMLRPCServer
|
from xrpcserver import SaveXMLRPCServer
|
||||||
|
|
||||||
|
min_revpimodio = "2.5.0"
|
||||||
|
|
||||||
|
|
||||||
class RevPiPyLoad():
|
class RevPiPyLoad():
|
||||||
|
|
||||||
@@ -395,9 +397,10 @@ class RevPiPyLoad():
|
|||||||
self.xml_ps = None
|
self.xml_ps = None
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
"can not load revpimodio2 module. maybe its not installed "
|
"can not load revpimodio2 module. maybe its not installed "
|
||||||
"or an old version (required at least 2.2.5). if you "
|
"or an old version (required at least {0}). if you "
|
||||||
"like to use the process monitor feature, update/install "
|
"like to use revpinetio network feature, update/install "
|
||||||
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
||||||
|
"".format(min_revpimodio)
|
||||||
)
|
)
|
||||||
|
|
||||||
# XML Modus 2 Einstellungen lesen und Programm herunterladen
|
# XML Modus 2 Einstellungen lesen und Programm herunterladen
|
||||||
@@ -461,9 +464,10 @@ class RevPiPyLoad():
|
|||||||
except Exception:
|
except Exception:
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
"can not load revpimodio2 module. maybe its not installed "
|
"can not load revpimodio2 module. maybe its not installed "
|
||||||
"or an old version (required at least 2.2.5). if you "
|
"or an old version (required at least {0}). if you "
|
||||||
"like to use the mqtt feature, update/install "
|
"like to use the mqtt feature, update/install "
|
||||||
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
"revpimodio2: 'apt-get install python3-revpimodio2'"
|
||||||
|
"".format(min_revpimodio)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
|
|||||||
4
setup.py
4
setup.py
@@ -27,11 +27,11 @@ setup(
|
|||||||
|
|
||||||
license="LGPLv3",
|
license="LGPLv3",
|
||||||
name="revpipyload",
|
name="revpipyload",
|
||||||
version="0.7.3",
|
version="0.7.5",
|
||||||
|
|
||||||
scripts=["data/revpipyload"],
|
scripts=["data/revpipyload"],
|
||||||
|
|
||||||
install_requires=["revpimodio2 >= 2.2.5"],
|
install_requires=["revpimodio2 >= 2.3.1"],
|
||||||
python_requires=">=3.2",
|
python_requires=">=3.2",
|
||||||
|
|
||||||
data_files=[
|
data_files=[
|
||||||
|
|||||||
Reference in New Issue
Block a user