mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +01:00
Alle revpimodio verwenden nun direct_write
This commit is contained in:
@@ -74,7 +74,6 @@ class MqttServer(Thread):
|
|||||||
self._reloadmodio = False
|
self._reloadmodio = False
|
||||||
self._replace_ios = replace_ios
|
self._replace_ios = replace_ios
|
||||||
self._rpi = None
|
self._rpi = None
|
||||||
self._rpi_write = None
|
|
||||||
self._send_events = send_events
|
self._send_events = send_events
|
||||||
self._sendinterval = sendinterval
|
self._sendinterval = sendinterval
|
||||||
self._write_outputs = write_outputs
|
self._write_outputs = write_outputs
|
||||||
@@ -130,25 +129,17 @@ class MqttServer(Thread):
|
|||||||
# RevPiModIO-Modul Instantiieren
|
# RevPiModIO-Modul Instantiieren
|
||||||
if self._rpi is not None:
|
if self._rpi is not None:
|
||||||
self._rpi.cleanup()
|
self._rpi.cleanup()
|
||||||
if self._rpi_write is not None:
|
|
||||||
self._rpi_write.cleanup()
|
|
||||||
|
|
||||||
proginit.logger.debug("create revpimodio2 object for MQTT")
|
proginit.logger.debug("create revpimodio2 object for MQTT")
|
||||||
try:
|
try:
|
||||||
# Lesend und Eventüberwachung
|
# Vollzugriff und Eventüberwachung
|
||||||
self._rpi = revpimodio2.RevPiModIO(
|
self._rpi = revpimodio2.RevPiModIO(
|
||||||
autorefresh=self._send_events,
|
autorefresh=self._send_events,
|
||||||
monitoring=True,
|
monitoring=not self._write_outputs,
|
||||||
configrsc=proginit.pargs.configrsc,
|
configrsc=proginit.pargs.configrsc,
|
||||||
procimg=proginit.pargs.procimg,
|
procimg=proginit.pargs.procimg,
|
||||||
replace_io_file=self._replace_ios
|
replace_io_file=self._replace_ios,
|
||||||
)
|
direct_output=True,
|
||||||
# Schreibenen Zugriff
|
|
||||||
if self._write_outputs:
|
|
||||||
self._rpi_write = revpimodio2.RevPiModIO(
|
|
||||||
configrsc=proginit.pargs.configrsc,
|
|
||||||
procimg=proginit.pargs.procimg,
|
|
||||||
replace_io_file=self._replace_ios
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if self._replace_ios:
|
if self._replace_ios:
|
||||||
@@ -159,15 +150,10 @@ class MqttServer(Thread):
|
|||||||
# Lesend und Eventüberwachung
|
# Lesend und Eventüberwachung
|
||||||
self._rpi = revpimodio2.RevPiModIO(
|
self._rpi = revpimodio2.RevPiModIO(
|
||||||
autorefresh=self._send_events,
|
autorefresh=self._send_events,
|
||||||
monitoring=True,
|
monitoring=not self._write_outputs,
|
||||||
configrsc=proginit.pargs.configrsc,
|
configrsc=proginit.pargs.configrsc,
|
||||||
procimg=proginit.pargs.procimg
|
procimg=proginit.pargs.procimg,
|
||||||
)
|
direct_output=True,
|
||||||
# Schreibenen Zugriff
|
|
||||||
if self._write_outputs:
|
|
||||||
self._rpi_write = revpimodio2.RevPiModIO(
|
|
||||||
configrsc=proginit.pargs.configrsc,
|
|
||||||
procimg=proginit.pargs.procimg
|
|
||||||
)
|
)
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
"replace_ios_file not loadable for MQTT - using "
|
"replace_ios_file not loadable for MQTT - using "
|
||||||
@@ -176,7 +162,6 @@ class MqttServer(Thread):
|
|||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
self._rpi = None
|
self._rpi = None
|
||||||
self._rpi_write = None
|
|
||||||
proginit.logger.error(
|
proginit.logger.error(
|
||||||
"piCtory configuration not loadable for MQTT"
|
"piCtory configuration not loadable for MQTT"
|
||||||
)
|
)
|
||||||
@@ -280,11 +265,11 @@ class MqttServer(Thread):
|
|||||||
# IO holen
|
# IO holen
|
||||||
if coreio:
|
if coreio:
|
||||||
coreio = ioname.split(".")[-1]
|
coreio = ioname.split(".")[-1]
|
||||||
io = getattr(self._rpi_write.core, coreio)
|
io = getattr(self._rpi.core, coreio)
|
||||||
if not isinstance(io, revpimodio2.io.IOBase):
|
if not isinstance(io, revpimodio2.io.IOBase):
|
||||||
raise RuntimeError()
|
raise RuntimeError()
|
||||||
else:
|
else:
|
||||||
io = self._rpi_write.io[ioname]
|
io = self._rpi.io[ioname]
|
||||||
io_needbytes = type(io.value) == bytes
|
io_needbytes = type(io.value) == bytes
|
||||||
except Exception:
|
except Exception:
|
||||||
proginit.logger.error(
|
proginit.logger.error(
|
||||||
@@ -300,10 +285,8 @@ class MqttServer(Thread):
|
|||||||
)
|
)
|
||||||
|
|
||||||
elif ioget:
|
elif ioget:
|
||||||
# Daten je nach IO Type aus Prozessabbild laden
|
# Werte laden, wenn nicht autorefresh
|
||||||
if io.type == revpimodio2.OUT:
|
if not self._send_events:
|
||||||
io._parentdevice.syncoutputs()
|
|
||||||
else:
|
|
||||||
io._parentdevice.readprocimg()
|
io._parentdevice.readprocimg()
|
||||||
|
|
||||||
# Publish Wert von IO
|
# Publish Wert von IO
|
||||||
@@ -344,7 +327,6 @@ class MqttServer(Thread):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Write Value to RevPi
|
# Write Value to RevPi
|
||||||
io._parentdevice.syncoutputs()
|
|
||||||
try:
|
try:
|
||||||
io.value = value
|
io.value = value
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -352,8 +334,6 @@ class MqttServer(Thread):
|
|||||||
"could not write '{0}' to Output '{1}'"
|
"could not write '{0}' to Output '{1}'"
|
||||||
"".format(value, ioname)
|
"".format(value, ioname)
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
io._parentdevice.writeprocimg()
|
|
||||||
|
|
||||||
elif ioreset:
|
elif ioreset:
|
||||||
# Counter zurücksetzen
|
# Counter zurücksetzen
|
||||||
|
|||||||
@@ -99,7 +99,8 @@ class ProcimgServer():
|
|||||||
self.rpi = revpimodio2.RevPiModIO(
|
self.rpi = revpimodio2.RevPiModIO(
|
||||||
configrsc=proginit.pargs.configrsc,
|
configrsc=proginit.pargs.configrsc,
|
||||||
procimg=proginit.pargs.procimg,
|
procimg=proginit.pargs.procimg,
|
||||||
replace_io_file=self.replace_ios
|
replace_io_file=self.replace_ios,
|
||||||
|
direct_output=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.replace_ios:
|
if self.replace_ios:
|
||||||
@@ -110,6 +111,7 @@ class ProcimgServer():
|
|||||||
self.rpi = revpimodio2.RevPiModIO(
|
self.rpi = revpimodio2.RevPiModIO(
|
||||||
configrsc=proginit.pargs.configrsc,
|
configrsc=proginit.pargs.configrsc,
|
||||||
procimg=proginit.pargs.procimg,
|
procimg=proginit.pargs.procimg,
|
||||||
|
direct_output=True,
|
||||||
)
|
)
|
||||||
proginit.logger.warning(
|
proginit.logger.warning(
|
||||||
"replace_ios_file not loadable for ProcimgServer - using "
|
"replace_ios_file not loadable for ProcimgServer - using "
|
||||||
@@ -122,9 +124,6 @@ class ProcimgServer():
|
|||||||
)
|
)
|
||||||
return e
|
return e
|
||||||
|
|
||||||
# NOTE: Warum das?
|
|
||||||
self.rpi.syncoutputs(device=0)
|
|
||||||
|
|
||||||
proginit.logger.debug("created revpimodio2 object")
|
proginit.logger.debug("created revpimodio2 object")
|
||||||
|
|
||||||
def setvalue(self, device, io, value):
|
def setvalue(self, device, io, value):
|
||||||
@@ -140,8 +139,6 @@ class ProcimgServer():
|
|||||||
if type(value) == Binary:
|
if type(value) == Binary:
|
||||||
value = value.data
|
value = value.data
|
||||||
|
|
||||||
self.rpi.syncoutputs(device=device)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Neuen Wert übernehmen
|
# Neuen Wert übernehmen
|
||||||
if type(value) == bytes or type(value) == bool:
|
if type(value) == bytes or type(value) == bool:
|
||||||
@@ -156,13 +153,12 @@ class ProcimgServer():
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
return [device, io, False, str(e)]
|
return [device, io, False, str(e)]
|
||||||
|
|
||||||
self.rpi.writeprocimg(device=device)
|
|
||||||
return [device, io, True, ""]
|
return [device, io, True, ""]
|
||||||
|
|
||||||
def values(self):
|
def values(self):
|
||||||
"""Liefert Prozessabbild an Client.
|
"""Liefert Prozessabbild an Client.
|
||||||
@return Binary() bytes or None"""
|
@return Binary() bytes or None"""
|
||||||
if self.rpi.readprocimg() and self.rpi.syncoutputs():
|
if self.rpi.readprocimg():
|
||||||
bytebuff = bytearray()
|
bytebuff = bytearray()
|
||||||
for dev in self.rpi.device:
|
for dev in self.rpi.device:
|
||||||
bytebuff += bytes(dev)
|
bytebuff += bytes(dev)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ 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.3.3"
|
min_revpimodio = "2.4.0"
|
||||||
|
|
||||||
|
|
||||||
class RevPiPyLoad():
|
class RevPiPyLoad():
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -31,7 +31,7 @@ setup(
|
|||||||
|
|
||||||
scripts=["data/revpipyload"],
|
scripts=["data/revpipyload"],
|
||||||
|
|
||||||
install_requires=["revpimodio2 >= 2.3.3"],
|
install_requires=["revpimodio2 >= 2.4.0"],
|
||||||
python_requires=">=3.2",
|
python_requires=">=3.2",
|
||||||
|
|
||||||
data_files=[
|
data_files=[
|
||||||
|
|||||||
Reference in New Issue
Block a user