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  2010  2011  <20122013  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  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: How to get a list of all available PVs
From: <[email protected]>
To: <[email protected]>
Cc: [email protected]
Date: Mon, 17 Dec 2012 13:52:21 +0000
From: Carlos Pascual [mailto:[email protected]]
> On Mon 17 December 2012 12:38:10 [email protected] wrote:
> > This monitoring tool sits between the machine network carrying PV
> > traffic and our internal database, which itself provides a web interface.
> > Each time a CA_PROTO_SEARCH message is seen for a new PV I add it to an
> > internal table and create my own discovery message to locate the serving
> > IOC; once found, an update is sent to our database and the PV is
> > periodically refreshed.
 
> Very interesting. A similar system but monitoring for
> CA_PROTO_RSRV_IS_UP instead of CA_PROTO_SEARCH would
> work for me provided that then I can get a list of PVs
> from a given IOC.

Don't believe such a mechanism exists at present, but see below.


> > > And if so, is there a way of interrogating a given IOC for its PVs?
> >
> > In principle such a mechanism could be created, but I don't believe
> > it exists at present.
> 
> What do you mean by "could be created"? Do you mean that Epics could
> provide some API to this effect in the future?... Or that a way could
> be found to do it with existing APIs? ... or something else?

One or the other, I've not looked to see what would be involved (well, I have now...).  I'd start by thinking of providing a simple socket interface which walks the database, or maybe just returns the results of dbgrep.

Actually, a glance at the implementation of dbgrep (src/db/dbTest.c) suggests that the existing code is close to what you need, but needs a tweak (rather than calling puts you'll want more control over where the strings go), but it looks to me as if all the functions called by dbgrep are exported by epics, so writing what you need should be exceptionally easy: just grab a copy of dbgrep, give it a file handle output, replace puts, wrap a socket interface around it, launch it as part of your IOC startup scripts.

If it were me, I'd dedicate a socket, read one line from the input, treat it as input to the modified dbgrep, send the results in response, close the socket.  Then `echo \* | nc $IOC $PORT` would give you a list of all PVs exported by the IOC.

Of course, you'll need to add this code to every IOC...

-- 
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. 
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
 





Replies:
Re: How to get a list of all available PVs Ralph Lange
References:
How to get a list of all available PVs Carlos Pascual
Re: How to get a list of all available PVs Carlos Pascual
RE: How to get a list of all available PVs michael.abbott
Re: How to get a list of all available PVs Carlos Pascual

Navigate by Date:
Prev: Re: How to get a list of all available PVs Carlos Pascual
Next: Re: How to get a list of all available PVs luedeke
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: How to get a list of all available PVs Carlos Pascual
Next: Re: How to get a list of all available PVs Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·