Set of questions

Right you are…
I generated the code from Pogo with PythonHL option.
Then I realized that there was no read_attr_hardware method generated!! Why is that? That's a good question! Maybe a PyTango expert knows the answer?
So I generated another version of the code for Python instead of PythonHL. With the Python option, read_attr_hardware method was generated. So I copied it into the code which was generated with PythonHL.

Right now, I cannot explain why you have a different behaviour than what I'm seeing…
How did you install tango9.2.5a?
What is your operating system?

Do you have several tango library versions installed on your computer?
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.
I just executed the same commands you used to install pytango on an Ubuntu 16.04.2 LTS virtual machine where tango9.2.5a was installed from the source distribution tar file.
I executed the code I attached in a previous post and I still get the expected result.

So I could see several explanations to the behaviour you are observing:
  1. You have several tango libraries installed on your system and pytango is using an old one where the polling was used differently?
  2. Your 2 attributes are not configured with the same polling period?
  3. You have an external client reading your attributes individually with SOURCE=DEVICE?
  4. The answer D! smile
  5. You have set polling_before_9 property to true on your admin device (very unlikely since this is an advanced feature and requires an action on your side)?
  6. The other explanation we didn't think about yet
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,

I've installed Tango using source code. Also, I have Ubuntu 16.04 LTS.
I think that there is a chance about several tango libraries (explanation A).
I will try later this day to reinstall ubuntu, and start again from clean installation. I'll let you know if there is some improvement.
One question, do you think it's better that I install pytango and itango in virtual environment, or there shouldn't be difference whether I use virtual environment or not?

Cheers
Jelena,

Could you send the code of both the server and the client?

I suspect it does not matter which version of PyTango/Tango you are using. This is a very core feature. I don't think we ever had a report of any tango version being buggy at this level.

Are you sure you are using read_attributes (notice the s in the end) ?



Edited 6 years ago
Reynald
I generated the code from Pogo with PythonHL option.
Then I realized that there was no read_attr_hardware method generated!! Why is that? That's a good question! Maybe a PyTango expert knows the answer?
I think it is a question for a Pogo PyTango expert smile.
IMHO and just to answer Reynald question (I am getting of topic), pogo should not generate code which is not used by the developer. Instead I would say there is a missing feature in
pogo to "generate read_attr_hardware" (BTW, there should be another one called "generate always executed_hook").
I always see pogo as a tool for prototyping and for newcomers to tango. If it generates lot of boiler plate code by default, newcomers wonder if they are supposed to do something there.
TCoutinho
Reynald
I generated the code from Pogo with PythonHL option.
Then I realized that there was no read_attr_hardware method generated!! Why is that? That's a good question! Maybe a PyTango expert knows the answer?
I think it is a question for a Pogo PyTango expert smile.
IMHO and just to answer Reynald question (I am getting of topic), pogo should not generate code which is not used by the developer. Instead I would say there is a missing feature in
pogo to "generate read_attr_hardware" (BTW, there should be another one called "generate always executed_hook").
I always see pogo as a tool for prototyping and for newcomers to tango. If it generates lot of boiler plate code by default, newcomers wonder if they are supposed to do something there.
Hi,

That's exactly the reason why the generated code is without these methods. And also to keep it very simple for a simple case.
But we can imagine having an option to generate them or not like Tiago suggested.

For me, we maybe have to see it like for dev_state and dev_status, which can be generated only if you want to override them.

Need some talks with P.Verdier for the gui parts, but it's definitely doable and have to be accessible, so just a matter of time before it's get integrated.
SGara_Nexeya
That's exactly the reason why the generated code is without these methods. And also to keep it very simple for a simple case.
But we can imagine having an option to generate them or not like Tiago suggested.

For me, we maybe have to see it like for dev_state and dev_status, which can be generated only if you want to override them.

Need some talks with P.Verdier for the gui parts, but it's definitely doable and have to be accessible, so just a matter of time before it's get integrated.

Thanks for the explanations. I think it would be nice to have this option, indeed. smile
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.
 
Register or login to create to post a reply.