Attribute v/s Properties

Dear TANGO Experts,

Your views on the guidelines as to what should be implemented as a Device property and what should be implemented as a TANGO attribute is needed.

My understanding is that the configuration parameters that are used at device initialization should be implemented as Device properties. Whereas, parameters that need to be get/set at runtime should be implemented as TANGO attributes.

But in some cases, there is a need to change the configuration parameters at run-time as well. Example: Take the case of HDB++ Archiver. A number of attributes archived by an Event Subscriber can change at runtime. But, the attributeList is implemented as a Device Property of the HDB++ EventSubscriber.

Inputs from the experts on the same will be quite useful.

Vatsal Trivedi
Hi Vatsal,

I’m not a Tango expert at all, but maybe this could help..

I think you are right when talking about the initialization and runtime discrimination of the parameters (at least this is what the guidelines says). Maybe the Init command execution could help you to reload the properties into your device at runtime? I know it as not so easy as writing an attribute but should work and will probably put your device in the INIT state for a while (keep in mind that the memorized attributes will be reloaded as well).


Your understanding is correct.
About the attributeList case from the HDB++ event subscriber, it is a special case…
It is implemented as a property and a read-only attribute.
AttributeList attribute is a DevString spectrum attribute. The value of this attribute must be memorized to ensure that the HDB++ event subscriber will continue to take care of the same attribute list after a restart or a re-initialization of the server.
Memorized attributes are not supported for spectrum attributes for performances reasons. This might explain why it was done like that.
Another reason is the fact that the HDB++ user is not supposed to edit this AttributeList directly (even the property) but should use the HDB++ConfigurationGUI (which will talk to the HDB++ConfigurationManager, which will talk to the EventSubscribers) to configure the system, otherwise, some configuration steps might be missing and the system will not behave as expected. The HDB++ConfigurationGUI will send commands to the configuration manager which will send AttributeAdd/AttributeRemove commands at the end on the Event Subscribers. These commands will take care of updating the AttributeList attribute value and attributeList property values.

I hope this helps.

Kind regards,
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Hi Reynald and Zibi,

Many thanks for your prompt response. As always, views of the community members are quite helpful.

Previously, one would receive an email when someone replies to the post. Is this feature not supported by the upgraded website? It was quite useful as there is no need to open the TANGO website to check if someone has replied or not?

Vatsal Trivedi
Hi again,

I think that you need to subscribe to the forum in order to receive email notifications. You can do it one by one, entering in the forum e.g. C++, RFC, GNU Linux, … and then in the "Mange Subscription" you have a set of options to choose between. You could also automatically subscribe to all with this link: or a button on the main page of Forum: "Subscribe to all forums".

BTW I would expect that if one opened a topic in a forum he would automatically receive the email notifications.

Register or login to create to post a reply.