added 'export_as' for parameters and commands
the export argument of an accessible allows now to specify an other external name than the attribute used internally. export=True (default, use defined name, or prefix with '_' when name not in predefined list) export=False (do not export) export=<any string> (special cases only) Change-Id: I6c6669cd502d9d6fd3aa40091673e5554fd961bd Reviewed-on: https://forge.frm2.tum.de/review/19664 Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
@ -29,6 +29,7 @@ from secop.lib import unset_value
|
||||
|
||||
EVENT_ONLY_ON_CHANGED_VALUES = False
|
||||
|
||||
|
||||
class CountedObj(object):
|
||||
ctr = [0]
|
||||
def __init__(self):
|
||||
@ -36,6 +37,7 @@ class CountedObj(object):
|
||||
cl[0] += 1
|
||||
self.ctr = cl[0]
|
||||
|
||||
|
||||
class Accessible(CountedObj):
|
||||
'''abstract base class for Parameter and Command'''
|
||||
|
||||
@ -73,6 +75,7 @@ class Accessible(CountedObj):
|
||||
raise ProgrammingError('can not overrride property name %s' % name)
|
||||
cls.valid_properties[name] = external
|
||||
|
||||
|
||||
class Parameter(Accessible):
|
||||
"""storage for Parameter settings + value + qualifiers
|
||||
|
||||
@ -219,3 +222,23 @@ class Command(Accessible):
|
||||
def for_export(self):
|
||||
# used for serialisation only
|
||||
return self.exported_properties()
|
||||
|
||||
# list of predefined accessibles with their type
|
||||
PREDEFINED_ACCESSIBLES = dict(
|
||||
value = Parameter,
|
||||
status = Parameter,
|
||||
target = Parameter,
|
||||
pollinterval = Parameter,
|
||||
ramp = Parameter,
|
||||
user_ramp = Parameter,
|
||||
setpoint = Parameter,
|
||||
time_to_target = Parameter,
|
||||
unit = Parameter, # reserved name
|
||||
loglevel = Parameter, # reserved name
|
||||
mode = Parameter, # reserved name
|
||||
stop = Command,
|
||||
reset = Command,
|
||||
go = Command,
|
||||
abort = Command,
|
||||
shutdown = Command,
|
||||
)
|
||||
|
Reference in New Issue
Block a user