g+
g+ Communities
Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
<== Date ==> <== Thread ==>

Subject: Re: aSub, EFLG, and array length changes
From: Andrew Johnson <anj@aps.anl.gov>
To: tech-talk@aps.anl.gov, mdavidsaver@bnl.gov
Date: Tue, 2 Oct 2012 23:41:23 -0500
Hi Michael,

On 2012-10-02 Michael Davidsaver wrote:
> 
> I've come across an unexpected behavior with monitors on the VAL* fields
> of the aSub record.  It seems that the default is to post monitors only
> on change (EFLG="ON CHANGE").
> 
> Unfortunately, the calculation to determine if the value has changed
> doesn't work correctly in some cases.  The issue is that while the
> previous values are saved, the length of the previous values are not.
> So the comparison test uses the same length (NEV*) for VAL* and OVL*.
> Thus, if the change is that the array gets smaller, but the remaining
> values are unchanged, then no monitor is posted.

Good catch, you're right.  This wouldn't have been as noticeable before 
3.14.12 because the CA clients had to monitor the NEV* field separately to get 
the data length anyway.

> The obvious solution is to add another set of fields to track the number
> of element in the old value.  Does this seem reasonable?  Also, how to
> express "the number of element in OVLA" in 4 characters or less?

ONV* (you're storing the Old value of the NEV* fields, and the E is 
superfluous to the name).

This is a bug fix, so please work on the 3.14 branch if possible.

Thanks,

- Andrew
-- 
Never interrupt your enemy when he is making a mistake.
-- Napoleon Bonaparte

References:
aSub, EFLG, and array length changes Michael Davidsaver

Navigate by Date:
Prev: Re: caget -c Andrew Johnson
Next: Author Error message runtests Ahed Aladwan
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
Navigate by Thread:
Prev: aSub, EFLG, and array length changes Michael Davidsaver
Next: caget -c J. Lewis Muir
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·