EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: dataAccess V4 Ca client propertyId questions
From: Ralph Lange <[email protected]>
To: Kay-Uwe Kasemir <[email protected]>
Cc: EPICS Core Talk <[email protected]>
Date: Tue, 28 Jun 2005 15:52:49 +0200
Kay-Uwe Kasemir wrote:

Yes, Jeff proposes a channel::createAllPropertiesReadRequest.
Does that cover your idea for a simply 'probe'- type application?

     createAllPropertiesReadRequest
     ...
     foreach p ( da->getProperties() )
     {
         display da->getType(p), da->getAsString(p)
     }

... or would you also like to see a request that only
gets the properties and types, without fetching any actual values?

Yes, we need that request!
(And I think we already agreed on it at the SLAC meeting, but everyone seems to have different memories of that meeting to an extent that I start to believe we attended different parallel meetings. Or the same meeting in parallel worlds.)

Let me give two reasons why:

1. Access Rights
The Viewer (read) traverse() will only show properties that are readable.
The Manipulator (write) traverse() will only show properties that are writable. Both could be limited down to very few by Access Security or a similar mechanism. If a probe-type client wants to show all properties and the access rights for each of them, there has to be another traverse() that shows *all* properties, together with the access rights for each.

2. Primitive Types
Data Access hides the native type of the data by providing templated functions for each of the interface types that do all necessary conversions. The only way for a client to find out about the native type of data is to provide a bunch of Viewers (one for each interface type) and see which one gets called. (If for a particular non-C++ dataAccess implementation the interface type is different from the internal primitive type, even this method will only get a hint.) So the third traverse() should also yield the native primitive type for a property (one out of a list of well-known, machine, architecture, language independent and size-fixed primitive types).

Ralph


References:
dataAccess V4 Ca client propertyId questions Marty Kraimer
Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir

Navigate by Date:
Prev: Re: dataAccess V4 Ca client propertyId questions Ralph Lange
Next: Re: More flexible record scanning Andrew Johnson
Index: 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: dataAccess V4 Ca client propertyId questions Marty Kraimer
Next: Re: dataAccess V4 Ca client propertyId questions Marty Kraimer
Index: 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·