# Database for the records specific to the Andor SDK3 cameras # Phillip Sorensen # October 8, 2012 ############################################################################### # Note: The following are records defined in ADBase.template. # # We are changing some of the fields here to reflect valid values for # # Andor SDK3 # ############################################################################### ############################################################################### # These records control the data type and color. # ############################################################################### # Only unsigned 16 and 32 bit integers are supported. Determined by PixelEncoding record(mbbo, "$(P)$(R)DataType") { 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, "") } # Only Mono color mode is supported at this time record(mbbo, "$(P)$(R)ColorMode") { field(ZRST, "Mono") field(ZRVL, "0") field(ONST, "") field(ONVL, "") 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)ColorMode_RBV") { field(ZRST, "Mono") field(ZRVL, "0") field(ONST, "") field(ONVL, "") field(TWST, "") field(TWVL, "") field(THST, "") field(THVL, "") field(FRST, "") field(FRVL, "") field(FVST, "") field(FVVL, "") field(SXST, "") field(SXVL, "") field(SVST, "") field(SVVL, "") } # The following records are specific to the Andor SDK3 # Note that we don't define the choices for mbbo and mbii records here. # These choices are built at iocInit by reading the list of valid choices # from the Andor SDK. This is very nice because they automatically change # depending on the capabilities of the camera. ############################################################################### # These records are additional acquisition parameters # ############################################################################### record(ao, "$(P)$(R)FrameRate") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_FRAME_RATE") field(VAL, "10") } record(ai, "$(P)$(R)FrameRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_FRAME_RATE") field(PREC, "3") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)PreAmpGain") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_PREAMP_GAIN") } record(mbbi, "$(P)$(R)PreAmpGain_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_PREAMP_GAIN") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)ReadoutRate") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_READOUT_RATE") } record(mbbi, "$(P)$(R)ReadoutRate_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_READOUT_RATE") field(SCAN, "I/O Intr") } record(bo, "$(P)$(R)Overlap") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_OVERLAP") field(ZNAM, "No") field(ONAM, "Yes") } record(bi, "$(P)$(R)Overlap_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_OVERLAP") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(bo, "$(P)$(R)NoiseFilter") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_NOISE_FILTER") field(ZNAM, "No") field(ONAM, "Yes") } record(bi, "$(P)$(R)NoiseFilter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_NOISE_FILTER") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)PixelEncoding") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_PIXEL_ENCODING") } record(mbbi, "$(P)$(R)PixelEncoding_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_PIXEL_ENCODING") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)ReadoutTime") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_READOUT_TIME") field(PREC, "4") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)TransferRate") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_TRANSFER_RATE") field(PREC, "3") field(SCAN, "I/O Intr") } record(bi, "$(P)$(R)FullAOIControl") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_FULL_AOI_CONTROL") field(ZNAM, "No") field(ONAM, "Yes") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)A3Binning") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_BINNING") } record(mbbi, "$(P)$(R)A3Binning_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_BINNING") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)A3ShutterMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SHUTTER_MODE") } record(mbbi, "$(P)$(R)A3ShutterMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SHUTTER_MODE") field(SCAN, "I/O Intr") } record(bo, "$(P)$(R)SoftwareTrigger") { field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SOFTWARE_TRIGGER") field(ZNAM, "Done") field(ONAM, "Trigger") } record(bo, "$(P)$(R)SensorCooling") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SENSOR_COOLING") field(ZNAM, "Off") field(ONAM, "On") } record(bi, "$(P)$(R)SensorCooling_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SENSOR_COOLING") field(SCAN, "I/O Intr") field(ZNAM, "Off") field(ONAM, "On") } record(mbbo, "$(P)$(R)TempControl") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_TEMP_CONTROL") } record(mbbi, "$(P)$(R)TempControl_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_TEMP_CONTROL") field(SCAN, "I/O Intr") } record(mbbi, "$(P)$(R)TempStatus_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_TEMP_STATUS") field(SCAN, "I/O Intr") } record(mbbo, "$(P)$(R)FanSpeed") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_FAN_SPEED") } record(mbbi, "$(P)$(R)FanSpeed_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_FAN_SPEED") field(SCAN, "I/O Intr") } record(stringin, "$(P)$(R)SerialNumber") { field(PINI, "YES") field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SERIAL_NUMBER") } record(stringin, "$(P)$(R)FirmwareVersion") { field(PINI, "YES") field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_FIRMWARE_VERSION") } record(stringin, "$(P)$(R)SoftwareVersion") { field(PINI, "YES") field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_SOFTWARE_VERSION") } record(stringin, "$(P)$(R)ControllerID") { field(PINI, "YES") field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))A3_CONTROLLER_ID") }