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 gi.overrides.GLib import Variant
|
||||||
from pydbus.generic import signal
|
from pydbus.generic import signal
|
||||||
from revpimodio2 import RevPiModIO, Cycletools
|
from revpimodio2 import RevPiModIO, Cycletools
|
||||||
|
from revpimodio2.io import IntIO
|
||||||
|
|
||||||
from .ios1_helper import REVPI_DBUS_BASE_PATH, DbusInterfaceIo
|
from .ios1_helper import REVPI_DBUS_BASE_PATH, DbusInterfaceIo
|
||||||
|
|
||||||
@@ -87,7 +88,10 @@ class InterfaceInpBool(DbusInterfaceIo):
|
|||||||
"""
|
"""
|
||||||
<node>
|
<node>
|
||||||
<interface name="com.revolutionpi.ios1.InpBool">
|
<interface name="com.revolutionpi.ios1.InpBool">
|
||||||
|
<property name="address" type="i" access="read"/>
|
||||||
<property name="bmk" type="s" 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="name" type="s" access="read"/>
|
||||||
<property name="value" type="b" access="read"/>
|
<property name="value" type="b" access="read"/>
|
||||||
</interface>
|
</interface>
|
||||||
@@ -96,14 +100,6 @@ class InterfaceInpBool(DbusInterfaceIo):
|
|||||||
|
|
||||||
interface_name = "com.revolutionpi.ios1.InpBool"
|
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
|
@property
|
||||||
def value(self) -> bool:
|
def value(self) -> bool:
|
||||||
return self.io.value
|
return self.io.value
|
||||||
@@ -113,7 +109,10 @@ class InterfaceOutBool(InterfaceInpBool):
|
|||||||
"""
|
"""
|
||||||
<node>
|
<node>
|
||||||
<interface name="com.revolutionpi.ios1.OutBool">
|
<interface name="com.revolutionpi.ios1.OutBool">
|
||||||
|
<property name="address" type="i" access="read"/>
|
||||||
<property name="bmk" type="s" 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="name" type="s" access="read"/>
|
||||||
<property name="value" type="b" access="readwrite"/>
|
<property name="value" type="b" access="readwrite"/>
|
||||||
</interface>
|
</interface>
|
||||||
@@ -127,7 +126,7 @@ class InterfaceOutBool(InterfaceInpBool):
|
|||||||
return super().value
|
return super().value
|
||||||
|
|
||||||
@value.setter
|
@value.setter
|
||||||
def value(self, value: bool):
|
def value(self, value: bool) -> None:
|
||||||
self.io.value = value
|
self.io.value = value
|
||||||
self.io._parentdevice._modio.writeprocimg()
|
self.io._parentdevice._modio.writeprocimg()
|
||||||
|
|
||||||
@@ -136,25 +135,39 @@ class InterfaceInpInt(DbusInterfaceIo):
|
|||||||
"""
|
"""
|
||||||
<node>
|
<node>
|
||||||
<interface name="com.revolutionpi.ios1.InpInt">
|
<interface name="com.revolutionpi.ios1.InpInt">
|
||||||
|
<property name="address" type="i" access="read"/>
|
||||||
<property name="bmk" type="s" 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="name" type="s" access="read"/>
|
||||||
|
<property name="signed" type="b" access="readwrite"/>
|
||||||
<property name="value" type="i" access="read"/>
|
<property name="value" type="i" access="read"/>
|
||||||
</interface>
|
</interface>
|
||||||
</node>
|
</node>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
interface_name = "com.revolutionpi.ios1.InpInt"
|
interface_name = "com.revolutionpi.ios1.InpInt"
|
||||||
|
io = IntIO # type: IntIO
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def bmk(self) -> str:
|
def byteorder(self) -> str:
|
||||||
return self.io.bmk
|
return self.io.byteorder
|
||||||
|
|
||||||
|
@byteorder.setter
|
||||||
|
def byteorder(self, value: str) -> None:
|
||||||
|
self.io.byteorder = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self) -> str:
|
def signed(self) -> bool:
|
||||||
return self.io.name
|
return self.io.signed
|
||||||
|
|
||||||
|
@signed.setter
|
||||||
|
def signed(self, value: bool) -> None:
|
||||||
|
self.io.signed = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def value(self) -> bool:
|
def value(self) -> int:
|
||||||
return self.io.value
|
return self.io.value
|
||||||
|
|
||||||
|
|
||||||
@@ -162,8 +175,13 @@ class InterfaceOutInt(InterfaceInpInt):
|
|||||||
"""
|
"""
|
||||||
<node>
|
<node>
|
||||||
<interface name="com.revolutionpi.ios1.OutInt">
|
<interface name="com.revolutionpi.ios1.OutInt">
|
||||||
|
<property name="address" type="i" access="read"/>
|
||||||
<property name="bmk" type="s" 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="name" type="s" access="read"/>
|
||||||
|
<property name="signed" type="b" access="readwrite"/>
|
||||||
<property name="value" type="i" access="readwrite"/>
|
<property name="value" type="i" access="readwrite"/>
|
||||||
</interface>
|
</interface>
|
||||||
</node>
|
</node>
|
||||||
@@ -172,10 +190,10 @@ class InterfaceOutInt(InterfaceInpInt):
|
|||||||
interface_name = "com.revolutionpi.ios1.OutInt"
|
interface_name = "com.revolutionpi.ios1.OutInt"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def value(self) -> bool:
|
def value(self) -> int:
|
||||||
return super().value
|
return super().value
|
||||||
|
|
||||||
@value.setter
|
@value.setter
|
||||||
def value(self, value: bool):
|
def value(self, value: int):
|
||||||
self.io.value = value
|
self.io.value = value
|
||||||
self.io._parentdevice._modio.writeprocimg()
|
self.io._parentdevice._modio.writeprocimg()
|
||||||
|
|||||||
@@ -35,3 +35,23 @@ class DbusInterfaceIo:
|
|||||||
{"value": int(self.io.value)},
|
{"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