From 0716169a03bc9babef9a3cd412a789bad36f3c65 Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Mon, 2 Feb 2026 17:28:24 +0100 Subject: [PATCH] feat(io): Add `min_value` and `max_value` properties to IOs Added `min_value` and `max_value` properties to integer IOs for determining value ranges. Updated D-Bus interface with corresponding properties. Signed-off-by: Sven Sager --- src/revpi_middleware/ios1/interface_ios.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/revpi_middleware/ios1/interface_ios.py b/src/revpi_middleware/ios1/interface_ios.py index a02d2ab..8711ec5 100644 --- a/src/revpi_middleware/ios1/interface_ios.py +++ b/src/revpi_middleware/ios1/interface_ios.py @@ -140,6 +140,8 @@ class InterfaceInpInt(DbusInterfaceIo): + + @@ -158,6 +160,19 @@ class InterfaceInpInt(DbusInterfaceIo): def byteorder(self, value: str) -> None: self.io.byteorder = value + @property + def min_value(self) -> int: + if self.io.signed: + return -(1 << (self.io.length * 8 - 1)) + return 0 + + @property + def max_value(self) -> int: + bit_length = self.io.length * 8 + if self.io.signed: + return (1 << (bit_length - 1)) - 1 + return (1 << bit_length) - 1 + @property def signed(self) -> bool: return self.io.signed @@ -180,6 +195,8 @@ class InterfaceOutInt(InterfaceInpInt): + +