EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  <19981999  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  Index 1994  1995  1996  1997  <19981999  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 
<== Date ==> <== Thread ==>

Subject: RE: EPICS r3.13 field VERS
From: [email protected] (Tim Mooney)
To: [email protected], [email protected], [email protected]
Date: Wed, 4 Feb 1998 17:21:48 -0600
I vote for a string version number (even though all the records I know of that already
have a .VERS field use Ned Arnold's float solution: integer part is major version number;
fractional part is minor version number).  Anybody who specifies a version string that
isn't lexically greater (as defined by strcmp()) than the previous version string would
get lots of mail.

One advantage of the string alternative is that it allows us to include the EPICS version
number.  (Few people know offhand that you can't use version 2.x of the motor record with
EPICS 3.13, or version 3.x with 3.12.)  The version strings 3.12.02:2.5 and 3.13.00:3.2,
though ugly as sin, convey quite a lot of useful information and are lexically in order
(as long as we never have 3.13.100).

Tim


> I suspect that storing the version in a record type specific string would result in too
> much flexibility. How will CA client applications determine if the version is greater
> than some number without making the string parsing code specific to the particular 
> record type.
> 
> I am still in favor of two integer pseudo fields for the version info. One for
> the major version number and one for the minor version number. This
> would require a slightly different API.
> 
> dbCreateRecordTypeAttribute (char *recordtype, char *name, unsigned DBF_type, void *value);
> 
> Jeff
> 
> On Wednesday, February 04, 1998 7:27 AM, Marty Kraimer [SMTP:[email protected]] wrote:
> > OK maybe we can have the best of both worlds.
> > 
> > How about this.
> > 
> > We keep the new DBR_CLASS_NAME request.
> > 
> > In addition the following is implemented:
> > 
> > A new database access routine is provided:
> > 
> > dbSetRecordTypeAttribute(char *recordtype,char *name,char *value);
> > 
> > For example:
> > 
> > dbSetRecordTypeAttribute("mySpecialRecordType","VERS","25.56.456")
> > 
> > Runtime Database access will automatically create attribute RTYP, e.g. 
> > 
> > dbSetRecordTypeAttribute("ai","RTYP","ai");
> > 
> > In addition dbNameToAddr (the routine called to locate records a
> > runtime)  will be modified as follows:
> > 
> > If the record is found but the field is not found then it checks to see
> > if the field name is one of the attribute names. If it is it makes a
> > "psuedo" field that looks like the following
> > 
> > 1) The field type is DBF_STRING
> > 2) It can not be changed, i.e. puts will fail.
> > 3) The value is the attribute value.
> > 
> > Since dbNameToAddr only does this in the case where it finds the record
> > but not the field, the overhead on an ioc is minimal.
> > 
> > Marty Kraimer
> > 
> > Jeff Hill wrote:
> > > 
> > > > >From the responses to the message I sent about RTYP there are objections
> > > > to implementing RTYP via a new DBR_type rather than a new field in each
> > > > record instance.
> > > >
> > > 
> > > There is nothing stopping us from having both a new DBR_xxx type and also a new
> > > pseudo field name which has storage in the record description, but not in the record
> > > instance. It appears that there are important uses for both interfaces to the
> > > system (i.e. links use the new field names, and general purpose clients that do not
> > > wish to break when the PV name syntax varies will use the new DBR_ type).
> > > 
> > > Jeff Hill
> > 
> > Chip WATSON wrote:
> > > 
> > > Marty,
> > > 
> > > Would it be possible to create a pseudo-field accessable via record.RTYP
> > > but which is in fact
> > > implemented in record type structures?  Specifically, when the channel
> > > access server locates
> > > the record, and discovers it does not have a field of that type, it
> > > could, before returning an error,
> > > check if the field name is one of the allowed pseudo-fields (RTYP, VERS,
> > > etc.).
> > > 
> > > Chip

Navigate by Date:
Prev: Re: processing on put to .VAL field William Lupton
Next: SOSH 98 Franck DI MAIO
Index: 1994  1995  1996  1997  <19981999  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: EPICS r3.13 field VERS Jeff Hill
Next: Re: EPICS r3.13 field VERS and RTYP Steve Lewis
Index: 1994  1995  1996  1997  <19981999  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 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·