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: dataAccess V4 Ca client propertyId questions
From: Marty Kraimer <[email protected]>
To: [email protected]
Date: Mon, 27 Jun 2005 11:02:48 -0500
I thought about CA client examples, In particular the following two examples:

a client wants to read a double value and displayLimits where displayLimits is assumed to have well known propertyIds.

The second example is a V4 version of probe, i.e. given a pvname display it's propertyIds and the values of the properties.

For the first example part of the implementation is the property catalog implementation. This will be the propertyCatalog passed to a read request. It will be used to put values into my container

class ValueDisplayLimits: public propertyCatalog {
    double value;
    displayLimits limits;
    bool   valueModified;
    void traverse (dataViewer &viewer) {
        viewer.reveal(properIdPrimitiveValue,value);
        viewer.reveal(properIdDisplayLimits,limits);
    };
    void traverse (datasManipulator &manipulator) {
        double saveValue = value;
        valueModified = false;
        manipulator.reveal(properIdPrimitiveValue,value);
        manipulator.reveal(properIdDisplayLimits,limits);
        if(saveValue!=value) valueModified = true;
    };
};

I will leave out the calls to the CA client library, since my questions are about propertyIds.

My questions relate to the arguments passed to the reveal methods.
The two arguments are:

propertyId - something created or located via a character string
objref - a reference to one of the following: primitive type (char,short, double,etc), string segment, array segment, or a propertyCatalog

Now for some questions

In my example code I assumed that displayLimits has well known propertyIds.
What about the double value?

I just made up the name propertytIdPrimitiveValue. What should it be?
The more general question is

For a generic tool that knows how to handle primitive data types how does it get a propertyId?
It seems that there must be well defined propertyIds for this.

Is the string "primitive value" what we want?
Do we also have "string segment" and "array segment"?
What about the properIds for a propertyCatalog? Do we have "property catalog"?

Now for questions about developing a V4 version of probe. I assume that it is just given a pvname

How does it get started, i.e. how does it know how to find properties associated with the pvname?

Can it ask for a list of properrtyIds?
If so do we have a standard set of propertyIds via which this list can be obtained?

Given a list of propertyIds how does it obtain the information associated with each id?

I can guess that one way this could be implemented is via a dataViewer.
It could work like the following:

Ca accepts a request to get data associated with a propertyId. Instead of putting it into a caller provided container via the caller supplied propertyCatalog, CA would make the data available via the caller supplied dataViewer. Does the proposed CA V4 interface allow this?

It would be nice if it was possible to find out info about a propertyId without needed to request the data associated with the propertId, Things like: isPrimitive, isStringSegment, isArraySegment, isPropertyCatalog.

If it is primitive, it would be nice to know the exact type.

Thus should introspection of all dataAccess propertyIds be available?

Marty






Replies:
Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir
Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir

Navigate by Date:
Prev: Re: V4 design issue: Should primitive data types have well defined precisions? Kay-Uwe Kasemir
Next: Re: V4 design issue: Should primitive data types have well defined precisions? Ralph Lange
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: Interesting reading material Benjamin Franksen
Next: Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir
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 ·