improve readability be renaming PARAMS,PROPS,CMDS

and others.

Change-Id: Ie37768ed813acdf0cb0707c70ff63397ec8bfbf1
Reviewed-on: https://forge.frm2.tum.de/review/17320
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
Enrico Faulhaber
2018-02-14 13:32:19 +01:00
parent aba67dde7f
commit f54e8ccb45
9 changed files with 372 additions and 427 deletions

View File

@@ -24,7 +24,7 @@
import random
from time import sleep
from secop.modules import Module, Readable, Writable, Drivable, PARAM
from secop.modules import Module, Readable, Writable, Drivable, Param
from secop.lib import mkthread
from secop.protocol import status
from secop.datatypes import FloatRange
@@ -32,20 +32,30 @@ from secop.datatypes import FloatRange
class SimBase(object):
def __init__(self, cfgdict):
# spice up PARAMS if requested by extra property
# spice up parameters if requested by extra property
# hint: us a comma-separated list if mor than one extra_param
# BIG FAT WARNING: changing extra params will NOT generate events!
# XXX: implement default read_* and write_* methods to handle
# read and change messages correctly
if '.extra_params' in cfgdict:
extra_params = cfgdict.pop('.extra_params')
# make a copy of self.PARAMS
self.PARAMS=dict((k,v.copy()) for k,v in self.PARAMS.items())
# make a copy of self.parameter
self.parameters = dict((k,v.copy()) for k,v in self.parameters.items())
for k in extra_params.split(','):
k = k.strip()
self.PARAMS[k] = PARAM('extra_param: %s' % k.strip(),
self.parameters[k] = Param('extra_param: %s' % k.strip(),
datatype=FloatRange(),
default=0.0)
def reader(maxage=0, pname=k):
self.log.debug('simulated reading %s' % pname)
return self.parameters[pname].value
setattr(self, 'read_' + k, reader)
def writer(newval, pname=k):
self.log.debug('simulated writing %r to %s' % (newval, pname))
self.parameters[pname].value = newval
return newval
setattr(self, 'write_' + k, writer)
def late_init(self):
self._sim_thread = mkthread(self._sim)
@@ -61,7 +71,7 @@ class SimBase(object):
return True
def read_value(self, maxage=0):
if 'jitter' in self.PARAMS:
if 'jitter' in self.parameters:
return self._value + self.jitter*(0.5-random.random())
return self._value
@@ -76,14 +86,14 @@ class SimReadable(SimBase, Readable):
def __init__(self, logger, cfgdict, devname, dispatcher):
SimBase.__init__(self, cfgdict)
Readable.__init__(self, logger, cfgdict, devname, dispatcher)
self._value = self.PARAMS['value'].default
self._value = self.parameters['value'].default
class SimWritable(SimBase, Writable):
def __init__(self, logger, cfgdict, devname, dispatcher):
SimBase.__init__(self, cfgdict)
Writable.__init__(self, logger, cfgdict, devname, dispatcher)
self._value = self.PARAMS['value'].default
self._value = self.parameters['value'].default
def read_value(self, maxage=0):
return self.target
def write_target(self, value):
@@ -94,16 +104,16 @@ class SimDrivable(SimBase, Drivable):
def __init__(self, logger, cfgdict, devname, dispatcher):
SimBase.__init__(self, cfgdict)
Drivable.__init__(self, logger, cfgdict, devname, dispatcher)
self._value = self.PARAMS['value'].default
self._value = self.parameters['value'].default
def sim(self):
while self._value == self.target:
sleep(0.3)
self.status = status.BUSY, 'MOVING'
speed = 0
if 'ramp' in self.PARAMS:
if 'ramp' in self.parameters:
speed = self.ramp / 60. # ramp is per minute!
elif 'speed' in self.PARAMS:
elif 'speed' in self.parameters:
speed = self.speed
if speed == 0:
self._value = self.target