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 medipixDelayTimeString "DELAY_TIME"
72 #define medipixThreshold0String "THRESHOLD0"
73 #define medipixThreshold1String "THRESHOLD1"
74 #define medipixThreshold2String "THRESHOLD2"
75 #define medipixThreshold3String "THRESHOLD3"
76 #define medipixThreshold4String "THRESHOLD4"
77 #define medipixThreshold5String "THRESHOLD5"
78 #define medipixThreshold6String "THRESHOLD6"
79 #define medipixThreshold7String "THRESHOLD7"
80 #define medipixOperatingEnergyString "OPERATINGENERGY"
82 #define medipixThresholdApplyString "THRESHOLD_APPLY"
83 #define medipixThresholdAutoApplyString "THRESHOLD_AUTO_APPLY"
84 #define medipixArmedString "ARMED"
86 #define medipixmedpixThresholdScanString "THRESHOLDSCAN"
87 #define medipixStartThresholdScanString "THRESHOLDSTART"
88 #define medipixStopThresholdScanString "THRESHOLDSTOP"
89 #define medipixStepThresholdScanString "THRESHOLDSTEP"
90 #define medipixStartThresholdScanningString "STARTTHRESHOLDSCANNING"
91 #define medipixCounterDepthString "COUNTERDEPTH"
92 #define medipixResetString "RESET"
93 #define medipixSoftwareTriggerString "SOFTWARETRIGGER"
94 #define medipixEnableCounter1String "ENABLECOUNTER1"
95 #define medipixContinuousRWString "CONTINUOUSRW"
98 #define medipixProfileControlString "PROFILECONTROL"
99 #define medipixProfileXString "PROFILE_AVERAGE_X"
100 #define medipixProfileYString "PROFILE_AVERAGE_Y"
103 #define medipixEnableBackgroundCorrString "ENABLEBACKGROUNDCORR"
104 #define medipixEnableImageSumString "ENABLESUMAVERAGE"
107 #define medipixQuadMerlinModeString "QUADMERLINMODE"
108 #define medipixSelectGuiString "SELECTGUI"
117 const char *LabviewDataPort,
int maxSizeX,
int maxSizeY,
118 int detectorType,
int maxBuffers,
size_t maxMemory,
int priority,
123 virtual asynStatus
writeFloat64(asynUser *pasynUser, epicsFloat64 value);
126 void report(FILE *fp,
int details);
135 #define FIRST_medipix_PARAM medipixDelayTime
166 #define LAST_medipix_PARAM medipixSelectGui
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* copyToNDArray16(
size_t *dims,
char *buffer,
int offset);
181 NDArray* copyToNDArray32(
size_t *dims,
char *buffer,
int offset);
182 inline void endian_swap(
unsigned short&
x);
183 inline void endian_swap(
unsigned int&
x);
184 inline void endian_swap(uint64_t&
x);
185 unsigned int maxSize[2];
190 int multipleFileNumber;
191 asynUser *pasynLabViewCmd;
192 asynUser *pasynLabViewData;
193 double averageFlatField;
194 int framesPerAcquire;
201 char LabviewCommandPortName[20];
202 char LabviewDataPortName[20];
210 #define NUM_medipix_PARAMS (&LAST_medipix_PARAM - &FIRST_medipix_PARAM + 1)
212 static const char *driverName =
"medipixDetector";
int medipixOperatingEnergy
Definition: medipixDetector.h:144
Class from which areaDetector drivers are directly derived.
Definition: ADDriver.h:139
int medipixThresholdAutoApply
Definition: medipixDetector.h:146
int medipixReset
Definition: medipixDetector.h:155
int medipixTvxVersion
Definition: medipixDetector.h:152
int medipixProfileY
Definition: medipixDetector.h:160
int medipixThreshold3
Definition: medipixDetector.h:139
int medipixThreshold2
Definition: medipixDetector.h:138
Definition: medipixDetector.h:26
Definition: medipixDetector.h:59
int medipixProfileX
Definition: medipixDetector.h:159
Collect a single image per Acquire command.
Definition: medipixDetector.h:43
Definition: medipixDetector.h:47
Definition: medipixDetector.h:56
Definition: medipixDetector.h:54
int medipixThresholdApply
Definition: medipixDetector.h:145
Collect images continuously until Acquire is set to 0.
Definition: medipixDetector.h:45
Definition: medipixDetector.h:33
medipixDetector(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 medipix driver; most parameters are simply passed to ADDriver::ADDriver.
Definition: medipixDetector.cpp:1374
Definition: medipixDetector.h:34
void report(FILE *fp, int details)
Report status of the driver.
Definition: medipixDetector.cpp:1329
MPXImageMode_t
Trigger modes.
Definition: medipixDetector.h:41
int medipixStepThresholdScan
Definition: medipixDetector.h:151
int medipixThreshold7
Definition: medipixDetector.h:143
list value
Definition: makeDbAndEdl.py:234
Definition: medipixDetector.h:58
Definition: mpxConnection.h:26
int medipixEnableCounter1
Definition: medipixDetector.h:156
int medipixThresholdScan
Definition: medipixDetector.h:148
char * portName
The name of this asyn port.
Definition: asynPortDriver.h:173
int medipixQuadMerlinMode
Definition: medipixDetector.h:163
int medipixContinuousRW
Definition: medipixDetector.h:157
int medipixThreshold4
Definition: medipixDetector.h:140
int medipixSelectGui
Definition: medipixDetector.h:164
int medipixDelayTime
Definition: medipixDetector.h:134
medipixTriggerMode
Trigger modes.
Definition: medipixDetector.h:30
Collect ADNumImages images per Acquire command.
Definition: medipixDetector.h:44
Definition: medipixDetector.h:26
Definition: medipixDetector.h:26
int medipixSoftwareTrigger
Definition: medipixDetector.h:154
int x
Definition: makeDbAndEdl.py:271
int medipixStartThresholdScan
Definition: medipixDetector.h:149
void medipixStatus()
This thread periodically read the detector status (temperature, humidity, etc.) It does not run if we...
Definition: medipixDetector.cpp:930
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
Called when asyn clients call pasynFloat64->write().
Definition: medipixDetector.cpp:1209
medipixDetectorType
Detector Types.
Definition: medipixDetector.h:24
Definition: medipixDetector.h:36
void toLabViewStr(const char *str)
Definition: medipixDetector.cpp:408
MPXQuadMode_t
Enumeration of merlin quad modes.
Definition: medipixDetector.h:52
int medipixEnableBackgroundCorr
Definition: medipixDetector.h:161
void medipixTask()
This thread controls acquisition, reads image files to get the image data, and does the callbacks to ...
Definition: medipixDetector.cpp:51
int medipixThreshold1
Definition: medipixDetector.h:137
void fromLabViewStr(const char *str)
Definition: medipixDetector.cpp:403
Definition: medipixDetector.h:46
int medipixStopThresholdScan
Definition: medipixDetector.h:150
int medipixCounterDepth
Definition: medipixDetector.h:153
int medipixEnableImageSum
Definition: medipixDetector.h:162
Definition: medipixDetector.h:26
int medipixThreshold0
Definition: medipixDetector.h:136
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data...
Definition: NDArray.h:90
int medipixThreshold6
Definition: medipixDetector.h:142
Definition: medipixDetector.h:35
Definition: medipixDetector.h:32
Definition: medipixDetector.h:57
Definition: medipixDetector.h:55
int medipixArmed
Definition: medipixDetector.h:147
Definition: medipixDetector.h:37
int medipixThreshold5
Definition: medipixDetector.h:141
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition: medipixDetector.cpp:1047
Driver for Dectris medipix pixel array detectors using their Labview server over TCP/IP socket...
Definition: medipixDetector.h:113
int medipixProfileControl
Definition: medipixDetector.h:158