Files
ADAndor/ADApp/Db/NDFileHDF5.template

306 lines
8.3 KiB
Plaintext
Executable File

# Database for NDFileHDF5 driver, which saves files for NDArray data.
# Macros:
# % macro, P, Device Prefix
# % macro, R, Device Suffix
# % macro, PORT, Asyn Port name
# % gdatag, template, NDFileHDF5, $(PORT)_NDFileHDF5, $(PORT) NDFileHDF5 class instance
# This associates the template with an edm screen
# % gui, $(PORT), edmtab, NDFileHDF5.edl, P=$(P),R=$(R)
# 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")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, NumRowChunks, Number of rows to use per chunk
record(longout, "$(P)$(R)NumRowChunks")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_nRowChunks")
field(PINI, "YES")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, NumRowChunks_RBV, Readback of number of rows to use per chunk
record(longin, "$(P)$(R)NumRowChunks_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_nRowChunks")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, NumExtraDims, Number of extra dimensions [0..2]
record(longout, "$(P)$(R)NumExtraDims")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_nExtraDims")
field(PINI, "YES")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, NumExtraDims_RBV, Readback number of extra dimensions
record(longin, "$(P)$(R)NumExtraDims_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_nExtraDims")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, ExtraDimSizeN, Size of extra dimension N (no. of frames per point)
record(longout, "$(P)$(R)ExtraDimSizeN")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_extraDimSizeN")
field(PINI, "YES")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, ExtraDimSizeN_RBV, Readback size of extra dimension N (no. of frames per point)
record(longin, "$(P)$(R)ExtraDimSizeN_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_extraDimSizeN")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
record(stringin, "$(P)$(R)ExtraDimNameN_RBV")
{
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)HDF5_extraDimNameN")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, ExtraDimSizeX, Size of extra dimension X
record(longout, "$(P)$(R)ExtraDimSizeX")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_extraDimSizeX")
field(PINI, "YES")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, ExtraDimSizeX_RBV, Readback size of extra dimension X
record(longin, "$(P)$(R)ExtraDimSizeX_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_extraDimSizeX")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
record(stringin, "$(P)$(R)ExtraDimNameX_RBV")
{
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)HDF5_extraDimNameX")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, ExtraDimSizeY, Size of extra dimension Y
record(longout, "$(P)$(R)ExtraDimSizeY")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_extraDimSizeY")
field(PINI, "YES")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, ExtraDimSizeY_RBV, Readback size of extra dimension Y
record(longin, "$(P)$(R)ExtraDimSizeY_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_extraDimSizeY")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
record(stringin, "$(P)$(R)ExtraDimNameY_RBV")
{
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)HDF5_extraDimNameY")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}
record(bo, "$(P)$(R)StoreAttr")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_storeAttributes")
field(PINI, "NO")
field(ZNAM, "No")
field(ONAM, "Yes")
}
record(bi, "$(P)$(R)StoreAttr_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_storeAttributes")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(ZNAM, "No")
field(ONAM, "Yes")
}
record(bo, "$(P)$(R)StorePerform")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_storePerformance")
field(PINI, "NO")
field(ZNAM, "No")
field(ONAM, "Yes")
}
record(bi, "$(P)$(R)StorePerform_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_storePerformance")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(ZNAM, "No")
field(ONAM, "Yes")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, runtime, Total runtime from first frame to file closed
record(ai, "$(P)$(R)RunTime")
{
field(DTYP, "asynFloat64")
field(INP, "@asyn($(PORT),0)HDF5_totalRuntime")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(PREC, "3")
field(EGU, "s")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, IOSpeed, Overall IO speed from first frame to file closed
record(ai, "$(P)$(R)IOSpeed")
{
field(DTYP, "asynFloat64")
field(INP, "@asyn($(PORT),0)HDF5_totalIoSpeed")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(PREC, "1")
field(EGU, "Mbit/s")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, CompressType, Select or switch off compression filter
record(mbbo, "$(P)$(R)CompressType")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_compressionType")
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")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, CompressType_RBV, Readback selected compression filter
record(mbbi, "$(P)$(R)CompressType_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_compressionType")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(ZRST, "None")
field(ZRVL, "0")
field(ONST, "nbit")
field(ONVL, "1")
field(TWST, "szip")
field(TWVL, "2")
field(THST, "zlib")
field(THVL, "3")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, NumDataBits, N-bit compression filter: number of data bits per pixel
record(longout, "$(P)$(R)NumDataBits")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_nbitsPrecision")
field(PINI, "NO")
field(EGU, "bit")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, NumDataBits_RBV, Readback N-bit compression filter: number of data bits per pixel
record(longin, "$(P)$(R)NumDataBits_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_nbitsPrecision")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(EGU, "bit")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, DataBitsOffset, N-bit compression filter: dataword bit-offset in pixel
record(longout, "$(P)$(R)DataBitsOffset")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_nbitsOffset")
field(PINI, "NO")
field(EGU, "bit")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, DataBitsOffset_RBV, Readback N-bit compression filter: dataword bit-offset in pixel
record(longin, "$(P)$(R)DataBitsOffset_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_nbitsOffset")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(EGU, "bit")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, szipNumPixels, szip compression filter: number of pixels in filter
record(longout, "$(P)$(R)SZipNumPixels")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_szipNumPixels")
field(PINI, "NO")
field(EGU, "bit")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, szipNumPixels_RBV, Readback szip compression filter: number of pixels in filter
record(longin, "$(P)$(R)SZipNumPixels_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_szipNumPixels")
field(PINI, "NO")
field(SCAN, "I/O Intr")
field(EGU, "bit")
}
# % gdatag, pv, rw, $(PORT)_NDFileHDF5, ZCompressLevel, zlib compression filter: compression level
record(longout, "$(P)$(R)ZLevel")
{
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),0)HDF5_zCompressLevel")
field(PINI, "NO")
}
# % gdatag, pv, ro, $(PORT)_NDFileHDF5, ZCompressLevel_RBV, Readback zlib compression filter: compression level
record(longin, "$(P)$(R)ZLevel_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),0)HDF5_zCompressLevel")
field(PINI, "NO")
field(SCAN, "I/O Intr")
}