Only call SetVSAmplitude if the camera supports it.
Opened this issue · 3 comments
MarkRivers commented
MarkRivers commented
See #48 for some details.
pheest commented
Sorry about that.
I will address the issue as soon as I can, should be within a couple of days.
The call that’s required is ‘GetCapabilities’, it outputs a list of capabilities (including vertical shift speed and amplitude selection) that are available for some Andor camera models, but not others.
Our spectroscopists typically use this capability to frame transfer at the highest possible speed, in order to minimise light smearing.
From: Mark Rivers ***@***.***>
Sent: 05 February 2022 00:11
To: areaDetector/ADAndor ***@***.***>
Cc: Heesterman, Peter J ***@***.***>; Mention ***@***.***>
Subject: [areaDetector/ADAndor] Only call SetVSAmplitude if the camera supports it. (Issue #49)
Commit 5e34010<5e34010> from @pheest<https://github.com/pheest> added code that unconditionally calls SetVSAmplitude. This fails on cameras that don't support that call.
@pheest<https://github.com/pheest> is there a way to determine if SetVSAmplitude is supported on a given camera, and skip that block if it is?
—
Reply to this email directly, view it on GitHub<#49>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AD6SZN2AZURXR5DNZZDKN6DUZRTJVANCNFSM5NTDRSYQ>.
Triage notifications on the go with GitHub Mobile for iOS<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID: ***@***.******@***.***>>
pheest commented
The required code fragment would be:
if ((mCapabilities.ulSetFunctions & AC_SETFUNCTION_VSAMPLITUDE) != 0)
{
asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW,
"%s:%s:, SetVSAmplitude(%d)\n",
driverName, functionName, verticalShiftAmplitude);
checkStatus(SetVSAmplitude(verticalShiftAmplitude));
}