#=================================================================# # Template file: NDFile.template # Database for NDFile driver, which saves files for NDArray data. # Mark Rivers # April 7, 2008 ################################################################### # These records control file I/O # ################################################################### # File path. record(waveform, "$(CAM):HDF5$(N):FilePath") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_PATH") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):FilePath_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_PATH") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(bi, "$(CAM):HDF5$(N):FilePathExists_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_PATH_EXISTS") field(ZNAM, "No") field(ZSV, "MAJOR") field(ONAM, "Yes") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):CreateDirectory") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CREATE_DIR") field(VAL, "0" ) info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):CreateDirectory_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CREATE_DIR") field(VAL, "") field(SCAN, "I/O Intr") } # Filename record(waveform, "$(CAM):HDF5$(N):FileName") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NAME") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):FileName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NAME") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):FileNumber") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NUMBER") field(VAL, "1") info(asyn:READBACK, "1") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):FileNumber_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NUMBER") field(SCAN, "I/O Intr") } # Autoincrement flag record(bo, "$(CAM):HDF5$(N):AutoIncrement") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_INCREMENT") field(VAL, "1") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):AutoIncrement_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_INCREMENT") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } # File template record(waveform, "$(CAM):HDF5$(N):FileTemplate") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMPLATE") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):FileTemplate_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMPLATE") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } # Full filename, including path record(waveform, "$(CAM):HDF5$(N):FullFileName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FULL_FILE_NAME") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } # Autosave flag record(bo, "$(CAM):HDF5$(N):AutoSave") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_SAVE") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):AutoSave_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_SAVE") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } # Write file record(busy, "$(CAM):HDF5$(N):WriteFile") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_FILE") field(ZNAM, "Done") field(ONAM, "Write") } record(bi, "$(CAM):HDF5$(N):WriteFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_FILE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Writing") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } # Read file record(busy, "$(CAM):HDF5$(N):ReadFile") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))READ_FILE") field(ZNAM, "Done") field(ONAM, "Read") } record(bi, "$(CAM):HDF5$(N):ReadFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))READ_FILE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Reading") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } # File data format record(mbbo, "$(CAM):HDF5$(N):FileFormat") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_FORMAT") field(VAL, "0") field(ZRST, "Undefined") field(ZRVL, "0") field(ONST, "Invalid") field(ONVL, "1") info(autosaveFields, "VAL") } record(mbbi, "$(CAM):HDF5$(N):FileFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_FORMAT") field(ZRST, "netCDF") field(ZRVL, "0") field(ONST, "Undefined") field(ONVL, "1") field(SCAN, "I/O Intr") } # File save mode record(mbbo, "$(CAM):HDF5$(N):FileWriteMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_MODE") field(VAL, "0") field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Capture") field(ONVL, "1") field(TWST, "Stream") field(TWVL, "2") info(autosaveFields, "VAL") } record(mbbi, "$(CAM):HDF5$(N):FileWriteMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_MODE") field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Capture") field(ONVL, "1") field(TWST, "Stream") field(TWVL, "2") field(SCAN, "I/O Intr") } # Capture data record(busy, "$(CAM):HDF5$(N):Capture") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CAPTURE") field(ZNAM, "Done") field(ONAM, "Capture") field(ZSV, "NO_ALARM") field(OSV, "NO_ALARM") info(autosaveFields, "OSV ZSV") } record(bi, "$(CAM):HDF5$(N):Capture_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CAPTURE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Capturing") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):NumCapture") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_CAPTURE") field(VAL, "1") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumCapture_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_CAPTURE") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):NumCaptured_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_CAPTURED") field(SCAN, "I/O Intr") } # Delete driver file flag record(bo, "$(CAM):HDF5$(N):DeleteDriverFile") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DELETE_DRIVER_FILE") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):DeleteDriverFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DELETE_DRIVER_FILE") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(bi, "$(CAM):HDF5$(N):WriteStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_STATUS") field(ZNAM, "Write OK") field(ZSV, "NO_ALARM") field(ONAM, "Write error") field(OSV, "MAJOR") field(SCAN, "I/O Intr") } record(waveform, "$(CAM):HDF5$(N):WriteMessage") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_MESSAGE") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(bo, "$(CAM):HDF5$(N):LazyOpen") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_LAZY_OPEN") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):LazyOpen_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_LAZY_OPEN") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):TempSuffix") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMP_SUFFIX") field(VAL, "") } record(stringin, "$(CAM):HDF5$(N):TempSuffix_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMP_SUFFIX") field(VAL, "") field(SCAN, "I/O Intr") } # Database to add automatic reset of FileNumber on changes # to FilePath, FileTemplate, or FileName # Add FLNKS to ResetFileNumber record(waveform, "$(CAM):HDF5$(N):FilePath") { field(FLNK, "$(CAM):HDF5$(N):ResetFileNumber" ) } record(waveform, "$(CAM):HDF5$(N):FileName") { field(FLNK, "$(CAM):HDF5$(N):ResetFileNumber" ) } record(waveform, "$(CAM):HDF5$(N):FileTemplate") { field(FLNK, "$(CAM):HDF5$(N):ResetFileNumber" ) } # AutoFileNumberReset flag record(bo, "$(CAM):HDF5$(N):AutoFileNumberReset") { field(PINI, "YES") field(VAL, "1") field(ZNAM, "No") field(ONAM, "Yes") info( autosaveFields, "VAL" ) } record(calcout, "$(CAM):HDF5$(N):ResetFileNumber") { field(INPA, "$(CAM):HDF5$(N):AutoFileNumberReset NPP") field(CALC, "A") field(OOPT, "When Non-zero" ) field(OUT, "$(CAM):HDF5$(N):FileNumber PP") } #=================================================================# # 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, HDF5$(N), edmtab, NDFileHDF5.edl, P=$(CAM):,R=HDF5$(N): #=================================================================# # Template file: NDFile.template # Database for NDFile driver, which saves files for NDArray data. # Mark Rivers # April 7, 2008 ################################################################### # These records control file I/O # ################################################################### # File path. record(waveform, "$(CAM):HDF5$(N):FilePath") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_PATH") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):FilePath_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_PATH") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(bi, "$(CAM):HDF5$(N):FilePathExists_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_PATH_EXISTS") field(ZNAM, "No") field(ZSV, "MAJOR") field(ONAM, "Yes") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):CreateDirectory") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CREATE_DIR") field(VAL, "0" ) info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):CreateDirectory_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CREATE_DIR") field(VAL, "") field(SCAN, "I/O Intr") } # Filename record(waveform, "$(CAM):HDF5$(N):FileName") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NAME") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):FileName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NAME") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):FileNumber") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NUMBER") field(VAL, "1") info(asyn:READBACK, "1") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):FileNumber_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_NUMBER") field(SCAN, "I/O Intr") } # Autoincrement flag record(bo, "$(CAM):HDF5$(N):AutoIncrement") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_INCREMENT") field(VAL, "1") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):AutoIncrement_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_INCREMENT") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } # File template record(waveform, "$(CAM):HDF5$(N):FileTemplate") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMPLATE") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):FileTemplate_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMPLATE") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } # Full filename, including path record(waveform, "$(CAM):HDF5$(N):FullFileName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FULL_FILE_NAME") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } # Autosave flag record(bo, "$(CAM):HDF5$(N):AutoSave") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_SAVE") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):AutoSave_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))AUTO_SAVE") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } # Write file record(busy, "$(CAM):HDF5$(N):WriteFile") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_FILE") field(ZNAM, "Done") field(ONAM, "Write") } record(bi, "$(CAM):HDF5$(N):WriteFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_FILE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Writing") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } # Read file record(busy, "$(CAM):HDF5$(N):ReadFile") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))READ_FILE") field(ZNAM, "Done") field(ONAM, "Read") } record(bi, "$(CAM):HDF5$(N):ReadFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))READ_FILE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Reading") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } # File data format record(mbbo, "$(CAM):HDF5$(N):FileFormat") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_FORMAT") field(VAL, "0") field(ZRST, "Undefined") field(ZRVL, "0") field(ONST, "Invalid") field(ONVL, "1") info(autosaveFields, "VAL") } record(mbbi, "$(CAM):HDF5$(N):FileFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_FORMAT") field(ZRST, "netCDF") field(ZRVL, "0") field(ONST, "Undefined") field(ONVL, "1") field(SCAN, "I/O Intr") } # File save mode record(mbbo, "$(CAM):HDF5$(N):FileWriteMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_MODE") field(VAL, "0") field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Capture") field(ONVL, "1") field(TWST, "Stream") field(TWVL, "2") info(autosaveFields, "VAL") } record(mbbi, "$(CAM):HDF5$(N):FileWriteMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_MODE") field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Capture") field(ONVL, "1") field(TWST, "Stream") field(TWVL, "2") field(SCAN, "I/O Intr") } # Capture data record(busy, "$(CAM):HDF5$(N):Capture") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CAPTURE") field(ZNAM, "Done") field(ONAM, "Capture") field(ZSV, "NO_ALARM") field(OSV, "NO_ALARM") info(autosaveFields, "OSV ZSV") } record(bi, "$(CAM):HDF5$(N):Capture_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CAPTURE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Capturing") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):NumCapture") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_CAPTURE") field(VAL, "1") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumCapture_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_CAPTURE") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):NumCaptured_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_CAPTURED") field(SCAN, "I/O Intr") } # Delete driver file flag record(bo, "$(CAM):HDF5$(N):DeleteDriverFile") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DELETE_DRIVER_FILE") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):DeleteDriverFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DELETE_DRIVER_FILE") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(bi, "$(CAM):HDF5$(N):WriteStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_STATUS") field(ZNAM, "Write OK") field(ZSV, "NO_ALARM") field(ONAM, "Write error") field(OSV, "MAJOR") field(SCAN, "I/O Intr") } record(waveform, "$(CAM):HDF5$(N):WriteMessage") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WRITE_MESSAGE") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(bo, "$(CAM):HDF5$(N):LazyOpen") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_LAZY_OPEN") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):LazyOpen_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_LAZY_OPEN") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):TempSuffix") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMP_SUFFIX") field(VAL, "") } record(stringin, "$(CAM):HDF5$(N):TempSuffix_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FILE_TEMP_SUFFIX") field(VAL, "") field(SCAN, "I/O Intr") } #=================================================================# # Template file: NDPluginBase.template # Database for NDPluginBase, i.e. records common to all plugins # Mark Rivers # April 25, 2008 #=================================================================# # Template file: NDArrayBase.template # Database for area detector control using asyn driver and standard asyn device support # Mark Rivers # March 9, 2008 ################################################################### # This record contains the version of ADCore # ################################################################### record(stringin, "$(CAM):HDF5$(N):ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ADCORE_VERSION") field(VAL, "Unknown") field(SCAN, "I/O Intr") } ################################################################### # This record contains the version of the driver or plugin # ################################################################### record(stringin, "$(CAM):HDF5$(N):DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DRIVER_VERSION") field(VAL, "Unknown") field(SCAN, "I/O Intr") } ################################################################### # This record contains the asyn port name of this detector # ################################################################### record(stringin, "$(CAM):HDF5$(N):PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))PORT_NAME_SELF") field(VAL, "Unknown") field(SCAN, "I/O Intr") } ################################################################### # These records contain basic information about the detector # ################################################################### record(stringin, "$(CAM):HDF5$(N):Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MANUFACTURER") field(VAL, "Unknown") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MODEL") field(VAL, "Unknown") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SERIAL_NUMBER") field(VAL, "Unknown") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SDK_VERSION") field(VAL, "Unknown") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))FIRMWARE_VERSION") field(VAL, "Unknown") field(SCAN, "I/O Intr") } ################################################################### # These records control acquisition start and stop # ################################################################### record(bo, "$(CAM):HDF5$(N):Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") field(FLNK, "$(CAM):HDF5$(N):SetAcquireBusy") info(asyn:READBACK, "1") } record(bi, "$(CAM):HDF5$(N):Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ACQUIRE") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") field(OSV, "MINOR") field(SCAN, "I/O Intr") } record(calcout, "$(CAM):HDF5$(N):SetAcquireBusy") { field(INPA, "$(CAM):HDF5$(N):Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") field(OUT, "$(CAM):HDF5$(N):AcquireBusy PP") } record(busy, "$(CAM):HDF5$(N):AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") field(OSV, "MINOR") field(VAL, "0") } record(bi, "$(CAM):HDF5$(N):AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ACQUIRE_BUSY") field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") field(OSV, "MINOR") field(SCAN, "I/O Intr") } record(calcout, "$(CAM):HDF5$(N):ClearAcquireBusy") { field(INPA, "$(CAM):HDF5$(N):AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") field(OUT, "$(CAM):HDF5$(N):AcquireBusy PP") } record(bo, "$(CAM):HDF5$(N):WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))WAIT_FOR_PLUGINS") field(ZNAM, "No") field(ONAM, "Yes") field(VAL, "0") } ################################################################### # These records are the array size and data type # ################################################################### # The number of dimensions record(longout, "$(CAM):HDF5$(N):NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_NDIMENSIONS") } record(longin, "$(CAM):HDF5$(N):NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_NDIMENSIONS") field(SCAN, "I/O Intr") } # The array dimensions waveform records record(waveform, "$(CAM):HDF5$(N):Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") field(FLNK, "$(CAM):HDF5$(N):Dim0SA") } record(subArray, "$(CAM):HDF5$(N):Dim0SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") field(FLNK, "$(CAM):HDF5$(N):ArraySize0") } record(longin, "$(CAM):HDF5$(N):ArraySize0") { field(INP, "$(CAM):HDF5$(N):Dim0SA") field(FLNK, "$(CAM):HDF5$(N):Dim1SA") } record(subArray, "$(CAM):HDF5$(N):Dim1SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") field(FLNK, "$(CAM):HDF5$(N):ArraySize1") } record(longin, "$(CAM):HDF5$(N):ArraySize1") { field(INP, "$(CAM):HDF5$(N):Dim1SA") field(FLNK, "$(CAM):HDF5$(N):Dim2SA") } record(subArray, "$(CAM):HDF5$(N):Dim2SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") field(FLNK, "$(CAM):HDF5$(N):ArraySize2") } record(longin, "$(CAM):HDF5$(N):ArraySize2") { field(INP, "$(CAM):HDF5$(N):Dim2SA") field(FLNK, "$(CAM):HDF5$(N):Dim3SA") } record(subArray, "$(CAM):HDF5$(N):Dim3SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") field(FLNK, "$(CAM):HDF5$(N):ArraySize3") } record(longin, "$(CAM):HDF5$(N):ArraySize3") { field(INP, "$(CAM):HDF5$(N):Dim3SA") field(FLNK, "$(CAM):HDF5$(N):Dim4SA") } record(subArray, "$(CAM):HDF5$(N):Dim4SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") field(FLNK, "$(CAM):HDF5$(N):ArraySize4") } record(longin, "$(CAM):HDF5$(N):ArraySize4") { field(INP, "$(CAM):HDF5$(N):Dim4SA") field(FLNK, "$(CAM):HDF5$(N):Dim5SA") } record(subArray, "$(CAM):HDF5$(N):Dim5SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") field(FLNK, "$(CAM):HDF5$(N):ArraySize5") } record(longin, "$(CAM):HDF5$(N):ArraySize5") { field(INP, "$(CAM):HDF5$(N):Dim5SA") field(FLNK, "$(CAM):HDF5$(N):Dim6SA") } record(subArray, "$(CAM):HDF5$(N):Dim6SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") field(FLNK, "$(CAM):HDF5$(N):ArraySize6") } record(longin, "$(CAM):HDF5$(N):ArraySize6") { field(INP, "$(CAM):HDF5$(N):Dim6SA") field(FLNK, "$(CAM):HDF5$(N):Dim7SA") } record(subArray, "$(CAM):HDF5$(N):Dim7SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") field(FLNK, "$(CAM):HDF5$(N):ArraySize7") } record(longin, "$(CAM):HDF5$(N):ArraySize7") { field(INP, "$(CAM):HDF5$(N):Dim7SA") field(FLNK, "$(CAM):HDF5$(N):Dim8SA") } record(subArray, "$(CAM):HDF5$(N):Dim8SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") field(FLNK, "$(CAM):HDF5$(N):ArraySize8") } record(longin, "$(CAM):HDF5$(N):ArraySize8") { field(INP, "$(CAM):HDF5$(N):Dim8SA") field(FLNK, "$(CAM):HDF5$(N):Dim9SA") } record(subArray, "$(CAM):HDF5$(N):Dim9SA") { field(INP, "$(CAM):HDF5$(N):Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") field(FLNK, "$(CAM):HDF5$(N):ArraySize9") } record(longin, "$(CAM):HDF5$(N):ArraySize9") { field(INP, "$(CAM):HDF5$(N):Dim9SA") } record(waveform, "$(CAM):HDF5$(N):Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") field(FLNK, "$(CAM):HDF5$(N):Dim0SA_RBV") field(SCAN, "I/O Intr") } record(subArray, "$(CAM):HDF5$(N):Dim0SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") field(FLNK, "$(CAM):HDF5$(N):ArraySize0_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize0_RBV") { field(INP, "$(CAM):HDF5$(N):Dim0SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim1SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim1SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") field(FLNK, "$(CAM):HDF5$(N):ArraySize1_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize1_RBV") { field(INP, "$(CAM):HDF5$(N):Dim1SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim2SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim2SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") field(FLNK, "$(CAM):HDF5$(N):ArraySize2_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize2_RBV") { field(INP, "$(CAM):HDF5$(N):Dim2SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim3SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim3SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") field(FLNK, "$(CAM):HDF5$(N):ArraySize3_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize3_RBV") { field(INP, "$(CAM):HDF5$(N):Dim3SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim4SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim4SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") field(FLNK, "$(CAM):HDF5$(N):ArraySize4_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize4_RBV") { field(INP, "$(CAM):HDF5$(N):Dim4SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim5SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim5SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") field(FLNK, "$(CAM):HDF5$(N):ArraySize5_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize5_RBV") { field(INP, "$(CAM):HDF5$(N):Dim5SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim6SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim6SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") field(FLNK, "$(CAM):HDF5$(N):ArraySize6_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize6_RBV") { field(INP, "$(CAM):HDF5$(N):Dim6SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim7SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim7SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") field(FLNK, "$(CAM):HDF5$(N):ArraySize7_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize7_RBV") { field(INP, "$(CAM):HDF5$(N):Dim7SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim8SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim8SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") field(FLNK, "$(CAM):HDF5$(N):ArraySize8_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize8_RBV") { field(INP, "$(CAM):HDF5$(N):Dim8SA_RBV") field(FLNK, "$(CAM):HDF5$(N):Dim9SA_RBV") } record(subArray, "$(CAM):HDF5$(N):Dim9SA_RBV") { field(INP, "$(CAM):HDF5$(N):Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") field(FLNK, "$(CAM):HDF5$(N):ArraySize9_RBV") } record(longin, "$(CAM):HDF5$(N):ArraySize9_RBV") { field(INP, "$(CAM):HDF5$(N):Dim9SA_RBV") } record(mbbi, "$(CAM):HDF5$(N):BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))BAYER_PATTERN") field(ZRST, "RGGB") field(ZRVL, "0") field(ONST, "GBRG") field(ONVL, "1") field(TWST, "GRBG") field(TWVL, "2") field(THST, "BGGR") field(THVL, "3") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_SIZE_X") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_SIZE") field(SCAN, "I/O Intr") } ################################################################### # These records have information on the compression # ################################################################### record(stringin, "$(CAM):HDF5$(N):Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))CODEC") field(VAL, "") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))COMPRESSED_SIZE") field(SCAN, "I/O Intr") } ################################################################### # These records control the data type # ################################################################### record(mbbo, "$(CAM):HDF5$(N):DataType") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DATA_TYPE") field(ZRST, "Int8") field(ZRVL, "0") field(ONST, "UInt8") field(ONVL, "1") field(TWST, "Int16") field(TWVL, "2") field(THST, "UInt16") field(THVL, "3") field(FRST, "Int32") field(FRVL, "4") field(FVST, "UInt32") field(FVVL, "5") field(SXST, "Int64") field(SXVL, "6") field(SVST, "UInt64") field(SVVL, "7") field(EIST, "Float32") field(EIVL, "8") field(NIST, "Float64") field(NIVL, "9") field(VAL, "0") info(autosaveFields, "VAL") } record(mbbi, "$(CAM):HDF5$(N):DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DATA_TYPE") field(ZRST, "Int8") field(ZRVL, "0") field(ONST, "UInt8") field(ONVL, "1") field(TWST, "Int16") field(TWVL, "2") field(THST, "UInt16") field(THVL, "3") field(FRST, "Int32") field(FRVL, "4") field(FVST, "UInt32") field(FVVL, "5") field(SXST, "Int64") field(SXVL, "6") field(SVST, "UInt64") field(SVVL, "7") field(EIST, "Float32") field(EIVL, "8") field(NIST, "Float64") field(NIVL, "9") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):BitsPerPixel_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))BITS_PER_PIXEL") field(SCAN, "I/O Intr") } ################################################################### # These records control the color mode # # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### record(mbbo, "$(CAM):HDF5$(N):ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))COLOR_MODE") field(ZRST, "Mono") field(ZRVL, "0") field(ONST, "Bayer") field(ONVL, "1") field(TWST, "RGB1") field(TWVL, "2") field(THST, "RGB2") field(THVL, "3") field(FRST, "RGB3") field(FRVL, "4") field(FVST, "YUV444") field(FVVL, "5") field(SXST, "YUV422") field(SXVL, "6") field(SVST, "YUV421") field(SVVL, "7") info(autosaveFields, "VAL") } record(mbbi, "$(CAM):HDF5$(N):ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))COLOR_MODE") field(ZRST, "Mono") field(ZRVL, "0") field(ONST, "Bayer") field(ONVL, "1") field(TWST, "RGB1") field(TWVL, "2") field(THST, "RGB2") field(THVL, "3") field(FRST, "RGB3") field(FRVL, "4") field(FVST, "YUV444") field(FVVL, "5") field(SXST, "YUV422") field(SXVL, "6") field(SVST, "YUV421") field(SVVL, "7") field(SCAN, "I/O Intr") } ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### record(longin, "$(CAM):HDF5$(N):UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))UNIQUE_ID") field(SCAN, "I/O Intr") } record(ai, "$(CAM):HDF5$(N):TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))TIME_STAMP") field(PREC, "3") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))EPICS_TS_SEC") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))EPICS_TS_NSEC") field(SCAN, "I/O Intr") } ################################################################### # These records provide statistics on array callbacks and # # array callback rates # ################################################################### record(longout, "$(CAM):HDF5$(N):ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_COUNTER") } record(longin, "$(CAM):HDF5$(N):ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_COUNTER") field(SCAN, "I/O Intr") field(TSE, "-2") field(LOW, "0" ) field(LSV, "MINOR" ) info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV TSE") } # Updated rate calculation to use a smoothing factor w/ guard against negative values # 0 rate sets alarm state to MINOR record(calc, "$(CAM):HDF5$(N):ArrayRate_RBV") { field(INPA, "$(CAM):HDF5$(N):ArrayRate_RBV.LB NPP NMS") # Previous counter (Last B value) field(INPB, "$(CAM):HDF5$(N):ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds field(INPD, "$(CAM):HDF5$(N):ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) field(EGU, "Hz" ) field(SCAN, "1 second") field(LOW, "0") field(LSV, "MINOR") field(ADEL, "0.1") info(autosaveFields, "ADEL DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV MDEL PREC C E SCAN EGU") } ################################################################### # These records control NDArray callacks # ################################################################### record(bo, "$(CAM):HDF5$(N):ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_CALLBACKS") field(ZNAM, "Disable") field(ZSV, "MINOR") field(ONAM, "Enable") field(OSV, "NO_ALARM") field(VAL, "1") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ARRAY_CALLBACKS") field(ZNAM, "Disabled") field(ZSV, "MINOR") field(ONAM, "Enabled") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } ################################################################### # This record contains macro definitions for the attributes # ################################################################### record(waveform, "$(CAM):HDF5$(N):NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ND_ATTRIBUTES_MACROS") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } ################################################################### # This record is the name of a file defining attributes # ################################################################### record(waveform, "$(CAM):HDF5$(N):NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ND_ATTRIBUTES_FILE") field(FTVL, "CHAR") field(NELM, "256") info(autosaveFields, "VAL") } ################################################################### # This record defines the status of reading attributes file # ################################################################### record(mbbi, "$(CAM):HDF5$(N):NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ND_ATTRIBUTES_STATUS") field(ZRVL, "0") field(ZRST, "Attributes file OK") field(ZRSV, "NO_ALARM") field(ONVL, "1") field(ONST, "File not found") field(ONSV, "MINOR") field(TWVL, "2") field(TWST, "XML syntax error") field(TWSV, "MAJOR") field(THVL, "3") field(THST, "Macro substitution error") field(THSV, "MAJOR") field(SCAN, "I/O Intr") } ################################################################### # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### record(ai, "$(CAM):HDF5$(N):PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))POOL_MAX_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "Passive") field(PINI, "YES") } record(ai, "$(CAM):HDF5$(N):PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") field(FLNK, "$(CAM):HDF5$(N):PoolAllocBuffers") info(autosaveFields, "SCAN") } record(longin, "$(CAM):HDF5$(N):PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))POOL_ALLOC_BUFFERS") field(FLNK, "$(CAM):HDF5$(N):PoolFreeBuffers") } record(longin, "$(CAM):HDF5$(N):PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))POOL_FREE_BUFFERS") field(FLNK, "$(CAM):HDF5$(N):PoolUsedBuffers") } record(calc, "$(CAM):HDF5$(N):PoolUsedBuffers") { field(INPA, "$(CAM):HDF5$(N):PoolAllocBuffers NPP MS") field(INPB, "$(CAM):HDF5$(N):PoolFreeBuffers NPP MS") field(CALC, "A-B") } record(bo, "$(CAM):HDF5$(N):EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))POOL_EMPTY_FREELIST") } record(longin, "$(CAM):HDF5$(N):NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_QUEUED_ARRAYS") field(SCAN, "I/O Intr") } ################################################################### # This record contains the type of plugin # ################################################################### record(stringin, "$(CAM):HDF5$(N):PluginType_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))PLUGIN_TYPE") field(VAL, "Unknown") field(SCAN, "I/O Intr") } ################################################################### # These records control the connection of the server to # # an NDArray driver port and address # ################################################################### # Array port name record(stringout, "$(CAM):HDF5$(N):NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NDARRAY_PORT") field(VAL, "$(PLUGIN_SRC)") info(autosaveFields, "DESC VAL") } record(stringin, "$(CAM):HDF5$(N):NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NDARRAY_PORT") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):NDArrayAddress") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NDARRAY_ADDR") field(VAL, "$(NDARRAY_ADDR=0)") info(autosaveFields, "DESC VAL") } record(longin, "$(CAM):HDF5$(N):NDArrayAddress_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NDARRAY_ADDR") field(SCAN, "I/O Intr") } ################################################################### # These records control whether callbacks are enabled and # # minimum time between callbacks # ################################################################### record(bo, "$(CAM):HDF5$(N):EnableCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ENABLE_CALLBACKS") field(ZNAM, "Disabled") field(ONAM, "Enabled") field(VAL, "0") info(autosaveFields, "DESC VAL") } record(bi, "$(CAM):HDF5$(N):EnableCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))ENABLE_CALLBACKS") field(ZNAM, "Disabled") field(ONAM, "Enabled") field(ZSV, "MINOR") field(OSV, "NO_ALARM") field(SCAN, "I/O Intr") } record(ao, "$(CAM):HDF5$(N):MinCallbackTime") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MIN_CALLBACK_TIME") field(EGU, "s") field(PREC, "3") field(VAL, "0.0") field(DRVL, "0") info(autosaveFields, "VAL") } record(ai, "$(CAM):HDF5$(N):MinCallbackTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MIN_CALLBACK_TIME") field(EGU, "s") field(PREC, "3") field(SCAN, "I/O Intr") } record(ao, "$(CAM):HDF5$(N):MaxArrayRate") { field(DTYP, "Soft Channel") field(OUT, "$(CAM):HDF5$(N):MaxArrayRate_COUT PP") field(EGU, "Hz") field(PREC, "3") field(VAL, "0.0") info(autosaveFields, "VAL") } record(calcout, "$(CAM):HDF5$(N):MaxArrayRate_COUT") { field(INPA, "$(CAM):HDF5$(N):MaxArrayRate") field(CALC, "A=0?0:1.0/A") field(OUT, "$(CAM):HDF5$(N):MinCallbackTime PP") } record(calc, "$(CAM):HDF5$(N):MaxArrayRate_RBV") { field(INPA, "$(CAM):HDF5$(N):MinCallbackTime_RBV CP") field(CALC, "A=0?0:1.0/A") field(EGU, "Hz") field(PREC, "3") field(SCAN, "Passive") } record(ao, "$(CAM):HDF5$(N):MaxByteRate") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MAX_BYTE_RATE") field(EGU, "s") field(PREC, "3") field(VAL, "0.0") field(DRVL, "0") info(autosaveFields, "VAL") } record(ai, "$(CAM):HDF5$(N):MaxByteRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MAX_BYTE_RATE") field(EGU, "s") field(PREC, "3") field(SCAN, "I/O Intr") } ################################################################### # This record contains the last execution time of the plugin # ################################################################### record(ai, "$(CAM):HDF5$(N):ExecutionTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))EXECUTION_TIME") field(EGU, "ms") field(PREC, "3") field(SCAN, "I/O Intr") } ################################################################### # This record requests that the plugin execute again with the # # same NDArray # ################################################################### record(bo, "$(CAM):HDF5$(N):ProcessPlugin") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))PROCESS_PLUGIN") field(VAL, "1") } ################################################################### # These records control whether callbacks block or not # ################################################################### record(bo, "$(CAM):HDF5$(N):BlockingCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))BLOCKING_CALLBACKS") field(ZNAM, "No") field(ONAM, "Yes") field(VAL, "0") info(autosaveFields, "DESC ZSV OSV VAL") } record(bi, "$(CAM):HDF5$(N):BlockingCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))BLOCKING_CALLBACKS") field(ZNAM, "No") field(ONAM, "Yes") field(ZSV, "NO_ALARM") field(OSV, "MINOR") field(SCAN, "I/O Intr") info( autosaveFields, "DESC ZSV OSV" ) } record(longout, "$(CAM):HDF5$(N):DroppedArrays") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DROPPED_ARRAYS") field(VAL, "0") info( autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU" ) } record(longin, "$(CAM):HDF5$(N):DroppedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DROPPED_ARRAYS") field(SCAN, "I/O Intr") field(HIGH, "1") field(HSV, "MINOR") info( autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU" ) } record(longout, "$(CAM):HDF5$(N):QueueSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))QUEUE_SIZE") field(PINI, "YES") info( autosaveFields, "DESC EGU" ) } record(longin, "$(CAM):HDF5$(N):QueueSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))QUEUE_SIZE") field(FLNK, "$(CAM):HDF5$(N):QueueFreeLow") field(SCAN, "I/O Intr") } record(calcout, "$(CAM):HDF5$(N):QueueFreeLow") { field(CALC, "A*0.25") field(INPA, "$(CAM):HDF5$(N):QueueSize") field(OUT, "$(CAM):HDF5$(N):QueueFree.LOW") field(FLNK, "$(CAM):HDF5$(N):QueueUseHIGH") } # Set a HIGH warning level for the input queue fill level to 75% # of the full size of the queue record(calcout, "$(CAM):HDF5$(N):QueueUseHIGH") { field(CALC, "A*0.75") field(INPA, "$(CAM):HDF5$(N):QueueSize") field(OUT, "$(CAM):HDF5$(N):QueueUse.HIGH") field(FLNK, "$(CAM):HDF5$(N):QueueUseHIHI") } # Set a HIHI level for the input queue fill level to indicate an error # (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) record(calcout, "$(CAM):HDF5$(N):QueueUseHIHI") { field(CALC, "A*1.0") field(INPA, "$(CAM):HDF5$(N):QueueSize") field(OUT, "$(CAM):HDF5$(N):QueueUse.HIHI") } record(longin, "$(CAM):HDF5$(N):QueueFree") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))QUEUE_FREE") field(LLSV, "MAJOR") field(LSV, "MINOR") field(LOLO, "0") field(HYST, "1") field(SCAN, "I/O Intr") } # Display the fill level on the plugins input queue record(calc, "$(CAM):HDF5$(N):QueueUse") { field(CALC, "A-B") field(INPA, "$(CAM):HDF5$(N):QueueSize") field(INPB, "$(CAM):HDF5$(N):QueueFree CP") field(SCAN, "Passive") field(HHSV, "MAJOR") field(HSV, "MINOR") field(HYST, "1") } record(longout, "$(CAM):HDF5$(N):NumThreads") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_THREADS") field(VAL, "1") field(PINI, "YES") info(autosaveFields, "DESC VAL") } record(longin, "$(CAM):HDF5$(N):NumThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))NUM_THREADS") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):MaxThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))MAX_THREADS") field(SCAN, "I/O Intr") } ################################################################### # These records control output array sorting # ################################################################### record(mbbo, "$(CAM):HDF5$(N):SortMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_MODE") field(ZRVL, "0") field(ZRST, "Unsorted") field(ONVL, "1") field(ONST, "Sorted") } record(mbbi, "$(CAM):HDF5$(N):SortMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_MODE") field(ZRVL, "0") field(ZRST, "Unsorted") field(ONVL, "1") field(ONST, "Sorted") field(SCAN, "I/O Intr") } record(ao, "$(CAM):HDF5$(N):SortTime") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_TIME") field(PREC, "3") field(VAL, "0.1") } record(ai, "$(CAM):HDF5$(N):SortTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_TIME") field(PREC, "3") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):SortSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_SIZE") field(VAL, "20") field(PINI, "YES") } record(longin, "$(CAM):HDF5$(N):SortSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_SIZE") field(FLNK, "$(CAM):HDF5$(N):SortFreeLow") field(SCAN, "I/O Intr") } record(longin, "$(CAM):HDF5$(N):SortFree") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))SORT_FREE") field(LLSV, "MAJOR") field(LSV, "MINOR") field(LOLO, "0") field(HYST, "1") field(SCAN, "I/O Intr") } record(calcout, "$(CAM):HDF5$(N):SortFreeLow") { field(CALC, "A*0.25") field(INPA, "$(CAM):HDF5$(N):SortSize") field(OUT, "$(CAM):HDF5$(N):SortFree.LOW") } record(longout, "$(CAM):HDF5$(N):DroppedOutputArrays") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DROPPED_OUTPUT_ARRAYS") field(VAL, "0") } record(longin, "$(CAM):HDF5$(N):DroppedOutputArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DROPPED_OUTPUT_ARRAYS") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):DisorderedArrays") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DISORDERED_ARRAYS") field(PINI, "YES") } record(longin, "$(CAM):HDF5$(N):DisorderedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))DISORDERED_ARRAYS") field(SCAN, "I/O Intr") } ################################################################### # The asynRecord is used for mainly for trace mask # ################################################################### # Set ASYN_TRACEIO_HEX bit by default record(asyn,"$(CAM):HDF5$(N):AsynIO") { field(PORT, "HDF5$(N)") field(TIB2,"1") info("ADType", "ADPlugin") } # Flush data to file record(busy, "$(CAM):HDF5$(N):FlushNow") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):FileFormat") { field(ZRST, "HDF5") field(ZRVL, "0") field(ONST, "Invalid") field(ONVL, "1") } record(mbbi, "$(CAM):HDF5$(N):FileFormat_RBV") { field(ZRST, "HDF5") field(ZRVL, "0") field(ONST, "Undefined") field(ONVL, "1") } record(bo, "$(CAM):HDF5$(N):ChunkSizeAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSizeAuto") field(PINI, "YES") field(ZNAM, "No") field(ONAM, "Yes") field(VAL, "1") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):ChunkSizeAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSizeAuto") field(SCAN, "I/O Intr") field(ZNAM, "No") field(ONAM, "Yes") } record(longout, "$(CAM):HDF5$(N):NumRowChunks") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nRowChunks") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumRowChunks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nRowChunks") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):NumColChunks") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nColChunks") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumColChunks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nColChunks") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize2") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize2") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize2_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize2") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize3") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize3") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize3_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize3") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize4") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize4") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize4_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize4") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize5") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize5") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize5_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize5") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize6") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize6") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize6_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize6") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize7") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize7") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize7_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize7") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize8") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize8") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize8_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize8") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ChunkSize9") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize9") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ChunkSize9_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkSize9") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):NumFramesChunks") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nFramesChunks") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumFramesChunks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nFramesChunks") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):NDAttributeChunk") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_NDAttributeChunk") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NDAttributeChunk_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_NDAttributeChunk") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):BoundaryAlign") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryAlign") field(PINI, "YES") field(VAL, "0") field(EGU, "bytes") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):BoundaryAlign_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryAlign") field(SCAN, "I/O Intr") field(EGU, "bytes") } record(longout, "$(CAM):HDF5$(N):BoundaryThreshold") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryThreshold") field(PINI, "YES") field(VAL, "1") field(EGU, "bytes") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):BoundaryThreshold_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_chunkBoundaryThreshold") field(SCAN, "I/O Intr") field(EGU, "bytes") } record(longout, "$(CAM):HDF5$(N):NumExtraDims") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nExtraDims") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumExtraDims_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nExtraDims") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSizeN") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeN") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSizeN_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeN") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimNameN_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimNameN") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSizeX") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeX") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeX") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimNameX_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimNameX") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSizeY") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeY") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSizeY") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimNameY_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimNameY") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize3") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize3") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize3_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize3") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName3_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName3") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize4") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize4") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize4_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize4") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName4_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName4") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize5") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize5") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize5_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize5") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName5_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName5") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize6") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize6") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize6_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize6") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName6_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName6") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize7") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize7") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize7_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize7") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName7_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName7") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize8") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize8") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize8_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize8") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName8_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName8") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimSize9") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize9") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimSize9_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimSize9") field(SCAN, "I/O Intr") } record(stringin, "$(CAM):HDF5$(N):ExtraDimName9_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimName9") field(SCAN, "I/O Intr") } record(bo, "$(CAM):HDF5$(N):StoreAttr") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_storeAttributes") field(PINI, "YES") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):StoreAttr_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_storeAttributes") field(SCAN, "I/O Intr") field(ZNAM, "No") field(ONAM, "Yes") } record(bo, "$(CAM):HDF5$(N):StorePerform") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_storePerformance") field(PINI, "YES") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):StorePerform_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_storePerformance") field(SCAN, "I/O Intr") field(ZNAM, "No") field(ONAM, "Yes") } record(ai, "$(CAM):HDF5$(N):RunTime") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_totalRuntime") field(SCAN, "I/O Intr") field(PREC, "3") field(EGU, "s") } record(ai, "$(CAM):HDF5$(N):IOSpeed") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_totalIoSpeed") field(SCAN, "I/O Intr") field(PREC, "1") field(EGU, "Mbit/s") } record(longout, "$(CAM):HDF5$(N):NumFramesFlush") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_flushNthFrame") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumFramesFlush_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_flushNthFrame") field(SCAN, "I/O Intr") } record(mbbo, "$(CAM):HDF5$(N):Compression") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):Compression_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):NumDataBits") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsPrecision") field(PINI, "YES") field(EGU, "bit") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):NumDataBits_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsPrecision") field(SCAN, "I/O Intr") field(EGU, "bit") } record(longout, "$(CAM):HDF5$(N):DataBitsOffset") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsOffset") field(PINI, "YES") field(EGU, "bit") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):DataBitsOffset_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_nbitsOffset") field(SCAN, "I/O Intr") field(EGU, "bit") } record(longout, "$(CAM):HDF5$(N):SZipNumPixels") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_szipNumPixels") field(PINI, "YES") field(EGU, "bit") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):SZipNumPixels_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_szipNumPixels") field(SCAN, "I/O Intr") field(EGU, "bit") } record(longout, "$(CAM):HDF5$(N):ZLevel") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_zCompressLevel") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ZLevel_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_zCompressLevel") field(SCAN, "I/O Intr") } record(mbbo, "$(CAM):HDF5$(N):BloscShuffle") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):BloscShuffle_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):BloscCompressor") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):BloscCompressor_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):BloscLevel") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscCompressLevel") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):BloscLevel_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_bloscCompressLevel") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):JPEGQuality") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_jpegQuality") field(VAL, "90") field(DRVL, "1") field(DRVH, "100") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):JPEGQuality_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_jpegQuality") field(SCAN, "I/O Intr") } record(bo, "$(CAM):HDF5$(N):DimAttDatasets") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_dimAttDatasets") field(PINI, "YES") field(ZNAM, "No") field(ONAM, "Yes") info(autosaveFields, "VAL") } record(bi, "$(CAM):HDF5$(N):DimAttDatasets_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_dimAttDatasets") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } # File path. # % autosave 2 #record(waveform, "$(CAM):HDF5$(N):XMLPath") #{ # field(PINI, "YES") # field(DTYP, "asynOctetWrite") # field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutDirectory") # field(FTVL, "CHAR") # field(NELM, "256") #} record(waveform, "$(CAM):HDF5$(N):XMLErrorMsg_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutErrorMsg") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(bi, "$(CAM):HDF5$(N):XMLValid_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(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, "$(CAM):HDF5$(N):XMLFileName") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutFilename") field(FTVL, "CHAR") field(NELM, "2048") info(autosaveFields, "VAL") } record(waveform, "$(CAM):HDF5$(N):XMLFileName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_layoutFilename") field(FTVL, "CHAR") field(NELM, "2048") field(SCAN, "I/O Intr") } record(bi, "$(CAM):HDF5$(N):SWMRSupported_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRSupported") field(SCAN, "I/O Intr") field(ZNAM, "Not Supported") field(ONAM, "Supported") } record(bo, "$(CAM):HDF5$(N):SWMRMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRMode") field(PINI, "YES") field(ZNAM, "Off") field(ONAM, "On") } record(bi, "$(CAM):HDF5$(N):SWMRMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRMode") field(SCAN, "I/O Intr") field(ZNAM, "Off") field(ONAM, "On") } record(bi, "$(CAM):HDF5$(N):SWMRActive_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRRunning") field(SCAN, "I/O Intr") field(ZNAM, "Off") field(ONAM, "Active") } record(longin, "$(CAM):HDF5$(N):SWMRCbCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_SWMRCbCounter") field(SCAN, "I/O Intr") } record(bo, "$(CAM):HDF5$(N):PositionMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posRunning") field(PINI, "YES") field(ZNAM, "Off") field(ONAM, "On") } record(bi, "$(CAM):HDF5$(N):PositionMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posRunning") field(SCAN, "I/O Intr") field(ZNAM, "Off") field(ONAM, "On") } record(stringout, "$(CAM):HDF5$(N):PosNameDimN") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimN") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDimN_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimN") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDimX") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimX") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDimX_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimX") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDimY") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimY") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDimY_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDimY") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim3") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim3") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim3_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim3") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim4") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim4") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim4_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim4") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim5") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim5") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim5_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim5") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim6") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim6") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim6_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim6") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim7") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim7") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim7_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim7") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim8") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim8") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim8_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim8") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosNameDim9") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim9") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosNameDim9_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posNameDim9") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDimN") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimN") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDimN_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimN") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDimX") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimX") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDimX_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimX") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDimY") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimY") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDimY_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDimY") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim3") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim3") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim3_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim3") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim4") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim4") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim4_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim4") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim5") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim5") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim5_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim5") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim6") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim6") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim6_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim6") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim7") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim7") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim7_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim7") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim8") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim8") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim8_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim8") field(SCAN, "I/O Intr") } record(stringout, "$(CAM):HDF5$(N):PosIndexDim9") { field(DTYP, "asynOctetWrite") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim9") field(PINI, "YES") } record(stringin, "$(CAM):HDF5$(N):PosIndexDim9_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_posIndexDim9") field(SCAN, "I/O Intr") } record(ao, "$(CAM):HDF5$(N):FillValue") { field(DTYP, "asynFloat64") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_fillValue") field(PINI, "YES") field(PREC, "1") } record(ai, "$(CAM):HDF5$(N):FillValue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_fillValue") field(SCAN, "I/O Intr") field(PREC, "1") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunkX") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkX") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunkX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkX") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunkY") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkY") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunkY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunkY") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk3") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk3") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk3_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk3") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk4") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk4") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk4_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk4") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk5") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk5") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk5_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk5") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk6") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk6") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk6_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk6") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk7") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk7") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk7_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk7") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk8") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk8") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk8_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk8") field(SCAN, "I/O Intr") } record(longout, "$(CAM):HDF5$(N):ExtraDimChunk9") { field(DTYP, "asynInt32") field(OUT, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk9") field(PINI, "YES") info(autosaveFields, "VAL") } record(longin, "$(CAM):HDF5$(N):ExtraDimChunk9_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(HDF5$(N),$(ADDR=0),$(TIMEOUT=1))HDF5_extraDimChunk9") field(SCAN, "I/O Intr") }