Missing Library files for interfacing with SPEC

Hi all,

I'm hoping to be able to send commands to a detector that is connected through tango using the x-ray diffraction motor control program SPEC (https://www.certif.com/)

I've been told there are a series of library files from Tango that are required:

libAttNotification4.so
libAttNotificationDynamic4.so
libCOS4.so
libCOSDynamic4.so
libCOSNotify4.so
libc_tango.so
libjzmq.so
liblog4tango.so
libomniCodeSets4.so
libomniConnectionMgmt4.so
libomniDynamic4.so
libomniORB4.so
libomnithread.so
libtango.so
libzmq.so

We have a computer with Tango installed by a vendor that was missing some of these files and I built Tango-9.2.5a on Ubuntu following the installation guide. Running the installation I still end up missing the following the following library files:

libAttNotification4.so
libAttNotificationDynamic4.so
libCOSNotify4.so
libc_tango.so
libjzmq.so

For the people who have Tango at a synchrotron who might be using Tango and Spec, is there a different version that I should be working with? Or is there something else I should be doing or doing something wrong?

Thank you,
Al Rahemtulla
Canadian Light Source
Hi Al,

Do you know who is your vendor?

Thanks.

Best regards,
Hi, my vendor is X-Spectrum, it's a Lambda 750k detector.
Hi,

libAttNotification4.so
libAttNotificationDynamic4.so
libCOSNotify4.so

are coming from omniNotify (http://omninotify.sourceforge.net/ , CORBA notification service).
I think they were needed in the past for the first implementation of the Tango events but this is no longer required since the Tango events are now transferred via ZMQ.
So I think you should not need these libraries.

libc_tango.so comes from the Tango C binding (https://github.com/tango-controls/C_Binding).

libjzmq.so seems to be a file provided with the ZeroMQ Java binding (JNI libraries for libzmq-java): https://packages.debian.org/stretch/libzmq-jni
I don't know why you would require this one in your case.

Hoping this helps a bit.
Reynald
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.
Edited 4 weeks ago
Hi Reynald,

Thanks for the tip. I'm having trouble building the c-binding. I'm not well versed with makefiles. Would the c-binding files need to be in a specific directory?

I'm getting fatal errors that I'm missing a series of files.

-Al
Edited 2 weeks ago
I think you need to edit Make.rules file and to adapt it to your current installation:
https://github.com/tango-controls/C_Binding/blob/master/Make.rules

At the end, the most important variables that need to be defined are:
# Installation directory for include files and libraries (where you want to install the C bindings)
INSTALL_BASE =

# Tango base directory (base directory where the Tango C++ library is installed)
TANGO_BASE =

# OmniORB base directory (base directory where omniORB is installed)
OMNI_BASE =

# Log4tango base directory (base directory where Log4Tango is installed)
LOG4TANGO_BASE =

# doxygen base directory (base directory where Doxygen is installed)
DOXYGEN =

You can comment the line defining OS variable because it is using an ESRF specific script returning the OS release version, (something like 'debian9'). But this is very ESRF specific and your installation probably does not need that.

It looks like this C bindings project needs an update to make it more community friendly.
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.