# Database for the records specific to the Andor CCD. # Matthew Pearson # June 2009 # These are the records that we modify from NDFile.template record(mbbo, "$(P)$(R)FileFormat") { field(ZRST, "TIFF") field(ZRVL, "0") field(ONST, "BMP") field(ONVL, "1") field(TWST, "SIF") field(TWVL, "2") field(THST, "EDF") field(THVL, "3") field(FRST, "RAW") field(FRVL, "4") field(FVST, "FITS") field(FVVL, "5") } # These are the records that we modify from NDFile.template record(mbbi, "$(P)$(R)FileFormat_RBV") { field(ZRST, "TIFF") field(ZRVL, "0") field(ONST, "BMP") field(ONVL, "1") field(TWST, "SIF") field(TWVL, "2") field(THST, "EDF") field(THVL, "3") field(FRST, "RAW") field(FRVL, "4") field(FVST, "FITS") field(FVVL, "5") } record(mbbo, "$(P)$(R)ImageMode") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Multiple") field(ONVL, "1") field(TWST, "Continuous") field(TWVL, "2") field(THST, "Fast Kinetics") field(THVL, "3") field(VAL, "2") } record(mbbi, "$(P)$(R)ImageMode_RBV") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Multiple") field(ONVL, "1") field(TWST, "Continuous") field(TWVL, "2") field(THST, "Fast Kinetics") field(THVL, "3") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)TriggerMode") { field(ZRST, "Internal") field(ZRVL, "0") field(ONST, "External") field(ONVL, "1") field(TWST, "External Start") field(TWVL, "6") field(THST, "External Exposure") field(THVL, "7") field(FRST, "External FVP") field(FRVL, "9") field(FVST, "Software") field(FVVL, "10") } record(mbbi, "$(P)$(R)TriggerMode_RBV") { field(ZRST, "Internal") field(ZRVL, "0") field(ONST, "External") field(ONVL, "1") field(TWST, "External Start") field(TWVL, "6") field(THST, "External Exposure") field(THVL, "7") field(FRST, "External FVP") field(FRVL, "9") field(FVST, "Software") field(FVVL, "10") } record(mbbo, "$(P)$(R)DataType") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DATA_TYPE") field(ZRST, "UInt16") field(ZRVL, "3") field(ONST, "UInt32") field(ONVL, "5") field(TWST, "") field(TWVL, "") field(THST, "") field(THVL, "") field(FRST, "") field(FRVL, "") field(FVST, "") field(FVVL, "") field(SXST, "") field(SXVL, "") field(SVST, "") field(SVVL, "") } record(mbbi, "$(P)$(R)DataType_RBV") { field(ZRST, "UInt16") field(ZRVL, "3") field(ONST, "UInt32") field(ONVL, "5") field(TWST, "") field(TWVL, "") field(THST, "") field(THVL, "") field(FRST, "") field(FRVL, "") field(FVST, "") field(FVVL, "") field(SXST, "") field(SXVL, "") field(SVST, "") field(SVVL, "") } # These are the records that are new for the Andor detector record(bo, "$(P)$(R)AndorCooler") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_COOLER") field(ZNAM, "Off") field(ONAM, "On") } record(bi, "$(P)$(R)AndorCooler_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_COOLER") field(ZNAM, "Off") field(ONAM, "On") field(SCAN, "I/O Intr") } # Accumulation period. record(ao, "$(P)$(R)AndorAccumulatePeriod") { field(PINI, "1") field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_ACCUMULATE_PERIOD") field(PREC, "3") field(VAL, "0.1") } record(ai, "$(P)$(R)AndorAccumulatePeriod_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_ACCUMULATE_PERIOD") field(PREC, "3") field(SCAN, "I/O Intr") } # Status message concerning temperature. record(waveform, "$(P)$(R)AndorTempStatus_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_TEMP_STAT") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } # Status message not related to data acquisition (error messages, information messages, etc.) record(waveform, "$(P)$(R)AndorMessage_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_MESSAGE") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)AndorShutterMode") { field(PINI, "1") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_SHUTTER_MODE") field(ZRST, "Auto") field(ZRVL, "0") field(ONST, "Open") field(ONVL, "1") } record(bo, "$(P)$(R)AndorShutterExTTL") { field(PINI, "1") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_SHUTTER_EXTTL") field(ZNAM, "Low To Open") field(ONAM, "High To Open") field(RVAL, "1") } # Filename of the PAL file record(waveform, "$(P)$(R)PALFilePath") { field(PINI, "1") field(DTYP, "asynOctetWrite") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_PAL_FILE_PATH") field(FTVL, "CHAR") field(NELM, "256") } record(waveform, "$(P)$(R)PALFilePath_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_PAL_FILE_PATH") field(FTVL, "CHAR") field(NELM, "256") field(SCAN, "I/O Intr") } # The ADC speed enum values are constructed at run-time based on camera capabilities record(mbbo, "$(P)$(R)AndorADCSpeed") { field(PINI, "1") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_ADC_SPEED") } #% archiver 10 Monitor record(mbbi, "$(P)$(R)AndorADCSpeed_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_ADC_SPEED") field(SCAN, "I/O Intr") } # The pre-amp gain enum values are constructed at run-time based on camera capabilities record(mbbo, "$(P)$(R)AndorPreAmpGain") { field(PINI, "1") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_PREAMP_GAIN") } #% archiver 10 Monitor record(mbbi, "$(P)$(R)AndorPreAmpGain_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_PREAMP_GAIN") field(SCAN, "I/O Intr") } #Records in ADBase that do not apply to Andor record(mbbo, "$(P)$(R)ColorMode") { field(DISA, "1") } record(mbbi, "$(P)$(R)ColorMode_RBV") { field(DISA, "1") } record(bo, "$(P)$(R)ReverseX") { field(DISA, "1") } record(bi, "$(P)$(R)ReverseX_RBV") { field(DISA, "1") } record(bo, "$(P)$(R)ReverseY") { field(DISA, "1") } record(bi, "$(P)$(R)ReverseY_RBV") { field(DISA, "1") }