Hi guys,
I don’t know what is the status for PyTango9 but there are few guys@MAXIV who propose to help with the development.
We would like to migrate to Tango 9 in January but 95% of our control system is based on Python.
Cheers,
Vincent
Hi guys,
I don’t know what is the status for PyTango9 but there are few guys@MAXIV who propose to help with the development.
We would like to migrate to Tango 9 in January but 95% of our control system is based on Python.
Cheers,
Vincent
Dear Vincent,
thank you very much for your offer. We are currently planning the porting of PyTango9. We will send you more details next week on when the port can be done and where you can help. Help with testing will be very useful. Do you know if you need the new features of Tango9 (e.g. Pipes) in order to move your control system to Tango9 or if a port of PyTango8 to Tango9 will be sufficient in the first instance?
Kind regards
Andy
Great news!
We can help on both test and development, maybe to make Pogo compatible, to migrate PyTango to github ;-)…
A port of PyTango8 to Tango9 can be a first step so the people will be able to deploy only one version of Tango. The Solaris guys have currently some trouble with that.
But definitively we will use the feature of Tango9 forwarded attributes, pipes, enumeration, …
In waiting for next week is there any materials to read about compilation, code generation, …?
Thanks for your answer we are very impatient to add that in our scrum planning.
Cheers,
Vincent
Hi Vincent,
Thanks for your offering to help.
I have recently pushed a branch in github (called tango9’) which compiles with Tango C++ 9.
It doesn’t implement any of the new Tango 9 features but it should work (I tested with a Lima device server).
The major items that need attention are:
The first three items need discussion before implementation.
I propose to create an issue (of type question) in github to make proposals for these three critical items and start discussion.
In the mean time if you can test the tango9 branch already it would be of great help.
Thanks again
Hi Tiago,
good work. I compiled PyTango 9.1.0 on Ubuntu 15.10 without problems. I got a number of warnings mostly like this:
/usr/local/include/tango/zmq.hpp:185:17: warning: unused variable ‘rc’ [-Wunused-variable]
int rc = zmq_term (ptr);
and
src/boost/cpp/server/device_impl.cpp:1514:56: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
implicitly_convertible<auto_ptr<Device_4ImplWrap>, auto_ptr<Tango::Device_4Impl> >();
and
Compiling tango_util.cpp... In file included from /usr/include/python2.7/numpy/ndarraytypes.h:1761:0,
from /usr/include/python2.7/numpy/ndarrayobject.h:17,
from /usr/include/python2.7/numpy/arrayobject.h:4,
from src/boost/cpp/tango_numpy.h:25,
from src/boost/cpp/from_py.h:24,
from src/boost/cpp/pytgutils.h:19,
from src/boost/cpp/server/tango_util.cpp:14:
/usr/include/python2.7/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by " \
I don’t know if they are serious or not. Just thought I would let you know.
How can I test PyTango9 without breaking my current PyTango8 installation ?
Andy
First warning comes from ZMQ. Normally PyTango (and other C++ tango clients or servers) should not have access to zmq or orb definitions. This is normally due to the fact that the tango library is including zmq header in tango.h (directly or indirectly). I will talk to Emmanuel Taurel to see if it can be cleaned (BTW, this is one of the reasons why compilation takes soo long :-).
Second warning is because boost is not prepared for C++ 11 and I still need to use the old auto_ptr.
Third warning comes because numpy changed its API in version 1.7. Carlos Falcon already sent a patch some time ago and I need to apply it.
Neither of the warnings are in any worrying.
If you need to have both installations I suggest you use virtualenv.
Tiago
Hi Tiago,
I noticed that PyTango9 does not print the usual message on the stdout when the device server starts up. It is completely silent. The message is useful to know when the server has finished initialising and is ready. Could you add following message to the startup:
Ready to accept request
Thanks
Andy
Hi all,
I built and installed Tango+PyTango 9 today, so I wrote a report of the different issues and warnings I ran into: PyTango 9 installation report.
It covers the following points:
Also:
[quote=“Andy”]I noticed that PyTango9 does not print the usual message on the stdout when the device server starts up.[/quote] Funny, I do get the usual message on my setup…
Vincent
Hi Vincent,
Thanks for trying PyTango and for the complete report.
I did not understand your database test: in tango 8 you tested with short host name but in tango 9 you test with the full host name. Does tango 8 work with full host name? Does tango 9 work with short host name?
Usually, the ready to accept request message is not in the core library (PyTango/C++). Instead it is coming from the code generated by Pogo. However, if you use the PyTango high level API, the server_init and server_run methods are hidden behind the server.run method. In this case PyTango generates the ready to accept request message since it is not possible in the user code.
Tiago
Hi Tiago,
Both versions fail with to initialize the Database object with the long host name, and both of them succeed with the short one. The problem has to do with the hostname used when no argument is given to the Database client object. Using Tango 8 I get:
>>> PyTango.Database()
Database(vinmic-t440p, 10000)
and using Tango 9:
>>> PyTango.Database()
Database(vinmic-t440p.maxiv.lu.se, 10000)
But the ITango code gets the hostname using:
db = PyTango.Database()
_DFT_TANGO_HOST = "%s:%s" % (db.get_db_host(), db.get_db_port())
And then use it in __get_db:
db = PyTango.Database(*host_port.split(":"))
Which fails and triggers the following error:
Could not access any Database. Make sure:
- .tangorc, /etc/tangorc or TANGO_HOST environment is defined.
- the Database DS is running
I used the high level API so that makes sense!
Vincent
I add here a more serious bug I just ran into:
Subscribing twice to the same attribute raises an EventSystemFailed error.
Hi Tiago, Vincent
Of course we (ALBA) are also both dependent and familiar with PyTango and quite interested in collaborate in PyTango9. We are preparing a new beamline with Tango8/9, and Jairo already found some bugs that we can help solving and debugging.
I’ll contact you soon with more details as we are adding Tango9 to continuous integration, so new things may be found soon.
From Tiago’s list of new features, these are the ones we are more focused in:
Sergi
Hi Sergi,
thanks for ALBA’s offer to help - this is excellent news!
Andy
[quote=“Vincent M”]I add here a more serious bug I just ran into:
Subscribing twice to the same attribute raises an EventSystemFailed error.
[/quote]
This bug seems to disappear if you apply this patch to your cpp tango lib:
However the bug seems to still be there if you connect your client to a non tango9 server.