From 26cea5df587f9fa082d01abde93ad4b5dacec0a5 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Wed, 4 Jun 2025 16:14:00 -0300 Subject: [PATCH 01/14] Document the correct record name for compression size Since the compression size record from NDArray template was first documented in 070e7e1c (Documented NDCodec and NDCompressedSize; reformatted with VS2010, 2018-12-13), it mistakenly missed part of the PV name, turning CompressedSize_RBV into Compressed_RBV. Properly document its actual name. --- docs/ADCore/NDArray.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ADCore/NDArray.rst b/docs/ADCore/NDArray.rst index 588d98f06..b5e285369 100644 --- a/docs/ADCore/NDArray.rst +++ b/docs/ADCore/NDArray.rst @@ -479,7 +479,7 @@ loading ADBase.template. - Compressed size of the array data in bytes. Only meaningful if NDCodec is not empty string. - COMPRESSED_SIZE - - $(P)$(R)Compressed_RBV + - $(P)$(R)CompressedSize_RBV - longin * - - From e98068a095397099dbc98ba9ca17e6bfa3d4f9a9 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Wed, 4 Jun 2025 17:01:25 -0300 Subject: [PATCH 02/14] Document NumPreAllocBuffers readback record This record is available since commit 06fd36a5 (New records to support changes to asynNDArrayDriver, 2024-03-24), but it wasn't documented by then. Add it along with its counterpart in the NDArray documentation table. Fixes: 7309a577 (Document new NumPreAllocBuffers, PreAllocBuffer, and PoolPollStats records, 2024-03-25) --- docs/ADCore/NDArray.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ADCore/NDArray.rst b/docs/ADCore/NDArray.rst index b5e285369..6b6a4d34b 100644 --- a/docs/ADCore/NDArray.rst +++ b/docs/ADCore/NDArray.rst @@ -614,8 +614,8 @@ loading ADBase.template. The value of this record must be set with caution, because too large a value could use all memory on the system, resulting serious performance degradation. - POOL_NUM_PRE_ALLOC_BUFFERS - - $(P)$(R)NumPreAllocBuffers - - longout + - $(P)$(R)NumPreAllocBuffers, $(P)$(R)NumPreAllocBuffers_RBV + - longout, longin * - NDPoolPreAllocBuffers - asynInt32 - r/w From abac9bce5dcb40ee9d8fa39a1ca86f4367260d5c Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Thu, 5 Jun 2025 09:34:44 -0300 Subject: [PATCH 03/14] Document the correct record name for actual temperature This record has always been named TemperatureActual [1], but its documentation contained a typo when first written. Fix that. [1] 4f4c6c7a (Added TemperatureActual record, 2012-01-31) Fixes: d3d9982e (Added ADTemperatureActual, 2012-10-01) --- docs/ADCore/ADDriver.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ADCore/ADDriver.rst b/docs/ADCore/ADDriver.rst index e9ab2d52c..088aebe7a 100644 --- a/docs/ADCore/ADDriver.rst +++ b/docs/ADCore/ADDriver.rst @@ -57,7 +57,7 @@ possible. - r/o - Actual detector temperature - TEMPERATURE_ACTUAL - - $(P)$(R)Temperature_Actual + - $(P)$(R)TemperatureActual - ai * - - From 91e1edd8954f0aadbdc39cd64771f7676c520289 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Thu, 5 Jun 2025 14:20:38 -0300 Subject: [PATCH 04/14] Document unique id and time stamp records These records have been implemented for a long time [1], but aren't documented for end-users. Place them in the record table in a dedicated section, reflecting the structure used in the source database template. Describe both time stamp second and nanosecond in more depth, in an attempt to make it clearer how to interpret them. [1] 8bcf59c5 (Added dimensions, uniqueId and TimeStamp, 2008-04-29) --- docs/ADCore/NDArray.rst | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/ADCore/NDArray.rst b/docs/ADCore/NDArray.rst index 6b6a4d34b..a2bd5113e 100644 --- a/docs/ADCore/NDArray.rst +++ b/docs/ADCore/NDArray.rst @@ -409,6 +409,41 @@ loading ADBase.template. - BAYER_PATTERN - $(P)$(R)BayerPattern_RBV - mbbi + * - + - + - + - **Unique ID and time stamps of the array** + * - NDUniqueId + - asynInt32 + - r/o + - Unique ID number of array assigned by the EPICS driver. + - UNIQUE_ID + - $(P)$(R)UniqueId_RBV + - longin + * - NDTimeStamp + - asynFloat64 + - r/o + - Time stamp of array. + - TIME_STAMP + - $(P)$(R)TimeStamp_RBV + - ai + * - NDEpicsTSSec + - asynInt32 + - r/o + - Seconds past epoch time stamp of array assigned by the EPICS driver. It + is based on the EPICS epoch. + - EPICS_TS_SEC + - $(P)$(R)EpicsTSSec_RBV + - longin + * - NDEpicsTSNsec + - asynInt32 + - r/o + - Nanoseconds time stamp fraction of the EPICS time stamp. It should be + composed with $(P)$(R)EpicsTSSec_RBV to get the final time stamp with + nanosecond resolution. + - EPICS_TS_NSEC + - $(P)$(R)EpicsTSNsec_RBV + - longin * - - - From 3438dc3cc96f27e45a796724ab0d65760192bc7d Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 15:13:27 -0300 Subject: [PATCH 05/14] Drop commented out XMLPath record from HDF5 plugin After b9b26f02 (Improved XML error handling and fixed bug on file close., 2014-01-24), we no longer need the XMLPath record, as XMLFileName supports the whole path. As there is no future need for this record, simply drop this dead record from the database entirely. Because this is version controlled, there is always the possibility of taking it back if needed. --- ADApp/Db/NDFileHDF5.template | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/ADApp/Db/NDFileHDF5.template b/ADApp/Db/NDFileHDF5.template index 6183c094b..dcf4fb083 100644 --- a/ADApp/Db/NDFileHDF5.template +++ b/ADApp/Db/NDFileHDF5.template @@ -813,17 +813,6 @@ record(bi, "$(P)$(R)DimAttDatasets_RBV") field(SCAN, "I/O Intr") } -# File path. -# % autosave 2 -#record(waveform, "$(P)$(R)XMLPath") -#{ -# field(PINI, "YES") -# field(DTYP, "asynOctetWrite") -# field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutDirectory") -# field(FTVL, "CHAR") -# field(NELM, "256") -#} - record(waveform, "$(P)$(R)XMLErrorMsg_RBV") { field(DTYP, "asynOctetRead") From 81fff8ca34ef53fbd240e1a6250b2ad2976154c8 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 14:42:57 -0300 Subject: [PATCH 06/14] Document correct record names for write status Both the error status and its message don't contain the "File" prefix in their names, although their corresponding asyn parameter IDs are held by variables that do. Properly document their names. --- docs/ADCore/NDArray.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ADCore/NDArray.rst b/docs/ADCore/NDArray.rst index a2bd5113e..c9b7d2a5c 100644 --- a/docs/ADCore/NDArray.rst +++ b/docs/ADCore/NDArray.rst @@ -808,7 +808,7 @@ loading ADBase.template. - File write status. Gives status information on last file open or file write operation. Values are WriteOK (0) and WriteError (1). - WRITE_STATUS - - $(P)$(R)FileWriteStatus + - $(P)$(R)WriteStatus - mbbi * - NDFileWriteMessage - asynOctet @@ -816,7 +816,7 @@ loading ADBase.template. - File write error message. An error message string if the previous file open or file write operation resulted in an error. - WRITE_MESSAGE - - $(P)$(R)FileWriteMessage + - $(P)$(R)WriteMessage - waveform * - NDFileCapture - asynInt32 From 890fec35f59e3fb25427573b042cd41f97cd8ec8 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 14:59:03 -0300 Subject: [PATCH 07/14] Document correct record name for HDF5 writing run time Because record names are case-sensitive, it matters that the 'T' is uppercase. Correct this subtlety in the documented record table. --- docs/ADCore/NDFileHDF5.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index 826020327..db4c17884 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -924,7 +924,7 @@ Parameters and Records - r/o - Total runtime in seconds from first frame to file closed - HDF5_totalRuntime - - $(P)$(R)Runtime + - $(P)$(R)RunTime - ai * - asynFloat64 - r/o From 4091937fba46e9f62763784cd2e942b5c0416935 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 15:03:32 -0300 Subject: [PATCH 08/14] Document correct record name for NumExtraDims readback The readback PV doesn't have the same name as the set-point. Fix that adding its _RBV suffix. --- docs/ADCore/NDFileHDF5.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index db4c17884..e1af1dc42 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -723,7 +723,7 @@ Parameters and Records - r/w - Number of extra dimensions [0..9] - HDF5_nExtraDims - - $(P)$(R)NumExtraDims, $(P)$(R)NumExtraDims + - $(P)$(R)NumExtraDims, $(P)$(R)NumExtraDims_RBV - mbbo, mbbi * - asynInt32 - r/w From 2ababafaf3bb2b8b1731e63e158152e652db6639 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 15:06:58 -0300 Subject: [PATCH 09/14] Document correct record name for SWMR mode readback There is a hard to spot typo in the Single Writer Multiple Reader initials. Fix that. --- docs/ADCore/NDFileHDF5.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index e1af1dc42..c1b91ab66 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -677,7 +677,7 @@ Parameters and Records - Turn on or off SWMR mode for the next acquisition (1 = On, 0 = Off). Turning on will only work if SWMR mode is supported. - HDF5_SWMRMode - - $(P)$(R)SWMRMode, $(P)$(R)SMWRMode_RBV + - $(P)$(R)SWMRMode, $(P)$(R)SWMRMode_RBV - bo, bi * - asynInt32 - r/o From 96db85a9501c06e34978f1712f5fcf285bb188f0 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 17:02:17 -0300 Subject: [PATCH 10/14] Document HDF5 dataset fill value record This record is available since 7a0d0176 (Added fillValue parameter to the HDF5 file writer., 2015-09-22), but it was never properly documented. Document it under the metadata section as it is basically metadata regarding the default value the readers should read when no value is directly defined. This has been documented based on the corresponding explanation from the HDF5 library function [1] that uses this value, that is, H5Pset_fill_value(). [1] https://support.hdfgroup.org/documentation/hdf5/latest/group___d_c_p_l.html --- docs/ADCore/NDFileHDF5.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index c1b91ab66..46d4919e3 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -662,6 +662,12 @@ Parameters and Records - HDF5_dimAttDatasets - $(P)$(R)DimAttDatasets, $(P)$(R)DimAttDatasets_RBV - bo, bi + * - asynFloat64 + - r/w + - Fill value for the dataset to be set in its creation property list. + - HDF5_fillValue + - $(P)$(R)FillValue, $(P)$(R)FillValue_RBV + - ao, ai * - - - **SWMR** From c046248c960559387a4158053917fd9d8fbe42e3 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 16:36:46 -0300 Subject: [PATCH 11/14] Deduplicate indexed record entries in the HDF5 docs There are multiple PVs that are instantiated up to 9 dimensions. Instead of listing them exhaustively, document them once with an N variable as done with NDArraySize parameter. This makes the documentation less bloated and easier to add more such PVs in a concise and less error-prone way. Improving the way such collapsed table entries are documented is out-of-the-scope of this patch, and it will be dealt with in future changes. While here, correct "posIndexDim" record names to use uppercase 'P'. --- docs/ADCore/NDFileHDF5.rst | 130 ++++--------------------------------- 1 file changed, 11 insertions(+), 119 deletions(-) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index 46d4919e3..4bf2b5a78 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -751,45 +751,9 @@ Parameters and Records - longout, longin * - asynInt32 - r/w - - Size of extra dimension 3 - - HDF5_extraDimSize3 - - $(P)$(R)ExtraDimSize3, $(P)$(R)ExtraDimSize3_RBV - - longout, longin - * - asynInt32 - - r/w - - Size of extra dimension 4 - - HDF5_extraDimSize4 - - $(P)$(R)ExtraDimSize4, $(P)$(R)ExtraDimSize4_RBV - - longout, longin - * - asynInt32 - - r/w - - Size of extra dimension 5 - - HDF5_extraDimSize5 - - $(P)$(R)ExtraDimSize5, $(P)$(R)ExtraDimSize5_RBV - - longout, longin - * - asynInt32 - - r/w - - Size of extra dimension 6 - - HDF5_extraDimSize6 - - $(P)$(R)ExtraDimSize6, $(P)$(R)ExtraDimSize6_RBV - - longout, longin - * - asynInt32 - - r/w - - Size of extra dimension 7 - - HDF5_extraDimSize7 - - $(P)$(R)ExtraDimSize7, $(P)$(R)ExtraDimSize7_RBV - - longout, longin - * - asynInt32 - - r/w - - Size of extra dimension 8 - - HDF5_extraDimSize8 - - $(P)$(R)ExtraDimSize8, $(P)$(R)ExtraDimSize8_RBV - - longout, longin - * - asynInt32 - - r/w - - Size of extra dimension 9 - - HDF5_extraDimSize9 - - $(P)$(R)ExtraDimSize9, $(P)$(R)ExtraDimSize9_RBV + - Size of the N'th extra dimension, for N in [3..9] + - HDF5_extraDimSize[N] + - $(P)$(R)ExtraDimSize[N], $(P)$(R)ExtraDimSize[N]_RBV - longout, longin * - - @@ -820,45 +784,9 @@ Parameters and Records - stringout, stringin * - asynOctet - r/w - - Specify the NDAttribute name for the 3rd index - - HDF5_posNameDim3 - - $(P)$(R)PosNameDim3, $(P)$(R)PosNameDim3_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute name for the 4th index - - HDF5_posNameDim4 - - $(P)$(R)PosNameDim4, $(P)$(R)PosNameDim4_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute name for the 5th index - - HDF5_posNameDim5 - - $(P)$(R)PosNameDim5, $(P)$(R)PosNameDim5_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute name for the 6th index - - HDF5_posNameDim6 - - $(P)$(R)PosNameDim6, $(P)$(R)PosNameDim6_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute name for the 7th index - - HDF5_posNameDim7 - - $(P)$(R)PosNameDim7, $(P)$(R)PosNameDim7_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute name for the 8th index - - HDF5_posNameDim8 - - $(P)$(R)PosNameDim8, $(P)$(R)PosNameDim8_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute name for the 9th index - - HDF5_posNameDim9 - - $(P)$(R)PosNameDim9, $(P)$(R)PosNameDim9_RBV + - Specify the NDAttribute name for the N'th index, for N in [3..9] + - HDF5_posNameDim[N] + - $(P)$(R)PosNameDim[N], $(P)$(R)PosNameDim[N]_RBV - stringout, stringin * - - @@ -873,55 +801,19 @@ Parameters and Records - r/w - Specify the NDAttribute index for the X dimension - HDF5_posIndexDimX - - $(P)$(R)posIndexDimX, $(P)$(R)posIndexDimX_RBV + - $(P)$(R)PosIndexDimX, $(P)$(R)PosIndexDimX_RBV - stringout, stringin * - asynOctet - r/w - Specify the NDAttribute index for the Y dimension - HDF5_posIndexDimY - - $(P)$(R)posIndexDimY, $(P)$(R)posIndexDimY_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute index for the 3rd dimension - - HDF5_posIndexDim3 - - $(P)$(R)posIndexDim3, $(P)$(R)posIndexDim3_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute index for the 4th dimension - - HDF5_posIndexDim4 - - $(P)$(R)posIndexDim4, $(P)$(R)posIndexDim4_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute index for the 5th dimension - - HDF5_posIndexDim5 - - $(P)$(R)posIndexDim5, $(P)$(R)posIndexDim5_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute index for the 6th dimension - - HDF5_posIndexDim6 - - $(P)$(R)posIndexDim6, $(P)$(R)posIndexDim6_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute index for the 7th dimension - - HDF5_posIndexDim7 - - $(P)$(R)posIndexDim7, $(P)$(R)posIndexDim7_RBV - - stringout, stringin - * - asynOctet - - r/w - - Specify the NDAttribute index for the 8th dimension - - HDF5_posIndexDim8 - - $(P)$(R)posIndexDim8, $(P)$(R)posIndexDim8_RBV + - $(P)$(R)PosIndexDimY, $(P)$(R)PosIndexDimY_RBV - stringout, stringin * - asynOctet - r/w - - Specify the NDAttribute index for the 9th dimension - - HDF5_posIndexDim9 - - $(P)$(R)posIndexDim9, $(P)$(R)posIndexDim9_RBV + - Specify the NDAttribute index for the N'th dimension, for N in [3..9] + - HDF5_posIndexDim[N] + - $(P)$(R)PosIndexDim[N], $(P)$(R)PosIndexDim[N]_RBV - stringout, stringin * - - From 3e1e7385d84385ee471a308ea9dfe9bc7b734350 Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Tue, 1 Jul 2025 18:50:18 -0300 Subject: [PATCH 12/14] Standardize the way numbered record names are documented Some records are named after a fixed number of dimensions or items, and therefore can be collectively documented. To collapse its name while keeping the information of where the instance number goes, we use square brackets with the variable N. However, the way the ranges are specified is inconsistent, and how the user should interpret the brackets substitution is undocumented. Moreover, we use the variable N for this context, but there are also PVs with references to such variable name as well, making it even more confusing for a newcomer. Change that by standardizing on using angle brackets to specify the instance number, making consistently documented in the entry description. To avoid confusion with variables names, use K instead of N, and provide an example for each record of an expanded record name, in order to make sure that readers will correctly drop the brackets characters. Because NDPluginGather substitutes its instance number based on the environment variable, properly annotate it as such. In this case, the range is user-defined, and it is already documented in the description. --- docs/ADCore/NDArray.rst | 7 ++++--- docs/ADCore/NDFileHDF5.rst | 26 ++++++++++++++++---------- docs/ADCore/NDPluginGather.rst | 4 ++-- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/docs/ADCore/NDArray.rst b/docs/ADCore/NDArray.rst index c9b7d2a5c..f37184a76 100644 --- a/docs/ADCore/NDArray.rst +++ b/docs/ADCore/NDArray.rst @@ -465,13 +465,14 @@ loading ADBase.template. * - N.A. - N.A - r/o - - Size of each array dimension, extracted from the $(P)$(R)Dimensions and $(P)$(R)Dimensions_RBV + - Size of each array dimension K in [0..9], extracted from the $(P)$(R)Dimensions and $(P)$(R)Dimensions_RBV waveform records. Note that these are both longin record, i.e. readonly values using subarray records. In the future longout records may be added to write to the individual values in $(P)$(R)Dimensions. - N.A. - - $(P)$(R)ArraySize[N] N=0-9 - , (P)$(R)ArraySize[N]_RBV + - $(P)$(R)ArraySize, $(P)$(R)ArraySize_RBV + + E.g. $(P)$(R)ArraySize0_RBV - longin, longin * - NDArraySizeX - asynInt32 diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index 4bf2b5a78..ca21992b4 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -751,9 +751,11 @@ Parameters and Records - longout, longin * - asynInt32 - r/w - - Size of the N'th extra dimension, for N in [3..9] - - HDF5_extraDimSize[N] - - $(P)$(R)ExtraDimSize[N], $(P)$(R)ExtraDimSize[N]_RBV + - Size of the K'th extra dimension, for K in [3..9] + - HDF5_extraDimSize + - $(P)$(R)ExtraDimSize, $(P)$(R)ExtraDimSize_RBV + + E.g. $(P)$(R)ExtraDimSize3_RBV - longout, longin * - - @@ -784,9 +786,11 @@ Parameters and Records - stringout, stringin * - asynOctet - r/w - - Specify the NDAttribute name for the N'th index, for N in [3..9] - - HDF5_posNameDim[N] - - $(P)$(R)PosNameDim[N], $(P)$(R)PosNameDim[N]_RBV + - Specify the NDAttribute name for the K'th index, for K in [3..9] + - HDF5_posNameDim + - $(P)$(R)PosNameDim, $(P)$(R)PosNameDim_RBV + + E.g. $(P)$(R)PosNameDim5 - stringout, stringin * - - @@ -797,7 +801,7 @@ Parameters and Records - HDF5_posIndexDimN - $(P)$(R)PosIndexDimN, $(P)$(R)PosIndexDimN_RBV - stringout, stringin - * - asynOctet + * - asynOcte9 - r/w - Specify the NDAttribute index for the X dimension - HDF5_posIndexDimX @@ -811,9 +815,11 @@ Parameters and Records - stringout, stringin * - asynOctet - r/w - - Specify the NDAttribute index for the N'th dimension, for N in [3..9] - - HDF5_posIndexDim[N] - - $(P)$(R)PosIndexDim[N], $(P)$(R)PosIndexDim[N]_RBV + - Specify the NDAttribute index for the K'th dimension, for K in [3..9] + - HDF5_posIndexDim + - $(P)$(R)PosIndexDim, $(P)$(R)PosIndexDim_RBV + + E.g. $(P)$(R)PosIndexDim9_RBV - stringout, stringin * - - diff --git a/docs/ADCore/NDPluginGather.rst b/docs/ADCore/NDPluginGather.rst index e553c559d..392d446f4 100644 --- a/docs/ADCore/NDPluginGather.rst +++ b/docs/ADCore/NDPluginGather.rst @@ -73,7 +73,7 @@ split into 2 lines, but these are just a single name, for example There can be more than one such input port. The maximum is number is specified in the NDGatherConfigure command in the startup script. - NDARRAY_PORT - - $(P)$(R)NDArrayPort_[N], (P)$(R)NDArrayPort_[N]_RBV + - $(P)$(R)NDArrayPort_$(N), (P)$(R)NDArrayPort_$(N)_RBV - stringout, stringin * - NDPluginDriver |br| ArrayAddr @@ -84,7 +84,7 @@ split into 2 lines, but these are just a single name, for example in the NDArray driver. There can be more than one such input port. The maximum is number is specified in the NDGatherConfigure command in the startup script. - NDARRAY_ADDR - - $(P)$(R)NDArrayAddress_[N], $(P)$(R)NDArrayAddress_[N]_RBV + - $(P)$(R)NDArrayAddress_$(N), $(P)$(R)NDArrayAddress_$(N)_RBV - longout, longin Configuration From 59c6fa78bc5a889f71401bc41d3f7ccafe3ea5da Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 17:44:00 -0300 Subject: [PATCH 13/14] Document HDF5 plugin extra dimension name records Document them close to their dimension size related records, so that it is easier to follow the documentation, and to follow their placement in the database template file. --- docs/ADCore/NDFileHDF5.rst | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index ca21992b4..adf0cb844 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -737,18 +737,36 @@ Parameters and Records - HDF5_extraDimSizeN - $(P)$(R)ExtraDimSizeN, $(P)$(R)ExtraDimSizeN_RBV - + * - asynOctet + - r/o + - HDF5_extraDimNameN + - Name of extra dimension N + - $(P)$(R)ExtraDimNameN_RBV + - stringin * - asynInt32 - r/w - Size of extra dimension X - HDF5_extraDimSizeX - $(P)$(R)ExtraDimSizeX, $(P)$(R)ExtraDimSizeX_RBV - longout, longin + * - asynOctet + - r/o + - Name of extra dimension X + - HDF5_extraDimNameX + - $(P)$(R)ExtraDimNameX_RBV + - stringin * - asynInt32 - r/w - Size of extra dimension Y - HDF5_extraDimSizeY - $(P)$(R)ExtraDimSizeY, $(P)$(R)ExtraDimSizeY_RBV - longout, longin + * - asynOctet + - r/o + - Name of extra dimension Y + - HDF5_extraDimNameY + - $(P)$(R)ExtraDimNameY_RBV + - stringin * - asynInt32 - r/w - Size of the K'th extra dimension, for K in [3..9] @@ -757,6 +775,14 @@ Parameters and Records E.g. $(P)$(R)ExtraDimSize3_RBV - longout, longin + * - asynOctet + - r/o + - Name of the K'th extra dimension, for K in [3..9] + - HDF5_extraDimName + - $(P)$(R)ExtraDimName_RBV + + E.g $(P)$(R)ExtraDimName8_RBV + - stringin * - - - **Positional Placement** From a48a993feac217230361acb93cc47cfe85dcb17f Mon Sep 17 00:00:00 2001 From: "Henrique F. Simoes" Date: Fri, 6 Jun 2025 17:52:49 -0300 Subject: [PATCH 14/14] Document HDF5 plugin extra dimension chunk records Like extra dimension names, these records aren't documented. Do so in a similar manner. Note that, in this case, there is no such ExtraDimChunkN record as there are for size and name. --- docs/ADCore/NDFileHDF5.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/ADCore/NDFileHDF5.rst b/docs/ADCore/NDFileHDF5.rst index adf0cb844..e99200c2e 100644 --- a/docs/ADCore/NDFileHDF5.rst +++ b/docs/ADCore/NDFileHDF5.rst @@ -755,6 +755,12 @@ Parameters and Records - HDF5_extraDimNameX - $(P)$(R)ExtraDimNameX_RBV - stringin + * - asynInt32 + - r/w + - Chunk of extra dimension X + - HDF5_extraDimChunkX + - $(P)$(R)ExtraDimChunkX, $(P)$(R)ExtraDimChunkX_RBV + - longout, longin * - asynInt32 - r/w - Size of extra dimension Y @@ -767,6 +773,12 @@ Parameters and Records - HDF5_extraDimNameY - $(P)$(R)ExtraDimNameY_RBV - stringin + * - asynInt32 + - r/w + - Chunk of extra dimension Y + - HDF5_extraDimChunkY + - $(P)$(R)ExtraDimChunkY, $(P)$(R)ExtraDimChunkY_RBV + - longout, longin * - asynInt32 - r/w - Size of the K'th extra dimension, for K in [3..9] @@ -783,6 +795,14 @@ Parameters and Records E.g $(P)$(R)ExtraDimName8_RBV - stringin + * - asynInt32 + - r/w + - Chunk of the K'th extra dimension, for K in [3..9] + - HDF5_extraDimChunk + - $(P)$(R)ExtraDimChunk, $(P)$(R)ExtraDimChunk_RBV + + E.g. $(P)$(R)ExtraDimChunk9 + - longout, longin * - - - **Positional Placement**