# Database for the records specific to the marCCD driver # Mark Rivers # October 31, 2008 record(longin,"$(P)$(R)MarState_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_STATE") field(SCAN, "I/O Intr") field(DESC,"Task state") } # State word record(longin,"$(P)$(R)MarState_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_STATE") field(SCAN, "I/O Intr") field(DESC,"Task state") } # Status field for low order 4 bits (should only be IDLE, ERROR or BUSY) record(mbbi,"$(P)$(R)MarStatus_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_STATUS") field(SCAN, "I/O Intr") field(DESC,"Task status") field(ZRVL,"0") field(ZRST,"Idle") field(ZRSV,"NO_ALARM") field(ONVL,"1") field(ONST,"Unknown 1") field(ONSV, "INVALID") field(TWVL,"2") field(TWST,"Unknown 2") field(TWSV, "INVALID") field(THVL,"3") field(THST,"Undefined 3") field(THSV, "INVALID") field(FRVL,"4") field(FRST,"Error") field(FRSV, "MAJOR") field(FVVL,"5") field(FVST,"Undefined 5") field(FVSV, "INVALID") field(SXVL,"6") field(SXST,"Undefined 6") field(SXSV, "INVALID") field(SVVL,"7") field(SVST,"Undefined 7") field(SVSV, "INVALID") field(EIVL,"8") field(EIST,"Busy") field(EISV, "MINOR") } # Individual status fields for the Acquire, Readout, Correct, Writing, and Dezinger tasks record(mbbi,"$(P)$(R)MarAcquireStatus_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_ACQUIRE_STATUS") field(SCAN, "I/O Intr") field(DESC,"Acquire status") field(ZRVL,"0") field(ZRST,"Idle") field(ZRSV,"NO_ALARM") field(ONVL,"1") field(ONST,"Queued") field(ONSV, "MINOR") field(TWVL,"2") field(TWST,"Executing") field(TWSV, "MINOR") field(THVL,"3") field(THST,"Undefined 3") field(THSV, "INVALID") field(FRVL,"4") field(FRST,"Error") field(FRSV, "MAJOR") field(FVVL,"5") field(FVST,"Undefined 5") field(FVSV, "INVALID") field(SXVL,"6") field(SXST,"Undefined 6") field(SXSV, "INVALID") field(SVVL,"7") field(SVST,"Undefined 7") field(SVSV, "INVALID") field(EIVL,"8") field(EIST,"Reserved") field(EISV, "MINOR") } record(mbbi,"$(P)$(R)MarReadoutStatus_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_READOUT_STATUS") field(SCAN, "I/O Intr") field(DESC,"Readout status") field(ZRVL,"0") field(ZRST,"Idle") field(ZRSV,"NO_ALARM") field(ONVL,"1") field(ONST,"Queued") field(ONSV, "MINOR") field(TWVL,"2") field(TWST,"Executing") field(TWSV, "MINOR") field(THVL,"3") field(THST,"Undefined 3") field(THSV, "INVALID") field(FRVL,"4") field(FRST,"Error") field(FRSV, "MAJOR") field(FVVL,"5") field(FVST,"Undefined 5") field(FVSV, "INVALID") field(SXVL,"6") field(SXST,"Undefined 6") field(SXSV, "INVALID") field(SVVL,"7") field(SVST,"Undefined 7") field(SVSV, "INVALID") field(EIVL,"8") field(EIST,"Reserved") field(EISV, "MINOR") } record(mbbi,"$(P)$(R)MarCorrectStatus_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_CORRECT_STATUS") field(SCAN, "I/O Intr") field(DESC,"Correct status") field(ZRVL,"0") field(ZRST,"Idle") field(ZRSV,"NO_ALARM") field(ONVL,"1") field(ONST,"Queued") field(ONSV, "MINOR") field(TWVL,"2") field(TWST,"Executing") field(TWSV, "MINOR") field(THVL,"3") field(THST,"Undefined 3") field(THSV, "INVALID") field(FRVL,"4") field(FRST,"Error") field(FRSV, "MAJOR") field(FVVL,"5") field(FVST,"Undefined 5") field(FVSV, "INVALID") field(SXVL,"6") field(SXST,"Undefined 6") field(SXSV, "INVALID") field(SVVL,"7") field(SVST,"Undefined 7") field(SVSV, "INVALID") field(EIVL,"8") field(EIST,"Reserved") field(EISV, "MINOR") } record(mbbi,"$(P)$(R)MarWritingStatus_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_WRITING_STATUS") field(SCAN, "I/O Intr") field(DESC,"Writing status") field(ZRVL,"0") field(ZRST,"Idle") field(ZRSV,"NO_ALARM") field(ONVL,"1") field(ONST,"Queued") field(ONSV, "MINOR") field(TWVL,"2") field(TWST,"Executing") field(TWSV, "MINOR") field(THVL,"3") field(THST,"Undefined 3") field(THSV, "INVALID") field(FRVL,"4") field(FRST,"Error") field(FRSV, "MAJOR") field(FVVL,"5") field(FVST,"Undefined 5") field(FVSV, "INVALID") field(SXVL,"6") field(SXST,"Undefined 6") field(SXSV, "INVALID") field(SVVL,"7") field(SVST,"Undefined 7") field(SVSV, "INVALID") field(EIVL,"8") field(EIST,"Reserved") field(EISV, "MINOR") } record(mbbi,"$(P)$(R)MarDezingerStatus_RBV") { field(DTYP,"asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_DEZINGER_STATUS") field(SCAN, "I/O Intr") field(DESC,"Dezinger status") field(ZRVL,"0") field(ZRST,"Idle") field(ZRSV,"NO_ALARM") field(ONVL,"1") field(ONST,"Queued") field(ONSV, "MINOR") field(TWVL,"2") field(TWST,"Executing") field(TWSV, "MINOR") field(THVL,"3") field(THST,"Undefined 3") field(THSV, "INVALID") field(FRVL,"4") field(FRST,"Error") field(FRSV, "MAJOR") field(FVVL,"5") field(FVST,"Undefined 5") field(FVSV, "INVALID") field(SXVL,"6") field(SXST,"Undefined 6") field(SXSV, "INVALID") field(SVVL,"7") field(SVST,"Undefined 7") field(SVSV, "INVALID") field(EIVL,"8") field(EIST,"Reserved") field(EISV, "MINOR") } # Timeout waiting for TIFF file. record(ao, "$(P)$(R)ReadTiffTimeout") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_TIFF_TIMEOUT") field(DESC, "Timeout for TIFF file") field(VAL, "30") field(EGU, "s") field(PREC, "3") } # Overlap operation record(bo, "$(P)$(R)OverlapMode") { field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_OVERLAP") field(PINI, "YES") field(DESC, "Overlap or sequential") field(ZNAM, "Sequential") field(ONAM, "Overlap") } record(bi, "$(P)$(R)OverlapMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_OVERLAP") field(SCAN, "I/O Intr") field(DESC, "Overlap or sequential") field(ZNAM, "Sequential") field(ONAM, "Overlap") } # Frame shift record(longout, "$(P)$(R)FrameShift") { field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_FRAME_SHIFT") field(PINI, "YES") field(DESC, "Frame shift lines") } record(longin, "$(P)$(R)FrameShift_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_FRAME_SHIFT") field(SCAN, "I/O Intr") field(DESC, "Frame shift lines") } # Baseline stability record(ao, "$(P)$(R)Stability") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_STABILITY") field(PINI, "YES") field(PREC, "2") field(DESC, "Baseline stability") } record(ai, "$(P)$(R)Stability_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_STABILITY") field(SCAN, "I/O Intr") field(PREC, "2") field(DESC, "Baseline stability") } # We replace the choice fields for FrameType from ADBase.template record(mbbo, "$(P)$(R)FrameType") { field(ZRST, "Normal") field(ZRVL, "0") field(ONST, "Background") field(ONVL, "1") field(TWST, "Raw") field(TWVL, "2") field(THST, "DblCorrelation") field(THVL, "3") } record(mbbi, "$(P)$(R)FrameType_RBV") { field(ZRST, "Normal") field(ZRVL, "0") field(ONST, "Background") field(ONVL, "1") field(TWST, "Raw") field(TWVL, "2") field(THST, "DblCorrelation") field(THVL, "3") field(SCAN, "I/O Intr") } # We replace the file format choices from ADBase.template record(mbbo, "$(P)$(R)FileFormat") { field(ZRST, "TIFF") field(ZRVL, "0") field(ONST, "Invalid") field(ONVL, "1") } record(mbbi, "$(P)$(R)FileFormat_RBV") { field(ZRST, "TIFF") field(ZRVL, "0") field(ONST, "Invalid") field(ONVL, "1") field(SCAN, "I/O Intr") } # asyn record for interactive communication with marServer record(asyn, "$(P)$(R)marServerAsyn") { field(PORT, "$(MARSERVER_PORT)") field(IMAX, "64") field(OMAX, "64") } # Records with auxiliary information record(ao, "$(P)$(R)DetectorDistance") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_DETECTOR_DISTANCE") field(PINI, "YES") field(PREC, "3") field(EGU, "mm") } record(ao, "$(P)$(R)BeamX") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_BEAM_X") field(PINI, "YES") field(PREC, "3") field(EGU, "mm") } record(ao, "$(P)$(R)BeamY") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_BEAM_Y") field(PINI, "YES") field(PREC, "3") field(EGU, "mm") } record(ao, "$(P)$(R)StartPhi") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_START_PHI") field(PINI, "YES") field(PREC, "3") field(EGU, "deg") } record(stringout, "$(P)$(R)RotationAxis") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_ROTATION_AXIS") } record(ao, "$(P)$(R)RotationRange") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_ROTATION_RANGE") field(PINI, "YES") field(PREC, "3") field(EGU, "deg") } record(ao, "$(P)$(R)TwoTheta") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_TWO_THETA") field(PINI, "YES") field(PREC, "3") field(EGU, "deg") } record(ao, "$(P)$(R)Wavelength") { field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_WAVELENGTH") field(PINI, "YES") field(PREC, "4") field(EGU, "Angstrom") } record(waveform, "$(P)$(R)FileComments") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_FILE_COMMENTS") field(FTVL, "CHAR") field(NELM, "256") } record(waveform, "$(P)$(R)DatasetComments") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAR_DATASET_COMMENTS") field(FTVL, "CHAR") field(NELM, "256") }