EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Building and crashing EDM
From: John Sinclair <[email protected]>
To: Emmanuel Mayssat <[email protected]>
Cc: EPICS Tech-Talk <[email protected]>
Date: Wed, 11 Apr 2007 14:18:00 -0400
Emmanuel,

I will try to answer your questions.

1/ Where are those library names coming from ? How are they generated?

One of the original objectives for edm was to build a display manager to which other,
perhaps remotely located, developers could contribute. The biggest potential problem was
avoiding namespace collisions.

Suppose you and I both wish to build a text display widget that may be used by other
sites.

If I build a widget, I must pick two global symbols. For example, for a text display
widget I could choose the following:

 create_textDisplayWidgetPtr
 clone_textDisplayWidgetPtr

The widget then gets packaged into a shareable library named, for example,
libTextDisplayWidgetLibrary.so.

These names are descriptive but might be vulnerable to colliding with names
associated with the widget you build.

As a result, I suggested using uuid-derived names. I pick my names by issuing
the uuidgen command, which gives something like

5c2fdd15-0dcf-4ead-b0e4-cdbe653e5637

Now, instead of the above symbols, I use

 create_5c2fdd15_0dcf_4ead_b0e4_cdbe653e5637Ptr
 clone_5c2fdd15_0dcf_4ead_b0e4_cdbe653e5637Ptr

and I name the library

lib5c2fdd15-0dcf-4ead-b0e4-cdbe653e5637.so

These names are certain to be globally unique.

-------------

The way you use the above widget library is as follows:

To examine contents:
edm -show [full path to library]/lib5c2fdd15-0dcf-4ead-b0e4-cdbe653e5637.so

To add widgets to the edm objects file:
edm -add [full path to library]/lib5c2fdd15-0dcf-4ead-b0e4-cdbe653e5637.so

-----------------------------------------------------------------------------------

2/ Where did I go wrong in the GIF widget configuration ? I did
something very similar for the PNG widgets and it worked immediately
(kudos!).

There might have been a problem with the gif c++ file (A fix was released
in version 1-11-0t on 6-Mar-2007 that was related to the gif object global names).

-----------------------------------------------------------------------------------


3/ EDM is very similar to medm. Ok, you can create new widgets, but is this really worth the transition?

No one is being asked to use edm. If medm does all you want, why switch to edm?

medm is a fine piece of work. In our case, we were using a non-epics commercial
product from Vista Control Systems. After switching to EPICS, we wanted a few additional
medm features that were present in the Vista display manager. I spoke with Ken Evans
about this and was left with two distinct impressions:

 1) It was somewhat difficult to add new features to medm
 2) My request had a very low probability of being implemented

This inspired me to take a shot at writing an extensible display manager. I spent the
next six weeks, at home, in the evenings and on weekends, developing edm. Over
the years, edm has evolved considerably as a result of many excellent comments,
criticisms, and contributions from various EPICS developers and users.

-----------------------------------------------------------------------------------

4/ Is someone maintaining a library of edm widgets?

The SNS-hosted edm distribution includes widgets from various sources.

-----------------------------------------------------------------------------------

5/ Is there any other display manager worth the try?

Some sites still use DM2K or edd/dm. The new java-based tools are on the
horizon and soon edm itself will be obsolete.

-----------------------------------------------------------------------------------

6/ Why does (almost) none of the epics software work out of the box?
Keep that one for later, that another $64K question

Community-based software suites like EPICS unfortunately require some degree of user
participation. We just can't keep up with new platforms, new os/library distributions,
new include file organizations, new compiler behavior/constraints, new make quirks, etc.

Most EPICS developers have full-time jobs doing things unrelated to EPICS development.

-----------------------------------------------------------------------------------

John Sinclair






Emmanuel Mayssat wrote:
On Tue, 2007-04-10 at 18:27 -0700, Emmanuel Mayssat wrote:
So I update my edmObjects file accordingly with the following entry.

cf322683-513e-4570-a44b-7cdd7cae0de5 /EPICS_EXTENSIONS/lib/linux-x86/libcf322683-513e-4570-a44b-7cdd7cae0de5.so Graphics GIF Image


After listing the symbols of this library, I find ...


nm /home/cxsfs/bluice/devel/epics-extensions/lib/linux-x86/libcf322683-513e-4570-a44b-7cdd7cae0de5.so | grep create


000083ec T create_cfcf6c8a_dbeb_11d2_8a97_00104b8742dfPtr


(another great name!)

cfcf6c8a_dbeb_11d2_8a97_00104b8742df /EPICS_EXTENSIONS/lib/linux-x86/libcf322683-513e-4570-a44b-7cdd7cae0de5.so Graphics GIF Image

and it works.

Questions still remain...

Questions:
1/ Where are those library names coming from ? How are they generated?
2/ Where did I go wrong in the GIF widget configuration ? I did
something very similar for the PNG widgets and it worked immediately
(kudos!).
3/ EDM is very similar to medm. Ok, you can create new widgets, but is
this really worth the transition?
4/ Is someone maintaining a library of edm widgets?
5/ Is there any other display manager worth the try?
6/ Why does (almost) none of the epics software work out of the box?
Keep that one for later, that another $64K question ;-)

Regards,
--
Emmanuel




Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


References:
Building and crashing EDM Emmanuel Mayssat
Re: Building and crashing EDM Emmanuel Mayssat

Navigate by Date:
Prev: geocaching in germany Geoff Savage
Next: WebCA 1.0.0 release Matej Sekoranja
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Building and crashing EDM Emmanuel Mayssat
Next: geocaching in germany Geoff Savage
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·