feat(io): Add new IO properties and corresponding methods
Added `address`, `byteorder`, and `length` properties to D-Bus interfaces for IOs. Implemented corresponding property methods in `ios1_helper.py`. Signed-off-by: Sven Sager <s.sager@kunbus.com>
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
from gi.overrides.GLib import Variant
|
||||
from pydbus.generic import signal
|
||||
from revpimodio2 import RevPiModIO, Cycletools
|
||||
from revpimodio2.io import IntIO
|
||||
|
||||
from .ios1_helper import REVPI_DBUS_BASE_PATH, DbusInterfaceIo
|
||||
|
||||
@@ -87,7 +88,10 @@ class InterfaceInpBool(DbusInterfaceIo):
|
||||
"""
|
||||
<node>
|
||||
<interface name="com.revolutionpi.ios1.InpBool">
|
||||
<property name="address" type="i" access="read"/>
|
||||
<property name="bmk" type="s" access="read"/>
|
||||
<property name="defaultvalue" type="b" access="read"/>
|
||||
<property name="length" type="i" access="read"/>
|
||||
<property name="name" type="s" access="read"/>
|
||||
<property name="value" type="b" access="read"/>
|
||||
</interface>
|
||||
@@ -96,14 +100,6 @@ class InterfaceInpBool(DbusInterfaceIo):
|
||||
|
||||
interface_name = "com.revolutionpi.ios1.InpBool"
|
||||
|
||||
@property
|
||||
def bmk(self) -> str:
|
||||
return self.io.bmk
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self.io.name
|
||||
|
||||
@property
|
||||
def value(self) -> bool:
|
||||
return self.io.value
|
||||
@@ -113,7 +109,10 @@ class InterfaceOutBool(InterfaceInpBool):
|
||||
"""
|
||||
<node>
|
||||
<interface name="com.revolutionpi.ios1.OutBool">
|
||||
<property name="address" type="i" access="read"/>
|
||||
<property name="bmk" type="s" access="read"/>
|
||||
<property name="defaultvalue" type="b" access="read"/>
|
||||
<property name="length" type="i" access="read"/>
|
||||
<property name="name" type="s" access="read"/>
|
||||
<property name="value" type="b" access="readwrite"/>
|
||||
</interface>
|
||||
@@ -127,7 +126,7 @@ class InterfaceOutBool(InterfaceInpBool):
|
||||
return super().value
|
||||
|
||||
@value.setter
|
||||
def value(self, value: bool):
|
||||
def value(self, value: bool) -> None:
|
||||
self.io.value = value
|
||||
self.io._parentdevice._modio.writeprocimg()
|
||||
|
||||
@@ -136,25 +135,39 @@ class InterfaceInpInt(DbusInterfaceIo):
|
||||
"""
|
||||
<node>
|
||||
<interface name="com.revolutionpi.ios1.InpInt">
|
||||
<property name="address" type="i" access="read"/>
|
||||
<property name="bmk" type="s" access="read"/>
|
||||
<property name="byteorder" type="s" access="readwrite"/>
|
||||
<property name="defaultvalue" type="i" access="read"/>
|
||||
<property name="length" type="i" access="read"/>
|
||||
<property name="name" type="s" access="read"/>
|
||||
<property name="signed" type="b" access="readwrite"/>
|
||||
<property name="value" type="i" access="read"/>
|
||||
</interface>
|
||||
</node>
|
||||
"""
|
||||
|
||||
interface_name = "com.revolutionpi.ios1.InpInt"
|
||||
io = IntIO # type: IntIO
|
||||
|
||||
@property
|
||||
def bmk(self) -> str:
|
||||
return self.io.bmk
|
||||
def byteorder(self) -> str:
|
||||
return self.io.byteorder
|
||||
|
||||
@byteorder.setter
|
||||
def byteorder(self, value: str) -> None:
|
||||
self.io.byteorder = value
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self.io.name
|
||||
def signed(self) -> bool:
|
||||
return self.io.signed
|
||||
|
||||
@signed.setter
|
||||
def signed(self, value: bool) -> None:
|
||||
self.io.signed = value
|
||||
|
||||
@property
|
||||
def value(self) -> bool:
|
||||
def value(self) -> int:
|
||||
return self.io.value
|
||||
|
||||
|
||||
@@ -162,8 +175,13 @@ class InterfaceOutInt(InterfaceInpInt):
|
||||
"""
|
||||
<node>
|
||||
<interface name="com.revolutionpi.ios1.OutInt">
|
||||
<property name="address" type="i" access="read"/>
|
||||
<property name="bmk" type="s" access="read"/>
|
||||
<property name="byteorder" type="s" access="readwrite"/>
|
||||
<property name="defaultvalue" type="i" access="read"/>
|
||||
<property name="length" type="i" access="read"/>
|
||||
<property name="name" type="s" access="read"/>
|
||||
<property name="signed" type="b" access="readwrite"/>
|
||||
<property name="value" type="i" access="readwrite"/>
|
||||
</interface>
|
||||
</node>
|
||||
@@ -172,10 +190,10 @@ class InterfaceOutInt(InterfaceInpInt):
|
||||
interface_name = "com.revolutionpi.ios1.OutInt"
|
||||
|
||||
@property
|
||||
def value(self) -> bool:
|
||||
def value(self) -> int:
|
||||
return super().value
|
||||
|
||||
@value.setter
|
||||
def value(self, value: bool):
|
||||
def value(self, value: int):
|
||||
self.io.value = value
|
||||
self.io._parentdevice._modio.writeprocimg()
|
||||
|
||||
@@ -35,3 +35,23 @@ class DbusInterfaceIo:
|
||||
{"value": int(self.io.value)},
|
||||
[],
|
||||
)
|
||||
|
||||
@property
|
||||
def address(self):
|
||||
return self.io.address
|
||||
|
||||
@property
|
||||
def bmk(self) -> str:
|
||||
return self.io.bmk
|
||||
|
||||
@property
|
||||
def defaultvalue(self):
|
||||
return self.io.defaultvalue
|
||||
|
||||
@property
|
||||
def length(self):
|
||||
return self.io.length
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self.io.name
|
||||
|
||||
Reference in New Issue
Block a user