allow Override also for Commands
modified cryo.py for using Override correctly, here the description of the stop command is overridden Change-Id: I060a2802226239f3af3dc1e573b7148d863b938c Reviewed-on: https://forge.frm2.tum.de/review/19607 Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
parent
8c85a775a1
commit
0a71c97f69
@ -136,9 +136,9 @@ class Override(CountedObj):
|
||||
return '%s_%d(%s)' % (self.__class__.__name__, self.ctr, ', '.join(
|
||||
['%s=%r' % (k, v) for k, v in sorted(self.kwds.items())]))
|
||||
|
||||
def apply(self, paramobj):
|
||||
if isinstance(paramobj, Parameter):
|
||||
props = paramobj.__dict__.copy()
|
||||
def apply(self, obj):
|
||||
if isinstance(obj, CountedObj):
|
||||
props = obj.__dict__.copy()
|
||||
for k, v in self.kwds.items():
|
||||
if k in props:
|
||||
props[k] = v
|
||||
@ -147,11 +147,11 @@ class Override(CountedObj):
|
||||
"Can not apply Override(%s=%r) to %r: non-existing property!" %
|
||||
(k, v, props))
|
||||
props['ctr'] = self.ctr
|
||||
return Parameter(**props)
|
||||
return type(obj)(**props)
|
||||
else:
|
||||
raise ProgrammingError(
|
||||
"Overrides can only be applied to Parameter's, %r is none!" %
|
||||
paramobj)
|
||||
obj)
|
||||
|
||||
|
||||
class Command(CountedObj):
|
||||
|
@ -28,7 +28,7 @@ from math import atan
|
||||
|
||||
from secop.datatypes import EnumType, FloatRange, TupleOf
|
||||
from secop.lib import clamp, mkthread
|
||||
from secop.modules import Command, Drivable, Parameter
|
||||
from secop.modules import Drivable, Parameter, Override
|
||||
|
||||
|
||||
class CryoBase(Drivable):
|
||||
@ -75,11 +75,11 @@ class Cryostat(CryoBase):
|
||||
datatype=FloatRange(0), default=0, unit="W",
|
||||
group='heater_settings',
|
||||
),
|
||||
target=Parameter("target temperature",
|
||||
target=Override("target temperature",
|
||||
datatype=FloatRange(0), default=0, unit="K",
|
||||
readonly=False,
|
||||
),
|
||||
value=Parameter("regulation temperature",
|
||||
value=Override("regulation temperature",
|
||||
datatype=FloatRange(0), default=0, unit="K",
|
||||
),
|
||||
pid=Parameter("regulation coefficients",
|
||||
@ -105,7 +105,7 @@ class Cryostat(CryoBase):
|
||||
default='ramp',
|
||||
readonly=False,
|
||||
),
|
||||
pollinterval=Parameter("polling interval",
|
||||
pollinterval=Override("polling interval",
|
||||
datatype=FloatRange(0), default=5,
|
||||
),
|
||||
tolerance=Parameter("temperature range for stability checking",
|
||||
@ -125,10 +125,8 @@ class Cryostat(CryoBase):
|
||||
),
|
||||
)
|
||||
commands = dict(
|
||||
stop=Command(
|
||||
"Stop ramping the setpoint\n\nby setting the current setpoint as new target",
|
||||
None,
|
||||
None),
|
||||
stop=Override(
|
||||
"Stop ramping the setpoint\n\nby setting the current setpoint as new target"),
|
||||
)
|
||||
|
||||
def init_module(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user