Added call to mMultiTrack.storeTrackAttributes(pArray->pAttributeList) in order to store the attributes.
Also, removed unnecessary use of NUM_ANDOR_DET_PARAMS and NUM_SR_PARAMS.
This commit is contained in:
@@ -115,7 +115,7 @@ static void exitHandler(void *drvPvt);
|
||||
AndorCCD::AndorCCD(const char *portName, const char *installPath, int cameraSerial, int shamrockID,
|
||||
int maxBuffers, size_t maxMemory, int priority, int stackSize)
|
||||
|
||||
: ADDriver(portName, 1, NUM_ANDOR_DET_PARAMS, maxBuffers, maxMemory,
|
||||
: ADDriver(portName, 1, 0, maxBuffers, maxMemory,
|
||||
asynEnumMask, asynEnumMask,
|
||||
ASYN_CANBLOCK, 1, priority, stackSize),
|
||||
mExiting(false), mExited(0), mShamrockId(shamrockID), mMultiTrack(this), mSPEDoc(0), mInitOK(false)
|
||||
@@ -1478,10 +1478,11 @@ void AndorCCD::dataTask(void)
|
||||
epicsTimeStamp startTime;
|
||||
NDArray *pArray;
|
||||
int autoSave;
|
||||
int readOutMode;
|
||||
static const char *functionName = "dataTask";
|
||||
|
||||
printf("%s:%s: Data thread started...\n", driverName, functionName);
|
||||
|
||||
|
||||
this->lock();
|
||||
|
||||
while(!mExiting) {
|
||||
@@ -1504,6 +1505,7 @@ void AndorCCD::dataTask(void)
|
||||
status = setupAcquisition();
|
||||
if (status != asynSuccess) continue;
|
||||
getIntegerParam(ADShutterMode, &adShutterMode);
|
||||
getIntegerParam(AndorReadOutMode, &readOutMode);
|
||||
if (adShutterMode == ADShutterModeEPICS) {
|
||||
ADDriver::setShutter(ADShutterOpen);
|
||||
}
|
||||
@@ -1576,6 +1578,8 @@ void AndorCCD::dataTask(void)
|
||||
dims[0] = sizeX;
|
||||
dims[1] = sizeY;
|
||||
pArray = this->pNDArrayPool->alloc(nDims, dims, dataType, 0, NULL);
|
||||
if (readOutMode == ARRandomTrack)
|
||||
mMultiTrack.storeTrackAttributes(pArray->pAttributeList);
|
||||
// Read the oldest array
|
||||
// Is there still an image available?
|
||||
status = GetNumberNewImages(&firstImage, &lastImage);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @author Matthew Pearson
|
||||
* @date June 2009
|
||||
*
|
||||
* Updated Dec 2011 for Asyn 4-17 and areaDetector 1-7
|
||||
* Updated Dec 2011 for Asyn 4-17 and areaDetector 1-7
|
||||
*
|
||||
* Major updates to get callbacks working, etc. by Mark Rivers Feb. 2011
|
||||
* Updated by Peter Heesterman to support multi-track operation Oct. 2019
|
||||
@@ -91,7 +91,7 @@ class AndorCCD : public ADDriver {
|
||||
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value);
|
||||
virtual asynStatus writeInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements);
|
||||
virtual void report(FILE *fp, int details);
|
||||
virtual asynStatus readEnum(asynUser *pasynUser, char *strings[], int values[], int severities[],
|
||||
virtual asynStatus readEnum(asynUser *pasynUser, char *strings[], int values[], int severities[],
|
||||
size_t nElements, size_t *nIn);
|
||||
|
||||
// Should be private, but are called from C so must be public
|
||||
@@ -100,7 +100,7 @@ class AndorCCD : public ADDriver {
|
||||
|
||||
protected:
|
||||
int AndorCoolerParam;
|
||||
#define FIRST_ANDOR_PARAM AndorCoolerParam
|
||||
#define FIRST_ANDOR_PARAM AndorCoolerParam
|
||||
int AndorTempStatusMessage;
|
||||
int AndorMessage;
|
||||
int AndorShutterMode;
|
||||
@@ -133,7 +133,7 @@ class AndorCCD : public ADDriver {
|
||||
/**
|
||||
* Additional image mode to those in ADImageMode_t
|
||||
*/
|
||||
static const epicsInt32 AImageFastKinetics;
|
||||
static const epicsInt32 AImageFastKinetics;
|
||||
|
||||
/**
|
||||
* List of acquisiton modes.
|
||||
@@ -204,7 +204,7 @@ class AndorCCD : public ADDriver {
|
||||
char *mInstallPath;
|
||||
bool mExiting;
|
||||
int mExited;
|
||||
|
||||
|
||||
/**
|
||||
* ADC speed parameters
|
||||
*/
|
||||
@@ -229,7 +229,7 @@ class AndorCCD : public ADDriver {
|
||||
float mAccumulatePeriod;
|
||||
int mMinShutterOpenTime;
|
||||
int mMinShutterCloseTime;
|
||||
|
||||
|
||||
// Shamrock spectrometer ID
|
||||
int mShamrockId;
|
||||
|
||||
@@ -241,7 +241,7 @@ class AndorCCD : public ADDriver {
|
||||
// EM Gain parameters
|
||||
int mEmGainRangeLow;
|
||||
int mEmGainRangeHigh;
|
||||
|
||||
|
||||
// SPE file header
|
||||
tagCSMAHEAD *mSPEHeader;
|
||||
xmlDocPtr mSPEDoc;
|
||||
@@ -250,7 +250,4 @@ class AndorCCD : public ADDriver {
|
||||
bool mInitOK;
|
||||
};
|
||||
|
||||
#define NUM_ANDOR_DET_PARAMS ((int)(&LAST_ANDOR_PARAM - &FIRST_ANDOR_PARAM + 1))
|
||||
|
||||
#endif //ANDORCCD_H
|
||||
|
||||
|
||||
@@ -102,9 +102,6 @@ private:
|
||||
bool flipperMirrorIsPresent_[MAX_FLIPPER_MIRRORS];
|
||||
};
|
||||
|
||||
/** Number of asynPortDriver parameters this driver supports. */
|
||||
#define NUM_SR_PARAMS ((int)(&LAST_SR_PARAM - &FIRST_SR_PARAM + 1))
|
||||
|
||||
/** Configuration function to configure one spectrograph.
|
||||
*
|
||||
* This function need to be called once for each spectrography to be used by the IOC. A call to this
|
||||
|
||||
Reference in New Issue
Block a user