On Monday 23 February 2009 17:36:38 Dalesio, Leo wrote:
> Supporting this over the channel access server is another topic altogether.
> The protocol does not support it.
Actually given a suitable naming convention and record names that fit into a
40 character DBF_STRING it's not hard to support something like this with no
changes to Base. You just need to have enough RAM in your IOC (or CAS tool)
to be able to create a waveform record which contains all of the PV names.
Then to get the complete set of names you just connect to and fetch that
waveform.
PV names are not the same as record names though, since each record.field is a
separate PV as far as CA clients are concerned. In order to reduce large
amounts of name duplication you'd probably have one record that holds all of
the record names and a series of additional records, one for each record type
that provide the accessible field names for that type. The client would have
to find the base record name it's interested in, connect to the .RTYP field
of that record to find its record type (or that could be provided as a
separate array), then fetch the appropriate list of fields for that record
type.
Implementing this would not be hard, it just takes defining the naming
convention and writing some code to fill up the various waveforms at
initialization time.
At the APS we take a more pragmatic approach though; each of our IOCs dumps a
list of all of its record names to an IOC-specific file on a file-server just
before the IOC starts processing. Any client tools that need to search for
records can then access this file however they like. This solution saves the
IOC from having to serve all the client requests for its PV name list, thus
we can use IOCs in our control system that have less RAM and need less
powerful CPUs. It makes more sense to us to put that load on the
file-servers than on the more specialized IOCs.
I guess it wouldn't be too hard to run a soft-IOC that takes those files and
makes them available to CA clients as arrays though; we already do something
like that in the CA nameservers that we run, but without serving the PV lists
up as array PVs; this might be an interesting addition to the nameserver...
- Andrew
--
The best FOSS code is written to be read by other humans -- Harold Welte
- References:
- Dynamic Listing of PVs Bruno Coudoin
- Re: Dynamic Listing of PVs Bruno Coudoin
- RE: Dynamic Listing of PVs Dalesio, Leo
- Navigate by Date:
- Prev:
Re: can't output strings array with gensub haquin
- Next:
Re: Dynamic Listing of 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
- Navigate by Thread:
- Prev:
RE: Dynamic Listing of PVs Dalesio, Leo
- Next:
Re: Dynamic Listing of 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
|