From 2d102d67ddd7b1ef90febd812d7fa5d111797c0b Mon Sep 17 00:00:00 2001 From: Hinko Kocevar Date: Wed, 13 Jul 2016 11:06:08 +0200 Subject: [PATCH] Check for shutter support before calling SetShutter(). In order to avoid signaling error if SetShutter() call in setupShutter() would fail. --- andorApp/src/andorCCD.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/andorApp/src/andorCCD.cpp b/andorApp/src/andorCCD.cpp index e876efb..275ff1b 100755 --- a/andorApp/src/andorCCD.cpp +++ b/andorApp/src/andorCCD.cpp @@ -718,6 +718,7 @@ asynStatus AndorCCD::setupShutter(int command) int openTime, closeTime; int shutterExTTL; int shutterMode; + AndorCapabilities capabilities; asynStatus status=asynSuccess; static const char *functionName = "setupShutter"; @@ -750,11 +751,14 @@ asynStatus AndorCCD::setupShutter(int command) } try { - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, - "%s:%s:, SetShutter(%d,%d,%d,%d)\n", - driverName, functionName, shutterExTTL, shutterMode, closeTime, openTime); - checkStatus(SetShutter(shutterExTTL, shutterMode, closeTime, openTime)); - + capabilities.ulSize = sizeof(capabilities); + checkStatus(GetCapabilities(&capabilities)); + if (capabilities.ulFeatures & AC_FEATURES_SHUTTER) { + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s:%s:, SetShutter(%d,%d,%d,%d)\n", + driverName, functionName, shutterExTTL, shutterMode, closeTime, openTime); + checkStatus(SetShutter(shutterExTTL, shutterMode, closeTime, openTime)); + } } catch (const std::string &e) { asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, "%s:%s: %s\n",