1 #ifndef EIGER_DETECTOR_H 2 #define EIGER_DETECTOR_H 17 #define EigDataSourceStr "DATA_SOURCE" 20 #define EigFWEnableStr "FW_ENABLE" 21 #define EigFWClearStr "CLEAR" 22 #define EigFWCompressionStr "COMPRESSION" 23 #define EigFWNamePatternStr "NAME_PATTERN" 24 #define EigFWNImgsPerFileStr "NIMAGES_PER_FILE" 25 #define EigFWAutoRemoveStr "AUTO_REMOVE" 26 #define EigFWFreeStr "FW_FREE" 27 #define EigFWStateStr "FW_STATE" 28 #define EigFWImgNumStartStr "FW_IMG_NUM_START" 31 #define EigWavelengthStr "WAVELENGTH" 32 #define EigAutoSummationStr "AUTO_SUMMATION" 35 #define EigDescriptionStr "DESCRIPTION" 38 #define EigOmegaStr "OMEGA" 41 #define EigPhotonEnergyStr "PHOTON_ENERGY" 42 #define EigThresholdStr "THRESHOLD" 43 #define EigThreshold1EnableStr "THRESHOLD1_ENABLE" 44 #define EigThreshold2Str "THRESHOLD2" 45 #define EigThreshold2EnableStr "THRESHOLD2_ENABLE" 46 #define EigThresholdDiffEnableStr "THRESHOLD_DIFF_ENABLE" 47 #define EigTriggerStr "TRIGGER" 48 #define EigTriggerExpStr "TRIGGER_EXPOSURE" 49 #define EigNTriggersStr "NUM_TRIGGERS" 50 #define EigManualTriggerStr "MANUAL_TRIGGER" 51 #define EigTriggerStartDelayStr "TRIGGER_START_DELAY" 52 #define EigExtGateModeStr "EXT_GATE_MODE" 53 #define EigCompressionAlgoStr "COMPRESSION_ALGO" 55 #define EigROIModeStr "ROI_MODE" 58 #define EigStateStr "STATE" 59 #define EigErrorStr "ERROR" 60 #define EigInitializeStr "INITIALIZE" 61 #define EigThTemp0Str "TH_TEMP_0" 62 #define EigThHumid0Str "TH_HUMID_0" 63 #define EigLink0Str "LINK_0" 64 #define EigLink1Str "LINK_1" 65 #define EigLink2Str "LINK_2" 66 #define EigLink3Str "LINK_3" 67 #define EigDCUBufFreeStr "DCU_BUF_FREE" 70 #define EigArmedStr "ARMED" 71 #define EigSequenceIdStr "SEQ_ID" 72 #define EigPendingFilesStr "PENDING_FILES" 73 #define EigHVResetTimeStr "HV_RESET_TIME" 74 #define EigHVResetStr "HV_RESET" 75 #define EigHVStateStr "HV_STATE" 78 #define EigSaveFilesStr "SAVE_FILES" 79 #define EigFileOwnerStr "FILE_OWNER" 80 #define EigFileOwnerGroupStr "FILE_OWNER_GROUP" 81 #define EigFilePermsStr "FILE_PERMISSIONS" 84 #define EigMonitorEnableStr "MONITOR_ENABLE" 85 #define EigMonitorTimeoutStr "MONITOR_TIMEOUT" 86 #define EigMonitorStateStr "MONITOR_STATE" 87 #define EigMonitorBufSizeStr "MONITOR_BUF_SIZE" 90 #define EigStreamEnableStr "STREAM_ENABLE" 91 #define EigStreamDroppedStr "STREAM_DROPPED" 92 #define EigStreamStateStr "STREAM_STATE" 93 #define EigStreamDecompressStr "STREAM_DECOMPRESS" 96 #define EigWavelengthEpsilonStr "WAVELENGTH_EPSILON" 97 #define EigEnergyEpsilonStr "ENERGY_EPSILON" 103 eigerDetector(
const char *portName,
const char *serverHostname,
104 int maxBuffers,
size_t maxMemory,
int priority,
int stackSize);
110 size_t nChars,
size_t *nActual);
111 void report(FILE *fp,
int details);
112 virtual asynStatus
drvUserCreate(asynUser *pasynUser,
const char *drvInfo,
113 const char **pptypeName,
size_t *psize);
239 epicsEvent mStartEvent, mStopEvent, mTriggerEvent, mStreamEvent, mStreamDoneEvent,
240 mPollDoneEvent, mInitializeEvent;
241 epicsMessageQueue mPollQueue, mDownloadQueue, mParseQueue, mSaveQueue,
243 bool mPollStop, mPollComplete, mStreamComplete;
244 unsigned int mFrameNumber;
245 uid_t mFsUid, mFsGid;
248 std::map<std::string, sys_t> mSubSystemMap;
251 asynStatus initParams (
void);
254 asynStatus parseH5File (
char *
buf,
size_t len);
255 asynStatus parseTiffFile (
char *
buf,
size_t len);
258 asynStatus eigerStatus (
void);
261 bool acquiring (
void);
virtual asynStatus writeOctet(asynUser *pasynUser, const char *value, size_t nChars, size_t *nActual)
Called when asyn clients call pasynOctet->write().
Definition: eigerDetector.cpp:627
EigerParam * mSerialNumber
Definition: eigerDetector.h:228
Class from which areaDetector drivers are directly derived.
Definition: ADDriver.h:132
EigerParam * mSequenceId
Definition: eigerDetector.h:157
EigerParam * mFWAutoRemove
Definition: eigerDetector.h:151
Definition: eigerDetector.h:13
EigerParam * mMonitorEnable
Definition: eigerDetector.h:211
EigerParam * mFWEnable
Definition: eigerDetector.h:201
Definition: eigerDetector.h:140
EigerParam * mStreamState
Definition: eigerDetector.h:218
EigerParam * mThTemp0
Definition: eigerDetector.h:192
EigerParam * mFWNamePattern
Definition: eigerDetector.h:203
void streamTask(void)
Definition: eigerDetector.cpp:1307
EigerParam * mROIMode
Definition: eigerDetector.h:185
Definition: eigerDetector.h:134
eigerAPIVersion_t
Definition: restApi.h:13
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Sets an int32 parameter.
Definition: eigerDetector.cpp:449
void downloadTask(void)
Definition: eigerDetector.cpp:1105
Definition: eigerDetector.h:141
eigerModel_t
Definition: eigerDetector.h:11
Definition: eigerDetector.h:135
EigerParam * mState
Definition: eigerDetector.h:189
EigerParam * mFirmwareVersion
Definition: eigerDetector.h:227
Definition: eigerDetector.h:143
list value
Definition: makeDbAndEdl.py:234
compression_algo
Definition: eigerDetector.h:132
EigerParam * mFWImgNumStart
Definition: eigerDetector.h:205
Definition: eigerDetector.h:128
void reapTask(void)
Definition: eigerDetector.cpp:1241
EigerParam * mWavelength
Definition: eigerDetector.h:175
void controlTask(void)
Definition: eigerDetector.cpp:722
void pollTask(void)
Definition: eigerDetector.cpp:1010
EigerParam * mManualTrigger
Definition: eigerDetector.h:154
EigerParam * mInitialize
Definition: eigerDetector.h:165
trigger_mode
Definition: eigerDetector.h:138
void parseTask(void)
Definition: eigerDetector.cpp:1135
EigerParam * mDescription
Definition: eigerDetector.h:172
EigerParam * mTemperatureActual
Definition: eigerDetector.h:229
EigerParam * mEnergyEpsilon
Definition: eigerDetector.h:169
Definition: eigerParam.h:130
EigerParam * mThreshold
Definition: eigerDetector.h:177
void saveTask(void)
Definition: eigerDetector.cpp:1155
EigerParam * mThHumid0
Definition: eigerDetector.h:193
EigerParam * mMonitorTimeout
Definition: eigerDetector.h:163
EigerParam * mHVResetTime
Definition: eigerDetector.h:166
EigerParam * mNumImages
Definition: eigerDetector.h:223
EigerParam * mLink2
Definition: eigerDetector.h:196
EigerParam * mTrigger
Definition: eigerDetector.h:152
EigerParam * mAutoSummation
Definition: eigerDetector.h:186
EigerParam * mNDArraySizeY
Definition: eigerDetector.h:231
void monitorTask(void)
Definition: eigerDetector.cpp:1275
virtual asynStatus drvUserCreate(asynUser *pasynUser, const char *drvInfo, const char **pptypeName, size_t *psize)
Definition: eigerDetector.cpp:1889
EigerParam * mNumExposures
Definition: eigerDetector.h:224
EigerParam * mStreamEnable
Definition: eigerDetector.h:216
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
Definition: eigerDetector.cpp:555
EigerParam * mStreamDecompress
Definition: eigerDetector.h:164
EigerParam * mAcquirePeriod
Definition: eigerDetector.h:222
EigerParam * mExtGateMode
Definition: eigerDetector.h:183
Definition: eigerDetector.h:12
EigerParam * mTriggerMode
Definition: eigerDetector.h:225
Definition: streamApi.h:32
EigerParam * mWavelengthEpsilon
Definition: eigerDetector.h:168
EigerParam * mFWFree
Definition: eigerDetector.h:207
EigerParam * mThresholdDiffEnable
Definition: eigerDetector.h:181
EigerParam * mTriggerStartDelay
Definition: eigerDetector.h:155
roi_mode
Definition: eigerDetector.h:126
EigerParam * mNDArraySizeX
Definition: eigerDetector.h:230
EigerParam * mFileOwner
Definition: eigerDetector.h:160
EigerParam * mStreamDropped
Definition: eigerDetector.h:217
EigerParam * mFWCompression
Definition: eigerDetector.h:202
EigerParam * mAcquireTime
Definition: eigerDetector.h:221
EigerParam * mDataSource
Definition: eigerDetector.h:150
EigerParam * mLink0
Definition: eigerDetector.h:194
EigerParam * mPhotonEnergy
Definition: eigerDetector.h:176
Definition: eigerDetector.h:142
EigerParam * mFWState
Definition: eigerDetector.h:206
Definition: eigerDetector.h:100
EigerParam * mFileOwnerGroup
Definition: eigerDetector.h:161
EigerParam * mLink1
Definition: eigerDetector.h:195
Definition: eigerDetector.h:144
EigerParam * mDCUBufFree
Definition: eigerDetector.h:198
EigerParam * mThreshold2Enable
Definition: eigerDetector.h:180
EigerParam * mSDKVersion
Definition: eigerDetector.h:226
EigerParam * mTriggerExp
Definition: eigerDetector.h:153
EigerParam * mSaveFiles
Definition: eigerDetector.h:159
EigerParam * mHVReset
Definition: eigerDetector.h:167
Definition: eigerParam.h:43
EigerParam * mFWNImgsPerFile
Definition: eigerDetector.h:204
EigerParam * mMonitorBufSize
Definition: eigerDetector.h:212
void report(FILE *fp, int details)
Report status of the driver.
Definition: eigerDetector.cpp:703
unsigned char * buf
Definition: udp_client_pixirad_single.cpp:70
Definition: eigerDetector.h:129
EigerParam * mThreshold1Enable
Definition: eigerDetector.h:178
EigerParam * mFilePerms
Definition: eigerDetector.h:162
EigerParam * mCompressionAlgo
Definition: eigerDetector.h:184
EigerParam * mLink3
Definition: eigerDetector.h:197
Definition: eigerDetector.h:145
EigerParam * mPendingFiles
Definition: eigerDetector.h:158
eigerDetector(const char *portName, const char *serverHostname, int maxBuffers, size_t maxMemory, int priority, int stackSize)
Definition: eigerDetector.cpp:172
EigerParam * mFWClear
Definition: eigerDetector.h:208
EigerParam * mNTriggers
Definition: eigerDetector.h:182
EigerParam * mError
Definition: eigerDetector.h:191
void initializeTask()
Definition: eigerDetector.cpp:1482
EigerParam * mMonitorState
Definition: eigerDetector.h:213
EigerParam * mHVState
Definition: eigerDetector.h:190
EigerParam * mThreshold2
Definition: eigerDetector.h:179
EigerParam * mArmed
Definition: eigerDetector.h:156