specify interface_classes property explicitly on SECoP base classes

The mechanism to calculate the interface_classes automatically
gets more complicated whith the introduction if acquisition
classes. Instead of making the mechanism more complex its simpler
to give them explictly on the classes which correspond to the
predefined SECoP interface classes.

Change-Id: I9be7d9e54e3603b979ca2a823ec47b2075937ece
This commit is contained in:
2025-10-29 14:32:33 +01:00
parent 174da915d2
commit 84ee2dd508
2 changed files with 6 additions and 14 deletions

View File

@@ -36,6 +36,7 @@ from .modulebase import Module
class Readable(Module):
"""basic readable module"""
interface_classes = ['Readable']
# pylint: disable=invalid-name
Status = Enum('Status',
IDLE=StatusType.IDLE,
@@ -55,6 +56,7 @@ class Readable(Module):
class Writable(Readable):
"""basic writable module"""
interface_classes = ['Writable']
target = Parameter('target value of the module',
default=0, readonly=False, datatype=FloatRange(unit='$'))
@@ -74,7 +76,7 @@ class Writable(Readable):
class Drivable(Writable):
"""basic drivable module"""
interface_classes = ['Drivable']
status = Parameter(datatype=StatusType(Readable, 'BUSY')) # extend Readable.status
def isBusy(self, status=None):
@@ -98,6 +100,7 @@ class Drivable(Writable):
class Communicator(HasComlog, Module):
"""basic abstract communication module"""
interface_classes = ['Communicator']
@Command(StringType(), result=StringType())
def communicate(self, command):
@@ -109,9 +112,6 @@ class Communicator(HasComlog, Module):
raise NotImplementedError()
SECoP_BASE_CLASSES = {Readable, Writable, Drivable, Communicator}
class Attached(Property):
"""a special property, defining an attached module