Test program to illustrate bug (?) in Andor SDK
git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@14434 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
This commit is contained in:
69
ADApp/andorSrc/accumTest.c
Normal file
69
ADApp/andorSrc/accumTest.c
Normal file
@@ -0,0 +1,69 @@
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#ifdef _WIN32
|
||||
#include "ATMCD32D.h"
|
||||
#else
|
||||
#include "atmcdLXd.h"
|
||||
#endif
|
||||
|
||||
void checkStatus(int status)
|
||||
{
|
||||
if (status == DRV_SUCCESS) return;
|
||||
printf("checkStatus error=%d exiting!\n", status);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int adcChannel=0, minX=0, minY=0, binX=1, binY=1, sizeX=1024, sizeY=1024;
|
||||
int triggerMode=0, numExposures=2, numImages=3;
|
||||
float mAcquireTime=0.1f, mAccumulatePeriod=1.0f, mAcquirePeriod=4.0f;
|
||||
float acquireTimeAct, accumulatePeriodAct, acquirePeriodAct;
|
||||
int AAKinetics=3, ATInternal=0;
|
||||
time_t startTime, endTime;
|
||||
int acquireStatus;
|
||||
|
||||
checkStatus(Initialize(""));
|
||||
|
||||
printf("SetTriggerMode(%d)\n", triggerMode);
|
||||
checkStatus(SetTriggerMode(ATInternal));
|
||||
printf("SetADChannel(%d)\n", adcChannel);
|
||||
checkStatus(SetADChannel(adcChannel));
|
||||
//Set fastest HS speed.
|
||||
printf("SetHSSpeed(0, 0)\n");
|
||||
checkStatus(SetHSSpeed(0, 0));
|
||||
printf("SetImage(%d,%d,%d,%d,%d,%d)\n",
|
||||
binX, binY, minX+1, minX+sizeX, minY+1, minY+sizeY);
|
||||
checkStatus(SetImage(binX, binY, minX+1, minX+sizeX, minY+1, minY+sizeY));
|
||||
|
||||
printf("SetExposureTime(%f)\n", mAcquireTime);
|
||||
checkStatus(SetExposureTime(mAcquireTime));
|
||||
|
||||
printf("SetAcquisitionMode(AAKinetics)\n");
|
||||
checkStatus(SetAcquisitionMode(AAKinetics));
|
||||
printf("SetNumberAccumulations(%d)\n", numExposures);
|
||||
checkStatus(SetNumberAccumulations(numExposures));
|
||||
printf("SetAccumulationCycleTime(%f)\n", mAccumulatePeriod);
|
||||
checkStatus(SetAccumulationCycleTime(mAccumulatePeriod));
|
||||
printf("SetNumberKinetics(%d)\n", numImages);
|
||||
checkStatus(SetNumberKinetics(numImages));
|
||||
printf("SetKineticCycleTime(%f)\n", mAcquirePeriod);
|
||||
checkStatus(SetKineticCycleTime(mAcquirePeriod));
|
||||
|
||||
checkStatus(GetAcquisitionTimings(&acquireTimeAct, &accumulatePeriodAct, &acquirePeriodAct));
|
||||
printf("GetAcquisitionTimings(exposure=%f, accumulate=%f, kinetic=%f)\n",
|
||||
acquireTimeAct, accumulatePeriodAct, acquirePeriodAct);
|
||||
|
||||
time(&startTime);
|
||||
printf("StartAcquisition()\n");
|
||||
checkStatus(StartAcquisition());
|
||||
while (1) {
|
||||
printf("GetStatus()\n");
|
||||
checkStatus(GetStatus(&acquireStatus));
|
||||
if (acquireStatus != DRV_ACQUIRING) break;
|
||||
printf("WaitForAcquisition()\n");
|
||||
checkStatus(WaitForAcquisition());
|
||||
time(&endTime);
|
||||
printf("Time since start=%f\n", difftime(endTime, startTime));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user