#=================================================================#
# Template file: NDFileHDF5.template
# Database for NDFileHDF5 driver, which saves files for NDArray data.

# Macros:
# % macro, P, Device Prefix
# % macro, R, Device Suffix
# % macro, PORT, Asyn Port name

# This associates the template with an edm screen
# % gui, $(PORT), edmtab, NDFileHDF5.edl, P=$(P),R=$(R)

include "NDFile.template"
include "NDPluginBase.template"

# Flush data to file
record(busy, "$(P)$(R)FlushNow")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRFlushNow")
    field(ZNAM, "Done")
    field(ONAM, "Flush")
}

# We replace some fields in records defined in NDFile.template
# File data format 
record(mbbo, "$(P)$(R)FileFormat")
{
    field(ZRST, "HDF5")
    field(ZRVL, "0")
    field(ONST, "Invalid")
    field(ONVL, "1")
}

record(mbbi, "$(P)$(R)FileFormat_RBV")
{
    field(ZRST, "HDF5")
    field(ZRVL, "0")
    field(ONST, "Undefined")
    field(ONVL, "1")
}

record(bo, "$(P)$(R)ChunkSizeAuto")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSizeAuto")
    field(PINI, "YES")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(VAL,  "1")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)ChunkSizeAuto_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSizeAuto")
    field(SCAN, "I/O Intr")
    field(ZNAM, "No")
    field(ONAM, "Yes")
}

record(longout, "$(P)$(R)NumRowChunks")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nRowChunks")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NumRowChunks_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nRowChunks")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)NumColChunks")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nColChunks")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NumColChunks_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nColChunks")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize2")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize2")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize2_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize2")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize3")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize3")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize3_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize3")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize4")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize4")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize4_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize4")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize5")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize5")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize5_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize5")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize6")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize6")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize6_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize6")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize7")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize7")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize7_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize7")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize8")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize8")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize8_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize8")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ChunkSize9")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize9")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ChunkSize9_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize9")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)NumFramesChunks")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nFramesChunks")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NumFramesChunks_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nFramesChunks")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)NDAttributeChunk")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_NDAttributeChunk")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NDAttributeChunk_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_NDAttributeChunk")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)BoundaryAlign")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryAlign")
    field(PINI, "YES")
    field(VAL, "0")
    field(EGU, "bytes")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)BoundaryAlign_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryAlign")
    field(SCAN, "I/O Intr")
    field(EGU, "bytes")
}

record(longout, "$(P)$(R)BoundaryThreshold")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryThreshold")
    field(PINI, "YES")
    field(VAL, "1")
    field(EGU, "bytes")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)BoundaryThreshold_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryThreshold")
    field(SCAN, "I/O Intr")
    field(EGU, "bytes")
}

record(longout, "$(P)$(R)NumExtraDims")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nExtraDims")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NumExtraDims_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nExtraDims")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSizeN")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeN")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSizeN_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeN")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimNameN_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimNameN")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSizeX")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeX")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSizeX_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeX")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimNameX_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimNameX")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSizeY")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeY")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSizeY_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeY")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimNameY_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimNameY")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize3")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize3")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize3_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize3")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName3_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName3")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize4")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize4")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize4_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize4")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName4_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName4")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize5")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize5")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize5_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize5")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName5_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName5")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize6")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize6")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize6_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize6")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName6_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName6")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize7")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize7")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize7_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize7")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName7_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName7")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize8")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize8")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize8_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize8")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName8_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName8")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimSize9")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize9")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimSize9_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize9")
    field(SCAN, "I/O Intr")
}

record(stringin, "$(P)$(R)ExtraDimName9_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName9")
    field(SCAN, "I/O Intr")
}

record(bo, "$(P)$(R)StoreAttr")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_storeAttributes")
    field(PINI, "YES")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)StoreAttr_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_storeAttributes")
    field(SCAN, "I/O Intr")
    field(ZNAM, "No")
    field(ONAM, "Yes")
}

record(bo, "$(P)$(R)StorePerform")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_storePerformance")
    field(PINI, "YES")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)StorePerform_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_storePerformance")
    field(SCAN, "I/O Intr")
    field(ZNAM, "No")
    field(ONAM, "Yes")
}

record(ai, "$(P)$(R)RunTime")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_totalRuntime")
    field(SCAN, "I/O Intr")
    field(PREC, "3")
    field(EGU,  "s")
}

record(ai, "$(P)$(R)IOSpeed")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_totalIoSpeed")
    field(SCAN, "I/O Intr")
    field(PREC, "1")
    field(EGU,  "Mbit/s")
}

record(longout, "$(P)$(R)NumFramesFlush")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_flushNthFrame")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NumFramesFlush_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_flushNthFrame")
    field(SCAN, "I/O Intr")
}

record(mbbo, "$(P)$(R)Compression")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_compressionType")
    field(PINI, "YES")
    field(ZRST, "None")
    field(ZRVL, "0")
    field(ONST, "N-bit")
    field(ONVL, "1")
    field(TWST, "szip")
    field(TWVL, "2")
    field(THST, "zlib")
    field(THVL, "3")
    field(FRST, "Blosc")
    field(FRVL, "4")
    field(FVST, "BSLZ4")
    field(FVVL, "5")
    field(SXST, "LZ4")
    field(SXVL, "6")
    field(SVST, "JPEG")
    field(SVVL, "7")
    info(autosaveFields, "VAL")
}

record(mbbi, "$(P)$(R)Compression_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_compressionType")
    field(SCAN, "I/O Intr")
    field(ZRST, "None")
    field(ZRVL, "0")
    field(ONST, "N-bit")
    field(ONVL, "1")
    field(TWST, "szip")
    field(TWVL, "2")
    field(THST, "zlib")
    field(THVL, "3")
    field(FRST, "Blosc")
    field(FRVL, "4")
    field(FVST, "BSLZ4")
    field(FVVL, "5")
    field(SXST, "LZ4")
    field(SXVL, "6")
    field(SVST, "JPEG")
    field(SVVL, "7")
}

record(longout, "$(P)$(R)NumDataBits")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsPrecision")
    field(PINI, "YES")
    field(EGU,  "bit")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)NumDataBits_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsPrecision")
    field(SCAN, "I/O Intr")
    field(EGU,  "bit")
}

record(longout, "$(P)$(R)DataBitsOffset")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsOffset")
    field(PINI, "YES")
    field(EGU,  "bit")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)DataBitsOffset_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsOffset")
    field(SCAN, "I/O Intr")
    field(EGU,  "bit")
}

record(longout, "$(P)$(R)SZipNumPixels")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_szipNumPixels")
    field(PINI, "YES")
    field(EGU,  "bit")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)SZipNumPixels_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_szipNumPixels")
    field(SCAN, "I/O Intr")
    field(EGU,  "bit")
}

record(longout, "$(P)$(R)ZLevel")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_zCompressLevel")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ZLevel_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_zCompressLevel")
    field(SCAN, "I/O Intr")
}

record(mbbo, "$(P)$(R)BloscShuffle")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscShuffleType")
    field(PINI, "YES")
    field(ZRST, "None")
    field(ZRVL, "0")
    field(ONST, "Byte")
    field(ONVL, "1")
    field(TWST, "Bit")
    field(TWVL, "2")
    info(autosaveFields, "VAL")
}

record(mbbi, "$(P)$(R)BloscShuffle_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscShuffleType")
    field(SCAN, "I/O Intr")
    field(ZRST, "None")
    field(ZRVL, "0")
    field(ONST, "Byte")
    field(ONVL, "1")
    field(TWST, "Bit")
    field(TWVL, "2")
}

record(mbbo, "$(P)$(R)BloscCompressor")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscCompressor")
    field(PINI, "YES")
    field(ZRST, "BloscLZ")
    field(ZRVL, "0")
    field(ONST, "LZ4")
    field(ONVL, "1")
    field(TWST, "LZ4HC")
    field(TWVL, "2")
    field(THST, "SNAPPY")
    field(THVL, "3")
    field(FRST, "ZLIB")
    field(FRVL, "4")
    field(FVST, "ZSTD")
    field(FVVL, "5")
    info(autosaveFields, "VAL")
}

record(mbbi, "$(P)$(R)BloscCompressor_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscCompressor")
    field(SCAN, "I/O Intr")
    field(ZRST, "BloscLZ")
    field(ZRVL, "0")
    field(ONST, "LZ4")
    field(ONVL, "1")
    field(TWST, "LZ4HC")
    field(TWVL, "2")
    field(THST, "SNAPPY")
    field(THVL, "3")
    field(FRST, "ZLIB")
    field(FRVL, "4")
    field(FVST, "ZSTD")
    field(FVVL, "5")
}

record(longout, "$(P)$(R)BloscLevel")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscCompressLevel")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)BloscLevel_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscCompressLevel")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)JPEGQuality")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_jpegQuality")
    field(VAL, "90")
    field(DRVL, "1")
    field(DRVH, "100")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)JPEGQuality_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_jpegQuality")
    field(SCAN, "I/O Intr")
}

record(bo, "$(P)$(R)DimAttDatasets")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_dimAttDatasets")
    field(PINI, "YES")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)DimAttDatasets_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_dimAttDatasets")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(waveform, "$(P)$(R)XMLErrorMsg_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutErrorMsg")
    field(FTVL, "CHAR")
    field(NELM, "256")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)XMLValid_RBV")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutValid")
    field(ZNAM, "No")
    field(ZSV,  "MAJOR")
    field(ONAM, "Yes")
    field(OSV,  "NO_ALARM")
    field(SCAN, "I/O Intr")
}

# Filename
# % autosave 2 
record(waveform, "$(P)$(R)XMLFileName")
{
    field(PINI, "YES")
    field(DTYP, "asynOctetWrite")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutFilename")
    field(FTVL, "CHAR")
    field(NELM, "$(XMLSIZE=2048)")
    info(autosaveFields, "VAL")
}

record(waveform, "$(P)$(R)XMLFileName_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutFilename")
    field(FTVL, "CHAR")
    field(NELM, "$(XMLSIZE=2048)")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)SWMRSupported_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRSupported")
    field(SCAN, "I/O Intr")
    field(ZNAM, "Not Supported")
    field(ONAM, "Supported")
}

record(bo, "$(P)$(R)SWMRMode")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRMode")
    field(PINI, "YES")
    field(ZNAM, "Off")
    field(ONAM, "On")
}

record(bi, "$(P)$(R)SWMRMode_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRMode")
    field(SCAN, "I/O Intr")
    field(ZNAM, "Off")
    field(ONAM, "On")
}

record(bi, "$(P)$(R)SWMRActive_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRRunning")
    field(SCAN, "I/O Intr")
    field(ZNAM, "Off")
    field(ONAM, "Active")
}

record(longin, "$(P)$(R)SWMRCbCounter_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRCbCounter")
    field(SCAN, "I/O Intr")
}

record(bo, "$(P)$(R)PositionMode")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posRunning")
    field(PINI, "YES")
    field(ZNAM, "Off")
    field(ONAM, "On")
}

record(bi, "$(P)$(R)PositionMode_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posRunning")
    field(SCAN, "I/O Intr")
    field(ZNAM, "Off")
    field(ONAM, "On")
}

record(stringout, "$(P)$(R)PosNameDimN")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimN")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDimN_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimN")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDimX")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimX")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDimX_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimX")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDimY")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimY")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDimY_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimY")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim3")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim3")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim3_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim3")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim4")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim4")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim4_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim4")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim5")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim5")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim5_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim5")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim6")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim6")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim6_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim6")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim7")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim7")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim7_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim7")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim8")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim8")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim8_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim8")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosNameDim9")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim9")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosNameDim9_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim9")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDimN")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimN")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDimN_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimN")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDimX")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimX")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDimX_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimX")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDimY")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimY")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDimY_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimY")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim3")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim3")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim3_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim3")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim4")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim4")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim4_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim4")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim5")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim5")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim5_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim5")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim6")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim6")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim6_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim6")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim7")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim7")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim7_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim7")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim8")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim8")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim8_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim8")
    field(SCAN, "I/O Intr")
}

record(stringout, "$(P)$(R)PosIndexDim9")
{
    field(DTYP, "asynOctetWrite")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim9")
    field(PINI, "YES")
}

record(stringin, "$(P)$(R)PosIndexDim9_RBV")
{
    field(DTYP, "asynOctetRead")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim9")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)FillValue")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_fillValue")
    field(PINI, "YES")
    field(PREC, "1")
}

record(ai, "$(P)$(R)FillValue_RBV")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_fillValue")
    field(SCAN, "I/O Intr")
    field(PREC, "1")
}

record(longout, "$(P)$(R)ExtraDimChunkX")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkX")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunkX_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkX")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunkY")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkY")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunkY_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkY")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk3")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk3")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk3_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk3")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk4")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk4")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk4_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk4")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk5")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk5")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk5_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk5")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk6")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk6")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk6_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk6")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk7")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk7")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk7_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk7")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk8")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk8")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk8_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk8")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)ExtraDimChunk9")
{
    field(DTYP, "asynInt32")
    field(OUT, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk9")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)ExtraDimChunk9_RBV")
{
    field(DTYP, "asynInt32")
    field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk9")
    field(SCAN, "I/O Intr")
}
