ExtronLib-CDS/system/MESet.py

80 lines
2.6 KiB
Python
Raw Normal View History

from typing import Union
class MESet():
""" The Mutually Exclusive set allows for the grouping of objects to allow easy selection of related items. For instance, a group of buttons could be grouped so that selecting one button deselects the others in the group.
Compatible extronlib classes:
- IOInterface (and any children):
- extronlib.interface.RelayInterface
- extronlib.interface.FlexIOInterface (Output only)
- extronlib.interface.DigitalIOInterface (Output only)
- extronlib.interface.SWPowerInterface
- Button:
Arguments:
- Objects (list) - list of compatible objects
Note:
- Each object must have a method SetState.
- SetState must take an integer argument.
- Any object with a SetState function that takes an integer object is compatible with this class.
- A programmer can create their own class and use it with MESet.
Parameters:
- Objects - Returns (list) - the list of objects to track
"""
Objects: list[object] = []
def __init__(self, Objects: list[object]) -> none:
""" MESet class constructor.
Arguments:
- Objects (list) - list of compatible objects
"""
...
def Append(self, obj: object) -> None:
""" Add an object to the list
Arguments:
- obj (any) - any compatible object to add
"""
...
def GetCurrent(self) -> object:
""" Gets the currently selected object in the group.
Returns
- the currently selected object in the group.
"""
...
def Remove(self, obj: Union[int, object]) -> None:
""" Remove an object from the list
Arguments:
- obj (int or compatible object) - the object or the index of the object
"""
...
def SetCurrent(self, obj: Union[int, object]) -> None:
""" Selects the current object in the group
Arguments:
- obj (int or compatible object) - the object or the index of the object
Note: When None is passed in, all objects will be deselected.
"""
...
def SetStates(self, obj: Union[int, object], offState: int, onState: int) -> None:
""" Selects the off and on states for the object (i.e. use states other than the default 0 and 1, respectively).
Arguments:
- obj (int or object) - the object or the index of the object
- offState (int) - the ID of the deselected state
- onState (int) - the ID of the selected state
"""
...