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
<2012>
2013
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
<2012>
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|