implement configurable module-properties

+ make parameter-properties configurable
+ better derivation of automatic properties
+ implement 'group' properties (how to display in gui???
+ clean up descriptive data by omitting unset and live properties

Change-Id: Icd2b6e91e09037e9d4a8d6ad88483f8509a2cf5f
This commit is contained in:
Enrico Faulhaber
2017-01-26 17:05:25 +01:00
parent 6ec30e38e8
commit 8123d21897
4 changed files with 105 additions and 73 deletions

View File

@ -178,14 +178,14 @@ class Dispatcher(object):
# return a copy of our list
return self._export[:]
def list_module_params(self, modulename):
def list_module_params(self, modulename, only_static=False):
self.log.debug('list_module_params(%r)' % modulename)
if modulename in self._export:
# omit export=False params!
res = {}
for paramname, param in self.get_module(modulename).PARAMS.items():
if param.export:
res[paramname] = param.as_dict()
res[paramname] = param.as_dict(only_static)
self.log.debug('list params for module %s -> %r' %
(modulename, res))
return res
@ -211,16 +211,14 @@ class Dispatcher(object):
module = self.get_module(modulename)
# some of these need rework !
dd = {
'class': module.__class__.__name__,
'bases': [b.__name__ for b in module.__class__.__bases__],
'parameters': self.list_module_params(modulename),
'parameters': self.list_module_params(modulename, only_static=True),
'commands': self.list_module_cmds(modulename),
'interfaceclass': 'Readable',
'properties' : module.PROPERTIES,
}
result['modules'][modulename] = dd
result['equipment_id'] = self.equipment_id
result['firmware'] = 'The SECoP playground'
result['version'] = "2016.12"
result['version'] = "2017.01"
# XXX: what else?
return result