Wrong Device / Attribute separator used in EvaluatorDevice.getAttribute
from taurus import Device, Attributedev = Device("eval://localhost/@DefaultEvaluator")
attr = dev.getAttribute("randint(100)")
-> Python error: Invalid evaluation attribute name eval://localhost/@DefaultEvaluator;randint(100)
The name should be "eval://localhost/@DefaultEvaluator/rand(1)" with a "/" instead of a ";" between the Device part and the attribute part, as shown with :
Attribute("eval:randint(100)").fullname
-> 'eval://localhost/@DefaultEvaluator/randint(100)'
I have tried to simply change :
full_attrname = "%s;%s" % (self.getFullName(), attrname)
To:
full_attrname = "%s/%s" % (self.getFullName(), attrname)
In EvaluationDevice.getAttribute (taurus/core/evaluation/evaldevice.py), it seems to work well.
Edited by Amoutardier