Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: Incorrect get_precision
From: "Schoeneburg, Bernd" <bernd.schoeneburg@desy.de>
To: tech-talk <tech-talk@aps.anl.gov>
Date: Mon, 19 Oct 2009 11:38:45 +0200
Hi all,
I found that the get_precision function is not correct in the following records:
- calc
- calcout
- dfanout

My change in the calc record (3.14.10) (similar for others):
163,167c163,167
<     if (paddr->pfield == (void *)&pcalc->val) {
<       *pprecision = pcalc->prec;
<     } else {
<       recGblGetPrec(paddr, pprecision);
<     }
---
>     *pprecision = pcalc->prec;
>     if (paddr->pfield == (void *)&pcalc->val)
>       return 0;
>
>     recGblGetPrec(paddr, pprecision);


The function recGblGetPrec does only limit the precision to [0,15] if the type is float or double. Setting is done only for integer types. The result of the old code was a zero-precision display of non-VAL fields. This change is necessary for Epics 3.14.11, too.

- Bernd

Navigate by Date:
Prev: Re: StripTool build errors: SDDS.h? Janet
Next: Bug in asyn 4-7 and up ?? Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: RE: asyn messages Mark Rivers
Next: Bug in asyn 4-7 and up ?? Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·