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

Subject: ADCore R3-14 released
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Sun, 1 Dec 2024 23:08:34 +0000

Folks,

 

ADCore R3-14 is available.  The top-level areaDetector repository is also tagged with R3-14.

 

These are the ADCore release notes.

 

asynNDArrayDriver and NDPluginBase.template

  • Added support for pre-allocating NDArrays. This is useful for preventing dropped frames on high-speed cameras because of the finite time required for the operating system to allocate memory. If a camera is acquiring at high speed and NDArrays are allocated on demand to fill plugin buffers during acquisition then the driver can drop frames during an initial acquisition. By pre-allocating frames into the NDArrayPool free list this problem can be avoided. There are 2 new records in NDArrayBase.template.
    • NumPreAllocBuffers The number of buffer to pre-allocate.
    • PreAllocBuffers Processing this record does the pre-allocation.

The pre-allocation operation can be time-consuming if a large amount of memory (e.g. 128 GB) is being allocated. The PoolUsedBuffers, PoolAllocBuffers and PoolUsedMem records are updated during this process so the progress is visible on the detector OPI screen in the Buffers sub-screen. PreAllocBuffers is a busy record so clients can determine when the process is complete by using ca_put_callback. This feature requires the following:

    • The driver must have collected at least one frame using the current dimensions and data type.
    • The driver must store the most recent NDArray in this->pArrays[0]. Most drivers already do this, but some will need to be updated to implement this.

If either of these conditions are not met then there will be an error message saying "ERROR, must collect an array to get dimensions first".

  • Changed how the NDArrayPool statistics records (PoolAllocBuffers, etc.) are scanned. They were previously only periodically scanned, with PoolUsedMem scanning periodically and the other records processing via FLNK fields. This has changed so that a new record, PoolPollStats is periodically scanned, and the other records are I/O Intr scanned. This allows these records to be updated during the pre-allocation operation described above. PoolPollStats causes callbacks for the I/O Intr scanned records in asynNDArrayDriver.

NDPluginFile

  • Improved the feedback on progress when saving a file in Capture mode. Previously the only indication that the file saving was in progress was the status of the WriteFile_RBV PV. There was no indication of how many arrays remained to be written to the file, or how many arrays/second were being written. This was changed to add the following progress indicators:
    • ExecutionTime_RBV is updated with the time to write each array.
    • ArrayCounter_RBV is incremented as each array is written.
    • ArrayRate_RBV is updated, so the number of frames/s being written is visible.
    • NumCaptured_RBV counts down from NumCaptured to 0, so the number of remaining frames is visible.

NDFileTIFF

  • Fixed a bug introduced in R3-8.
    Integer attributes smaller than Int64 might not be correctly written to the file.

NDPluginROIStat

  • Added the ability to clear the time series data without starting a new acquisition.

myAttributeFunctions.cpp

  • Added code to create NDAttributes of all numeric data types.
  • These were used to test the fix to NDFileTIFF, and can be generally useful.

Documentation

  • Removed the documentation/ directory, which was obsolete.

 

 

Home: https://github.com/areaDetector/ADCore

Documentation: https://areadetector.github.io/areaDetector/

 

Mark

 


Navigate by Date:
Prev: asyn R4-45 released Mark Rivers via Tech-talk
Next: RAS V6.0.0 Duckitt, WD, Dr [wdduckitt--- via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025 
Navigate by Thread:
Prev: asyn R4-45 released Mark Rivers via Tech-talk
Next: RAS V6.0.0 Duckitt, WD, Dr [wdduckitt--- via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025 
ANJ, 02 Dec 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·