EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  <20002001  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  1998  1999  <20002001  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: aao record behaviour
From: Marty Kraimer <[email protected]>
To: Korhonen Timo <[email protected]>
Cc: Eric Bjorklund <[email protected]>, [email protected]
Date: Wed, 03 May 2000 10:04:27 -0500
Korhonen Timo wrote:
> 
> Eric,
> 
> thank you for your reply and sorry for my late response.
> 
> On Mon, 1 May 2000, Eric Bjorklund wrote:

> I thought so, too. But looking at the waveform record, the get_array_info
> returns NORD and cvt_dbaddr returns NELM (in a dbAddr struct).
> 
> The Application Developers guide says for get_array_info: "This routine
> returns the current number of elements and the offset of the first value
> of the array." For cvt_dbaddr: "This routine can change any combination of
> the dbAddr fields...". What should be returned in the dbAddr->no_elements
> is not specified, but to me it looks like it should be NELM.
> 
> What should the correct behaviour be?


What causes the confusion is that old database access, which is what CA uses,
only knows how to handle the maximum number of elements.

The correct behavior is that  cvt_dbaddr sets no_elements = NELM, ie the size of
the allocated array and get_array_info returns NORD, i.e. the current actual
number of elements.

> > As I understand things now, record support needs to be the one allocating the
> > buffer space since the device-support record_initialization routine only
> > gets called during pass=1.  This particular bug has not been a problem for
> > us (yet), but I can see where it could be.  I'd be interested in seeing your
> > solution Marty.

My suggestion is to do the following.

Define the DSET to have one additional method, call it init_record_pass0, and
then let the record support init_record call it during pass 0. The device
support must allocate storage for the array when init_record_pass0 is called.

 
Marty Kraimer


Replies:
Re: aao record behaviour Eric Bjorklund
References:
Re: aao record behaviour Korhonen Timo

Navigate by Date:
Prev: Re: aao record behaviour Korhonen Timo
Next: Re: aao record behaviour Eric Bjorklund
Index: 1994  1995  1996  1997  1998  1999  <20002001  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: aao record behaviour Korhonen Timo
Next: Re: aao record behaviour Eric Bjorklund
Index: 1994  1995  1996  1997  1998  1999  <20002001  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 ·