git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@12914 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
306 lines
8.3 KiB
Plaintext
Executable File
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")
|
|
}
|