EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  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  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: cac_select_io Segmentation fault
From: "Al Honey" <[email protected]>
To: "Ralph Lange" <[email protected]>, "Al Honey" <[email protected]>
Cc: EPICS Tech Talk <[email protected]>
Date: Wed, 7 Apr 2010 10:57:28 -1000
> Wouldn't creating a 3.14 version of that library under a different
name 
> (or version) - just for your client - work?

Nope!

There is a 'generic' layer in between the client and the service (e.g.
CA system) that loads a library as per the name of the service to which
a connection is requested. The functions within the library then cause a
system specific configuration to be loaded. There is a library for each
of the different service types (CA, RPC -multiple-, socket, ...) and the
functions in those have identical names and arguments (srv_open,
srv_read, srv_write, srv_ioctl, srv_event).

For instance obs_open("ao") will cause the CA interface library to be
loaded (via a symbolic link: libao_if.so ->libCA_if.so) and the open
call (srv_open) therein will then cause a set of specific data files to
be loaded, as per the service name ("ao_data_configuration"). For
obs_open("instrument_x") a totally different library is loaded (say
libinstrument_x_if.so -> libRPC_if.so) and the open function therein
(still srv_open) will load/interpret data files that will be in a
completely different format ("instrument_x_data_configuration"). The
advantage of this 'layer' is that clients need not know anything about
the various 'types' of services with which they are exchanging data (CA,
RPC, some message based format, ...): all client calls are identical;
the client's data is always in the same format, as the library functions
perform all the translations.

> I don't think the CA client 
> interface changed too much between 3.13 and 3.14.

Okay, that is good :)
I will start researching the differences.

> A one-client thing would be a nice testbed for 3.14 ... and not affect

> the other parts of the system.

I can create a multi-threaded client test bed on a subnet separate from
the operational net. But, when deployment occurs multiple clients will
be affected, in some cases, there are many. Deployment will be tedious.


Thanks,
Al




-----Original Message-----
From: Ralph Lange [mailto:[email protected]] 
Sent: Wednesday, April 07, 2010 9:45 AM
To: Al Honey
Cc: EPICS Tech Talk
Subject: Re: cac_select_io Segmentation fault

Wouldn't creating a 3.14 version of that library under a different name 
(or version) - just for your client - work? I don't think the CA client 
interface changed too much between 3.13 and 3.14.
A one-client thing would be a nice testbed for 3.14 ... and not affect 
the other parts of the system.

Ralph


On Wed 07 Apr 2010 15:31:00 Al Honey wrote:
> Hi Ralph
>
> I didn't take any offense.
>
> We have a layer between our clients and all systems with whom
> inter-pocess communications occur and many of those systems are not
CA.
> That layer is effectively a library which is dynamically loaded at
> runtime. Hence, changing that library, for one CA client, will affect
a
> subset of clients. The CA library calls in that library will
undoubtedly
> have to change and I am probably still too ignorant to make those
> changes.
>
> Thanks,
> Al
>
>   


Replies:
Re: cac_select_io Segmentation fault Andrew Johnson
References:
cac_select_io Segmentation fault Al Honey
Re: cac_select_io Segmentation fault Ralph Lange
Re: cac_select_io Segmentation fault Ralph Lange
RE: cac_select_io Segmentation fault Al Honey
Re: cac_select_io Segmentation fault Ralph Lange

Navigate by Date:
Prev: Re: cac_select_io Segmentation fault Ralph Lange
Next: Re: cac_select_io Segmentation fault Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: cac_select_io Segmentation fault Ralph Lange
Next: Re: cac_select_io Segmentation fault Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·