fix PARAMS handling + initialisation for simulation

Change-Id: I1be9814b33884034301da0d8f3984011dfcf53b9
Reviewed-on: https://forge.frm2.tum.de/review/17128
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-01-22 17:51:13 +01:00
parent 41eb7e6508
commit 8538659b22

View File

@ -39,6 +39,8 @@ class SimBase(object):
# read and change messages correctly # read and change messages correctly
if '.extra_params' in cfgdict: if '.extra_params' in cfgdict:
extra_params = cfgdict.pop('.extra_params') 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())
for k in extra_params.split(','): for k in extra_params.split(','):
self.PARAMS[k] = PARAM('extra_param: %s' % k.strip(), self.PARAMS[k] = PARAM('extra_param: %s' % k.strip(),
datatype=FloatRange(), datatype=FloatRange(),
@ -81,6 +83,10 @@ class SimWritable(SimBase, Writable):
SimBase.__init__(self, cfgdict) SimBase.__init__(self, cfgdict)
Writable.__init__(self, logger, cfgdict, devname, dispatcher) Writable.__init__(self, logger, cfgdict, devname, dispatcher)
self._value = self.PARAMS['value'].default self._value = self.PARAMS['value'].default
def read_value(self, maxage=0):
return self.target
def write_target(self, value):
self.value = value
class SimDrivable(SimBase, Drivable): class SimDrivable(SimBase, Drivable):