Counter Reset in MQTT eingebaut basename/reset/ioname - payload egal

This commit is contained in:
2019-01-07 20:08:18 +01:00
parent 637348111b
commit 64955e7ef0
7 changed files with 31 additions and 13 deletions

View File

@@ -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">

View File

@@ -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>

View File

@@ -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

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: 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"/>

View File

@@ -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(

View File

@@ -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:

View File

@@ -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=[