diff --git a/andorApp/Db/andorCCD.template b/andorApp/Db/andorCCD.template index 1fe2bc7..bcee208 100644 --- a/andorApp/Db/andorCCD.template +++ b/andorApp/Db/andorCCD.template @@ -277,6 +277,22 @@ record(mbbi, "$(P)$(R)AndorPreAmpGain_RBV") field(SCAN, "I/O Intr") } +record(bo, "$(P)$(R)AndorBaselineClamp") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_BASELINE_CLAMP") + field(ZNAM, "Disable") + field(ONAM, "Enable") +} + +record(bi, "$(P)$(R)AndorBaselineClamp_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANDOR_BASELINE_CLAMP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(SCAN, "I/O Intr") +} #Records in ADBase that do not apply to Andor diff --git a/andorApp/src/andorCCD.cpp b/andorApp/src/andorCCD.cpp index 42ef9be..c5ff2f1 100755 --- a/andorApp/src/andorCCD.cpp +++ b/andorApp/src/andorCCD.cpp @@ -136,6 +136,7 @@ AndorCCD::AndorCCD(const char *portName, const char *installPath, int shamrockID createParam(AndorAccumulatePeriodString, asynParamFloat64, &AndorAccumulatePeriod); createParam(AndorPreAmpGainString, asynParamInt32, &AndorPreAmpGain); createParam(AndorAdcSpeedString, asynParamInt32, &AndorAdcSpeed); + createParam(AndorBaselineClampString, asynParamInt32, &AndorBaselineClamp); // Create the epicsEvent for signaling to the status task when parameters should have changed. // This will cause it to do a poll immediately, rather than wait for the poll time period. @@ -579,6 +580,9 @@ asynStatus AndorCCD::writeInt32(asynUser *pasynUser, epicsInt32 value) (function == AndorShutterExTTL)) { status = setupShutter(-1); } + else if (function == AndorBaselineClamp) { + checkStatus(SetBaselineClamp(value)); + } else { status = ADDriver::writeInt32(pasynUser, value); } diff --git a/andorApp/src/andorCCD.h b/andorApp/src/andorCCD.h index 97e064f..863f7ec 100755 --- a/andorApp/src/andorCCD.h +++ b/andorApp/src/andorCCD.h @@ -29,6 +29,7 @@ #define AndorAccumulatePeriodString "ANDOR_ACCUMULATE_PERIOD" #define AndorPreAmpGainString "ANDOR_PREAMP_GAIN" #define AndorAdcSpeedString "ANDOR_ADC_SPEED" +#define AndorBaselineClampString "ANDOR_BASELINE_CLAMP" /** * Structure defining an ADC speed for the ADAndor driver. @@ -86,7 +87,8 @@ class AndorCCD : public ADDriver { int AndorAccumulatePeriod; int AndorPreAmpGain; int AndorAdcSpeed; - #define LAST_ANDOR_PARAM AndorAdcSpeed + int AndorBaselineClamp; + #define LAST_ANDOR_PARAM AndorBaselineClamp private: