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: Andrew Johnson <[email protected]>
To: EPICS tech-talk <[email protected]>
Date: Fri, 17 Aug 2001 14:08:55 -0500
Benjamin Franksen wrote:
> 
> The only solution I can think of: in case LINR == SLOPE, record support
> has to save the values of ESLO and EOFF and reinstall them after
> dset->init_record has been called. Yes, it's ugly.

Oooh, well spotted, I missed that bit...

> With the wisdom of hindsight it was of course a bad idea not to keep
> device support operations orthogonal. The initializing call to
> dset->special_linconv should be done from the record support rather than
> device support.

Agreed, but given the large number of device support that exists for ai
and ao there's no way we could change that in the existing record types. 
Your idea above of saving and restoring ESLO and EOFF will have to do for
SLOPE conversions in 3.14.

For 3.13 I've done the following:
1. Made ESLO and EOFF configurable in the a*Record.dbd files.
2. Removed special_linconv() from devAiSoftRaw.c and devAoSoftRaw.c
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
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

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
6. In init_record() save the EOFF and ESLO values before calling
pdset->init_record(), and restore them immediately afterwards if
LINR=SLOPE

That adds SLOPE conversions for all other analog device types in 3.14.


Any more comments from anyone before I test and commit all this stuff?

- Andrew
-- 
The world is such a cheerful place when viewed from upside-down
It makes a rise of every fall, a smile of every frown


Replies:
Re: RAWF, RAWL Benjamin Franksen
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

Navigate by Date:
Prev: Re: RAWF, RAWL Marty Kraimer
Next: Re: RAWF, RAWL Benjamin Franksen
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 Marty Kraimer
Next: Re: RAWF, RAWL Benjamin Franksen
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 ·