rework property handling
+ DataType validators are shifted to __call__ + as_json is moved to export_datatape() + new HasProperties Base Mixin for Modules/DataTypes + accessibles can be accessed via iterator of a module + properties are properly 'derived' and checked, are set with .setPropertyValue remember: parameters only have properties, so use getPropertyValue() Change-Id: Iae0273f971aacb00fe6bf05e6a4d24a6d1be881a Reviewed-on: https://forge.frm2.tum.de/review/20635 Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
@ -26,17 +26,20 @@ import random
|
||||
import time
|
||||
from math import atan
|
||||
|
||||
from secop.datatypes import EnumType, FloatRange, TupleOf
|
||||
from secop.datatypes import EnumType, FloatRange, TupleOf, StringType, BoolType
|
||||
from secop.lib import clamp, mkthread
|
||||
from secop.modules import Command, Drivable, Override, Parameter
|
||||
from secop.modules import Drivable, Override, Parameter
|
||||
|
||||
# test custom property (value.test can be changed in config file)
|
||||
Parameter.add_property('test')
|
||||
# in the rare case of namespace conflicts, the external name could be completely different
|
||||
Command.add_property(special='_peculiar')
|
||||
from secop.properties import Property
|
||||
|
||||
Parameter.properties['test'] = Property(StringType(), default='', export=True)
|
||||
|
||||
|
||||
class CryoBase(Drivable):
|
||||
pass
|
||||
properties = {
|
||||
'is_cryo': Property(BoolType(), default=True, export=True),
|
||||
}
|
||||
|
||||
|
||||
class Cryostat(CryoBase):
|
||||
|
Reference in New Issue
Block a user