8 #ifndef MEDIPIXDETECTOR_H_ 9 #define MEDIPIXDETECTOR_H_ 12 #define MAX_MESSAGE_SIZE 256 13 #define MAX_FILENAME_LEN 256 14 #define MAX_BAD_PIXELS 100 16 #define ASYN_POLL_TIME .01 17 #define Labview_DEFAULT_TIMEOUT 2.0 19 #define FILE_READ_DELAY .01 64 #define TMTrigInternal (char*)"0" 65 #define TMTrigRising (char*)"1" 66 #define TMTrigFalling (char*)"2" 67 #define TMTrigSoftware (char*)"3" 71 #define merlinDelayTimeString "DELAY_TIME" 72 #define merlinThreshold0String "THRESHOLD0" 73 #define merlinThreshold1String "THRESHOLD1" 74 #define merlinThreshold2String "THRESHOLD2" 75 #define merlinThreshold3String "THRESHOLD3" 76 #define merlinThreshold4String "THRESHOLD4" 77 #define merlinThreshold5String "THRESHOLD5" 78 #define merlinThreshold6String "THRESHOLD6" 79 #define merlinThreshold7String "THRESHOLD7" 80 #define merlinOperatingEnergyString "OPERATINGENERGY" 82 #define merlinThresholdApplyString "THRESHOLD_APPLY" 83 #define merlinThresholdAutoApplyString "THRESHOLD_AUTO_APPLY" 84 #define merlinArmedString "ARMED" 86 #define merlinmedpixThresholdScanString "THRESHOLDSCAN" 87 #define merlinStartThresholdScanString "THRESHOLDSTART" 88 #define merlinStopThresholdScanString "THRESHOLDSTOP" 89 #define merlinStepThresholdScanString "THRESHOLDSTEP" 90 #define merlinStartThresholdScanningString "STARTTHRESHOLDSCANNING" 91 #define merlinCounterDepthString "COUNTERDEPTH" 92 #define merlinResetString "RESET" 93 #define merlinSoftwareTriggerString "SOFTWARETRIGGER" 94 #define merlinEnableCounter1String "ENABLECOUNTER1" 95 #define merlinContinuousRWString "CONTINUOUSRW" 98 #define merlinProfileControlString "PROFILECONTROL" 99 #define merlinProfileXString "PROFILE_AVERAGE_X" 100 #define merlinProfileYString "PROFILE_AVERAGE_Y" 103 #define merlinEnableBackgroundCorrString "ENABLEBACKGROUNDCORR" 104 #define merlinEnableImageSumString "ENABLESUMAVERAGE" 107 #define merlinQuadMerlinModeString "QUADMERLINMODE" 108 #define merlinSelectGuiString "SELECTGUI" 117 const char *LabviewDataPort,
int maxSizeX,
int maxSizeY,
118 int detectorType,
int maxBuffers,
size_t maxMemory,
int priority,
126 void report(FILE *fp,
int details);
135 #define FIRST_merlin_PARAM merlinDelayTime 166 #define LAST_merlin_PARAM merlinSelectGui 170 void abortAcquisition();
171 asynStatus SetQuadMode(
int mode);
172 asynStatus setModeCommands(
int function);
173 asynStatus setAcquireParams();
174 asynStatus getThreshold();
175 asynStatus updateThresholdScanParms();
178 NDArray* copyProfileToNDArray32(
size_t *dims,
char *buffer,
180 NDArray* copyToNDArray8(
size_t *dims,
char *buffer,
int offset);
181 NDArray* copyToNDArray16(
size_t *dims,
char *buffer,
int offset);
182 NDArray* copyToNDArray32(
size_t *dims,
char *buffer,
int offset);
183 inline void endian_swap(
unsigned short&
x);
184 inline void endian_swap(
unsigned int&
x);
185 inline void endian_swap(uint64_t&
x);
186 unsigned int maxSize[2];
191 int multipleFileNumber;
192 asynUser *pasynLabViewCmd;
193 asynUser *pasynLabViewData;
194 double averageFlatField;
195 int framesPerAcquire;
202 char LabviewCommandPortName[20];
203 char LabviewDataPortName[20];
211 #define NUM_merlin_PARAMS (&LAST_merlin_PARAM - &FIRST_merlin_PARAM + 1) 213 static const char *driverName =
"merlinDetector";
Class from which areaDetector drivers are directly derived.
Definition: ADDriver.h:132
Definition: merlinDetector.h:34
int merlinArmed
Definition: merlinDetector.h:147
Definition: merlinDetector.h:57
Definition: merlinDetector.h:47
void merlinTask()
This thread controls acquisition, reads image files to get the image data, and does the callbacks to ...
Definition: merlinDetector.cpp:51
Definition: merlinDetector.h:54
Driver for Dectris merlin pixel array detectors using their Labview server over TCP/IP socket.
Definition: merlinDetector.h:113
int merlinThreshold4
Definition: merlinDetector.h:140
int merlinCounterDepth
Definition: merlinDetector.h:153
int merlinThreshold5
Definition: merlinDetector.h:141
Definition: merlinDetector.h:37
int merlinThreshold3
Definition: merlinDetector.h:139
int merlinThreshold2
Definition: merlinDetector.h:138
Collect ADNumImages images per Acquire command.
Definition: merlinDetector.h:44
list value
Definition: makeDbAndEdl.py:234
void merlinStatus()
This thread periodically read the detector status (temperature, humidity, etc.) It does not run if we...
Definition: merlinDetector.cpp:916
MPXImageMode_t
Trigger modes.
Definition: merlinDetector.h:41
Definition: merlinDetector.h:58
int merlinThresholdAutoApply
Definition: merlinDetector.h:146
Definition: mpxConnection.h:20
int merlinEnableImageSum
Definition: merlinDetector.h:162
int merlinProfileControl
Definition: merlinDetector.h:158
Definition: merlinDetector.h:26
int merlinSoftwareTrigger
Definition: merlinDetector.h:154
int merlinThresholdApply
Definition: merlinDetector.h:145
Definition: merlinDetector.h:32
int merlinStartThresholdScan
Definition: merlinDetector.h:149
int merlinContinuousRW
Definition: merlinDetector.h:157
int merlinEnableCounter1
Definition: merlinDetector.h:156
merlinDetectorType
Detector Types.
Definition: merlinDetector.h:24
int merlinReset
Definition: merlinDetector.h:155
Definition: merlinDetector.h:26
int merlinOperatingEnergy
Definition: merlinDetector.h:144
void fromLabViewStr(const char *str)
Definition: merlinDetector.cpp:347
Definition: merlinDetector.h:35
Definition: merlinDetector.h:36
int merlinStepThresholdScan
Definition: merlinDetector.h:151
int merlinThreshold1
Definition: merlinDetector.h:137
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition: merlinDetector.cpp:1033
int merlinProfileX
Definition: merlinDetector.h:159
Definition: merlinDetector.h:56
void toLabViewStr(const char *str)
Definition: merlinDetector.cpp:352
Definition: merlinDetector.h:46
int merlinDelayTime
Definition: merlinDetector.h:134
int merlinThreshold7
Definition: merlinDetector.h:143
int merlinStopThresholdScan
Definition: merlinDetector.h:150
int merlinSelectGui
Definition: merlinDetector.h:164
MPXQuadMode_t
Enumeration of merlin quad modes.
Definition: merlinDetector.h:52
Definition: merlinDetector.h:59
merlinDetector(const char *portName, const char *LabviewCmdPort, const char *LabviewDataPort, int maxSizeX, int maxSizeY, int detectorType, int maxBuffers, size_t maxMemory, int priority, int stackSize)
Constructor for merlin driver; most parameters are simply passed to ADDriver::ADDriver.
Definition: merlinDetector.cpp:1360
void report(FILE *fp, int details)
Report status of the driver.
Definition: merlinDetector.cpp:1315
int merlinProfileY
Definition: merlinDetector.h:160
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
Called when asyn clients call pasynFloat64->write().
Definition: merlinDetector.cpp:1195
Definition: merlinDetector.h:26
int merlinEnableBackgroundCorr
Definition: merlinDetector.h:161
merlinTriggerMode
Trigger modes.
Definition: merlinDetector.h:30
int merlinQuadMerlinMode
Definition: merlinDetector.h:163
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data,...
Definition: NDArray.h:94
Definition: merlinDetector.h:26
Definition: merlinDetector.h:33
int merlinTvxVersion
Definition: merlinDetector.h:152
int merlinThreshold0
Definition: merlinDetector.h:136
Definition: merlinDetector.h:55
int x
Definition: makeAdl.py:438
int merlinThresholdScan
Definition: merlinDetector.h:148
Collect a single image per Acquire command.
Definition: merlinDetector.h:43
int merlinThreshold6
Definition: merlinDetector.h:142
Collect images continuously until Acquire is set to 0.
Definition: merlinDetector.h:45