EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  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  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: A question concerning rset->special()
From: Andrew Johnson <[email protected]>
To: [email protected]
Cc: [email protected]
Date: Wed, 06 Sep 2006 09:53:36 -0500
Benjamin Franksen wrote:

can the record support special() routine find out how many (array) elements have been resp. are going to be written (assuming SPC_MOD is set for the field and there is actually more than one element etc..)? And if yes, how?

No, the arguments to the rset->special() routine are the DBADDR for the field that is being written to, and the pass (0 before, 1 after the actual put operation).


However if there's more than one element in the buffer and the field is marked as special, immediately after calling rset->special() the rset->get_array_info() routine is called to get the offset value (for appending data to circular buffers), and after changing the array the rset->put_array_info() routine is also called to tell it how big the request was. Unfortunately this doesn't seem to provide any way to reject a put based on size if that's what you're trying to do.

The code that implements this is dbPut() in src/db/dbAccess.c which should be reasonably easy to follow.

- Andrew
--
There is considerable overlap between the intelligence of the smartest
bears and the dumbest tourists -- Yosemite National Park Ranger

Replies:
Re: A question concerning rset->special() Benjamin Franksen
References:
A question concerning rset->special() Benjamin Franksen

Navigate by Date:
Prev: Re: Device with INP as a PV_LINK Andrew Johnson
Next: Re: Device with INP as a PV_LINK Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: A question concerning rset->special() Benjamin Franksen
Next: Re: A question concerning rset->special() Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·