Tango on an embedded system

hi sblanch,
What do you call "Tango core"?
I am trying to #include <c_tango.h> from c_binding in my project but I have some trouble. Like the need to include <tango.h>
I think Sergi call Tango Core for the Tango librairies compiled for your target.

Some reading about embedding Tango :

https://accelconf.web.cern.ch/accelconf/ica07/PAPERS/WPPA28.PDF
I understand absolutly nothing smile

Is there any exemple in C which work?
Yes, by Tango core I mean the middleware of Tango, the libraries that provides the necessary services for the distributed system agents work together in the distributed (control) system. I think this is the c++ code in the tango-cs sourceforge repository.

I've never used the C binding and I cannot provide you with an example. Even that I imagine that, as a binding, it may needs the libraries of Tango below the C binding. But I'm not sure of that.

I've look back the board you mention and I'm wrong if I thing that its system image you build is not flashed and it's stored in an sd card? If correct you may have enough space to not have hard restrictions on that.
I coded my webserver in flash.
My problem is not a problem of space.
My problems are :
I don't know what tools I need to be fully compatible
If I need libraries, I don't know how to compile them or just use them
I don't know if I have to code some functions in target to be compatible

As I said before my target is programmed with C code so when I tried to add some header and sources files I have a lot of error due to the files dependencies.

You still have the two options I've mention before. I think the webserver is not providing a good interface for a Tango device server.

As an example, if you provide some socket interface with an scpi protocol or similar (like can be modbus over tcp), it can be developed (you or someone else) a device server (that runs in a different machine) who interfaces the functionalities given by your board to the Tango control system.

As an example with scpi, there is a device server called skippy (and I mention because I did it and I know it better), that can talk with oscilloscopes, function generators among other instruments, to provide functionalities from them to the control system. In this case, if you develop a listener of scpi and provide a command tree set, that device server can be extended to know your instrument in a Tango installation.

The second option, I understand it is harder. It means to include in your image the Tango libraries. To know how to compile and what to include to have it running, it may help the debian packaging. There are several packages involved (probably exclude the tango-db part) and if you are not familiar with the system, perhaps the best option is the first with a protocol we already support.
I am trying the second one but it's very hard because of all file dependencies.

I don't know if I already said but I am working on Windows 7 with uvison 5.

I'm still not sure to understand your first option may be because I don't know 'scpi'.
Hi,
May be I begin to understand.
So correct me if I'm wrong.

In my laptop I have to create a c++ class which can do the gateway between my board and tango.
This class can exchange with my board with TCP/IP connection.
But this class must be compatible with tango.
This class is used like a database and I can use/see it on Jive.

Is it true? or not?
That looks to be a third way, also valid but at least operating system dependant.

Providing you a library to install outside your board, lets call it a driver, then someone can develop a Tango device server who uses your API to connect to your board. With that, a new element comes to the scene and you should provide a library for all the systems that supports Tango (I think Gnu/Linux and Windows). Also a secondary issue is the languages your API can work. If you provide the API with a header file for C/C++, then you restrict the language to use in the Tango device server development or force this developer to add another layer with Cython, for example, or an equivalent for Java.

That's why I see with better eyes that you support some of the standard (industrial) communication protocols. Like you have a webserver embedded in your board, add also a socket server that talks one of those protocols that are already supported and have Tango devices for it.
You're right I didn't think about the operating system.

In my case I'm working on windows but the client wants the system compatible with linux and windows.

So, may be my idea is not so good.

If I add a socket server where can I find "those protocols that are already supported and have Tango devices for it" ?
 
Register or login to create to post a reply.