EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  <20012002  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  1998  1999  2000  <20012002  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: RAWF, RAWL
From: Benjamin Franksen <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: EPICS tech-talk <[email protected]>
Date: Mon, 20 Aug 2001 13:29:58 +0200
Andrew Johnson wrote:
> 
> Any more comments from anyone before I test and commit all this stuff?

Only a few:

> 3. Changed a*Record.c in both init_record() so that EOFF is only set to
> EGUL if LINR=LINEAR and a pdset->special_linconv() routine exists

Problem: Must do that also if LINR=LINEAR but pdset->special_linconv()
does not exist. There might be device supports without special_linconv
and applications that nevertheless rely on EOFF being set if
LINR=LINEAR. Compatibility wouldn't be complete without retaining this
behavior.

> 4. Change the special() routines to only do the following if LINR=LINEAR
> and a special_linconv() routine exists:
>    a) Save EOFF and ESLO values for checks below
>    b) Set EOFF=EGUL and call pdset->special_linconv()
>    c) Call db_post_events(EOFF) if the EOFF value was changed
>    d) Call db_post_events(ESLO) if the ESLO value was changed

See above (Set EOFF=EGUL also if pdset->special_linconv() does not
exist).

This should not be changed before 3.14.

> That should be sufficient to make Soft Raw support useful in the next 3.13
> release.
> 
> For 3.14, I've added the following as well as doing all the above:
> 5. Add a SLOPE state to the menuConvert.dbd

Don't forget to extend menuLinr.dbd too.

I've been thinking about the most harmless position of the new choice
SLOPE, before or after LINEAR. After LINEAR would be best for
applications that assume LINEAR==1. On the other hand, applications that
assume breaktable names start after LINEAR would be better off if we
place it before LINEAR. Since the latter assumption is better style than
the first, I'd vote to put SLOPE before LINEAR.

Both problems could have been avoided with clean programming. Using
constant LINEAR (or better yet, menuConvertLINEAR) instead of '1' would
have solved the first problem. Comparison with the number of choices
(available via dbGetNMenuChoices) contained in menuLinr could have
solved the second one, i.e. the question where breaktable indexes start.

We should place a warning with lots of exclamation marks in the release
notes (and in the Developer's Guide), never to rely on numerical values
of menu type enumerations nor to assume a certain order of the choices
or a certain maximum number of choices. For the latter, static database
access routines should be used.

Ben
-- 
Berliner Elektronenspeicherring-Gesellschaft für Synchrotronstrahlung
(BESSY) GmbH, Control System Group
Albert-Einstein-Straße 15, 12489 Berlin, +4930 6392 8462, www.bessy.de


Replies:
Re: RAWF, RAWL Andrew Johnson
References:
RE: RAWF, RAWL Redman, Russell O.
Re: RAWF, RAWL Marty Kraimer
Re: RAWF, RAWL Benjamin Franksen
Re: RAWF, RAWL Marty Kraimer
Re: RAWF, RAWL Andrew Johnson
Re: RAWF, RAWL Benjamin Franksen
Re: RAWF, RAWL Andrew Johnson
Re: RAWF, RAWL Benjamin Franksen
Re: RAWF, RAWL Andrew Johnson
Re: RAWF, RAWL Benjamin Franksen
Re: RAWF, RAWL Andrew Johnson

Navigate by Date:
Prev: Re: RAWF, RAWL Andrew Johnson
Next: Re: RAWF, RAWL Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  <20012002  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: RAWF, RAWL Andrew Johnson
Next: Re: RAWF, RAWL Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  <20012002  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 ·