mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 13:53:53 +01:00
Flat: Switch and Relais as real io of core class, added MEMs to pictory.py
This commit is contained in:
@@ -16,7 +16,7 @@ __all__ = [
|
||||
"RevPiModIO", "RevPiModIODriver", "RevPiModIOSelected", "run_plc",
|
||||
"RevPiNetIO", "RevPiNetIODriver", "RevPiNetIOSelected",
|
||||
"Cycletools", "EventCallback",
|
||||
"AIO", "COMPACT", "DI", "DO", "DIO",
|
||||
"AIO", "COMPACT", "DI", "DO", "DIO", "FLAT",
|
||||
]
|
||||
__author__ = "Sven Sager <akira@revpimodio.org>"
|
||||
__copyright__ = "Copyright (C) 2020 Sven Sager"
|
||||
@@ -96,7 +96,7 @@ def consttostr(value) -> str:
|
||||
|
||||
|
||||
# Benötigte Klassen importieren
|
||||
from .pictory import AIO, COMPACT, DI, DO, DIO
|
||||
from .pictory import AIO, COMPACT, DI, DO, DIO, FLAT
|
||||
from .helper import Cycletools, EventCallback
|
||||
from .modio import RevPiModIO, RevPiModIODriver, RevPiModIOSelected, run_plc
|
||||
from .netio import RevPiNetIO, RevPiNetIODriver, RevPiNetIOSelected
|
||||
|
||||
@@ -1158,16 +1158,17 @@ class Flat(Base):
|
||||
"""
|
||||
|
||||
__slots__ = "_slc_temperature", "_slc_frequency", "_slc_led", \
|
||||
"_slc_switch", "_slc_dout", \
|
||||
"a1green", "a1red", "a2green", "a2red", \
|
||||
"a3green", "a3red", "a4green", "a4red", \
|
||||
"a5green", "a5red", "wd"
|
||||
"a5green", "a5red", "relais", "switch", "wd"
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
"""Verhindert Ueberschreibung der LEDs."""
|
||||
if hasattr(self, key) and key in (
|
||||
"a1green", "a1red", "a2green", "a2red",
|
||||
"a3green", "a3red", "a4green", "a4red",
|
||||
"a5green", "a5red", "wd"):
|
||||
"a5green", "a5red", "relais", "switch", "wd"):
|
||||
raise AttributeError(
|
||||
"direct assignment is not supported - use .value Attribute"
|
||||
)
|
||||
@@ -1178,9 +1179,11 @@ class Flat(Base):
|
||||
"""Core-Klasse vorbereiten."""
|
||||
|
||||
# Statische IO Verknüpfungen des Compacts
|
||||
self._slc_led = slice(6, 8)
|
||||
self._slc_led = slice(7, 9)
|
||||
self._slc_temperature = slice(4, 5)
|
||||
self._slc_frequency = slice(5, 6)
|
||||
self._slc_switch = slice(6, 7)
|
||||
self._slc_dout = slice(11, 12)
|
||||
|
||||
# Exportflags prüfen (Byte oder Bit)
|
||||
lst_led = self._modio.io[self._slc_devoff][self._slc_led.start]
|
||||
@@ -1252,7 +1255,21 @@ class Flat(Base):
|
||||
exp_a5red, None, "LED_A5_RED", "9"
|
||||
], OUT, "little", False)
|
||||
|
||||
# todo: Add internal switch and relay, like Connect
|
||||
# Real IO for switch
|
||||
lst_io = self._modio.io[self._slc_devoff][self._slc_switch.start]
|
||||
exp_io = lst_io[0].export
|
||||
self.switch = IOBase(self, [
|
||||
"flat.switch", 0, 1, self._slc_switch.start,
|
||||
exp_io, None, "Flat_Switch", "0"
|
||||
], INP, "little", False)
|
||||
|
||||
# Real IO for relais
|
||||
lst_io = self._modio.io[self._slc_devoff][self._slc_dout.start]
|
||||
exp_io = lst_io[0].export
|
||||
self.relais = IOBase(self, [
|
||||
"flat.relais", 0, 1, self._slc_dout.start,
|
||||
exp_io, None, "Flat_Relais", "0"
|
||||
], OUT, "little", False)
|
||||
|
||||
# Software watchdog einrichten
|
||||
self.wd = IOBase(self, [
|
||||
|
||||
@@ -126,3 +126,9 @@ class COMPACT:
|
||||
AIN_MODE_0_10V = 1 # 0 - 10V
|
||||
AIN_MODE_PT100 = 3 # PT100
|
||||
AIN_MODE_PT1000 = 7 # PT1000
|
||||
|
||||
|
||||
class FLAT:
|
||||
"""Memory value mappings for RevPi Flat 1.0 (RevPiFlat_20200921_1_0.rap)."""
|
||||
IN_RANGE_0_10V = 0
|
||||
IN_RANGE_4_20MA = 1
|
||||
|
||||
Reference in New Issue
Block a user