|
From: Carlos P. <cpa...@ce...> - 2016-01-20 12:33:32
|
Applied.
Now, could you also submit a patch for the related #252?
Thx!
On Thu 14 January 2016 15:26:24 cfalcon wrote:
> TaurusManager only set the given polling period to the default scheme
> (by default Tango). Do the indicated TODO in the
> changeDefaultPollingPeriod method, and set the given value to all
> schemes.
>
> Adapt the evaluationFactory getAttribute method following the Tango
> implementation to set the PollingPeriod for the evaluationAttributes.
> ---
> lib/taurus/core/evaluation/evalfactory.py | 15 +++++++++------
> lib/taurus/core/taurusmanager.py | 7 ++++---
> 2 files changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/lib/taurus/core/evaluation/evalfactory.py
> b/lib/taurus/core/evaluation/evalfactory.py index 6521057..9e4d2dc
> 100644
> --- a/lib/taurus/core/evaluation/evalfactory.py
> +++ b/lib/taurus/core/evaluation/evalfactory.py
> @@ -345,12 +345,12 @@ class EvaluationAttribute(TaurusAttribute):
> pyVar_RegExp = re.compile("[a-zA-Z_][a-zA-Z0-9_]*") #regexp for a
> variable/method name (symbol) cref_RegExp = re.compile("\{(.+?)\}")
> #regexp for references to other taurus models within operation model
> names
>
> - def __init__(self, name, parent, storeCallback = None):
> - self.call__init__(TaurusAttribute, name, parent,
> storeCallback=storeCallback) -
> + def __init__(self, name, parent, **kwargs):
> + self.call__init__(TaurusAttribute, name, parent, **kwargs)
> +
> self._value = TaurusAttrValue()
> self._value.config.writable = False #Evaluation Attributes
> are always read-only (at least for now) - self._references =
> []
> + self._references = []
> self._validator= self.getNameValidator()
> self._transformation = None
> # reference to the configuration object
> @@ -736,7 +736,7 @@ class EvaluationFactory(Singleton, TaurusFactory,
> Logger): d = DevClass(fullname, parent=db,
> storeCallback=self._storeDev) #use full name return d
>
> - def getAttribute(self, attr_name):
> + def getAttribute(self, attr_name, **kwargs):
> """Obtain the object corresponding to the given attribute
> name. If the corresponding attribute already exists, the existing
> instance is returned. Otherwise a new instance is stored and
> returned. The evaluator @@ -759,7 +759,10 @@ class
> EvaluationFactory(Singleton, TaurusFactory, Logger): a =
> self.eval_attrs.get(fullname, None)
> if a is None: #if the full name is not there, create one
> dev =
> self.getDevice(validator.getDeviceName(attr_name)) - a
> = EvaluationAttribute(fullname, parent=dev,
> storeCallback=self._storeAttr) #use full name +
> kwargs['storeCallback'] = self._storeAttr
> + if not kwargs.has_key('pollingPeriod'):
> + kwargs['pollingPeriod'] =
> self.getDefaultPollingPeriod() + a =
> EvaluationAttribute(fullname, parent=dev, **kwargs) #use full name
> return a
>
> def getConfiguration(self, param):
> diff --git a/lib/taurus/core/taurusmanager.py
> b/lib/taurus/core/taurusmanager.py index d140b26..de116b8 100644
> --- a/lib/taurus/core/taurusmanager.py
> +++ b/lib/taurus/core/taurusmanager.py
> @@ -361,9 +361,10 @@ class TaurusManager(Singleton, Logger):
> o.execute()
>
> def changeDefaultPollingPeriod(self, period):
> - self.getFactory()().changeDefaultPollingPeriod(period)
> - # todo: go through all known plugin factories and change
> their polling - # period
> + plugin_classes = self._get_plugin_classes()
> + for plugin_class in plugin_classes:
> + scheme = plugin_class.schemes[0]
> +
> self.getFactory(scheme)().changeDefaultPollingPeriod(period)
>
> def __str__name__(self, name):
> return '{0}({1})'.format(self.__class__.__name__, name)
--
+----------------------------------------------------+
Carlos Pascual Izarra
Scientific Software Coordinator
Computing Division
ALBA Synchrotron [http://www.albasynchrotron.es]
Carrer de la Llum 2-26
E-08290 Cerdanyola del Valles (Barcelona), Spain
E-mail: cpa...@ce...
Phone: +34 93 592 4428
+----------------------------------------------------+
|