slsDetector refers to a group of detectors produced by SLS detectors group in PSI. They range from strip detectors to pixel array detectors. It is however a common interest of the group to use a common platform for data acquisition.
The architecture includes a socket server running on the detector controller(an embeded Linux), and a client side C++ library to communicate with the server. This driver is using such client side library, namely libSlsDetector, to control detector parameters as well as retrieve data. This driver inherits from ADDriver.
| Parameter index variable | EPICS record name | Description |
|---|---|---|
| ADManufacturer |
|
Detector manuafacturer, either PSI or Dectris |
| ADModel |
|
Detector type, Mythen, Eiger |
| ADMaxSizeX |
|
Detector maximum size in X |
| ADMaxSizeY |
|
Detector maximum size in Y |
| ADMinX |
|
First pixel to read in the X direction. |
| ADMinX |
|
First pixel to read in theY direction. |
| ADSizeX |
|
DetectorDetector size in X |
| ADSizeY |
|
DetectorDetector size in Y Depending on the hardware, the actual setting maybe rounded to the closest module. |
| ADAcquireTime |
|
Exposure time measured in in seconds |
| ADAcquirePeriod |
|
Exposure period in case of multiple images measured in seconds |
| ADTemperatureActual |
|
Detector fpga temperature |
| NDFileNumber |
|
File number |
| NDFilePath |
|
File path |
| NDFileName |
|
File base name |
| NDFullFileName |
|
Composed from format "%s%s_%d", FilePath, FileName, FileNumber |
| NDAutoSave |
|
Write flag (0=No, 1=Yes) controlling whether a file is automatically saved each time acquisition completes. |
| Parameter index variable | asyn interface | Access | drvInfo string | EPICS record name | Description |
|---|---|---|---|---|---|
| SDSetting | asynInt32 | r/w | SD_SETTING |
|
Detector settings |
| SDThreshold | asynInt32 | r/w | SD_THRESHOLD |
|
Threshold energy in eV |
| SDEnergy | asynInt32 | r/w | SD_ENERGY |
|
Beam energy in eV. Threshold energy will change to be half of the beam energy. |
| SDOnline | asynInt32 | r/w | SD_ONLINE |
|
Detector online control |
| SDFlatFieldPath | asynOctet | r/w | SD_FLATFIELD_PATH |
|
File path and name of a file to correct for the flat field. |
| SDFlatFieldFile | asynOctet | r/w | SD_FLATFIELD_FILE |
|
|
| SDUseFlatField | asynInt32 | r/w | SD_USE_FLATFIELD |
|
Enable flat field correction |
| SDUseCountRate | asynInt32 | r/w | SD_USE_COUNTRATE |
|
Enable count rate correction |
| SDUsePixelMask | asynInt32 | r/w | SD_USE_PIXELMASK |
|
Enable pixel mask correction |
| SDUseAngularConv | asynInt32 | r/w | SD_USE_ANGULAR_CONV |
|
Enable angular conversion |
| SDBitDepth | asynInt32 | r/w | SD_BIT_DEPTH |
|
Dynamic range |
| SDTimingMode | asynInt32 | r/w | SD_TMODE |
|
External signal communication mode, triggering, gating |
| SDDelayTime | asynFloat64 | r/w | SD_DELAY_TIME |
|
Delay in seconds between external trigger and the start of image acquisition |
| SDRecvMode | asynInt32 | r/w | SD_RECV_MODE |
|
Receiver data callback frequency |
| SDHighVoltage | asynInt32 | r/w | SD_HIGH_VOLTAGE |
|
Detector high voltage |
| SDNumGates | asynInt32 | r/w | SD_NGATES |
|
Number of gates if timing mode is gating |
| SDNumCycles | asynInt32 | r/w | SD_NCYCLES |
|
Number of triggeres |
| SDNumFrames | asynInt32 | r/w | SD_NFRAMES |
|
Number of frames to acquire for each trigger |
| SDSetupFile | asynOctet | r/w | SD_SETUP_FILE |
|
Detector setup from file |
| SDLoadSetup | asynInt32 | r/w | SD_LOAD_SETUP |
|
Load detector setup from file |
| SDSaveSetup | asynInt32 | r/w | SD_SAVE_SETUP |
|
Save detector setup to file |
# slsDetectorConfig (
# portName, # The name of the asyn port driver to be created.
# configFileName, # The configuration file to the detector.
# detectorId, # The detector index number running on the same system.
# maxBuffers, # The maximum number of NDArray buffers that the NDArrayPool for this driver is
# allowed to allocate. Set this to -1 to allow an unlimited number of buffers.
# maxMemory) # The maximum amount of memory that the NDArrayPool for this driver is
# allowed to allocate. Set this to -1 to allow an unlimited amount of memory.
slsDetectorConfig("SD1", "cfg/mcs1x21.config", 0, -1, -1)
- 1.2 - 08.08.2014
- libSlsDetector updated.
- 1.1 - 10.12.2013
- libSlsDetector updated to r706.
- Avoid calling getDetectorStatus from two threads simultaneously.
- 1.0 - 18.09.2013
- Milestone release. It has been tested for MYTHEN and GOTTHARD detectors.detectors