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 |
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 |
---|---|---|---|---|---|
DetectorType | asynInt32 | r/o | SD_DETECTOR_TYPE |
|
Detector type enum |
SDSetting | asynInt32 | r/w | SD_SETTING |
|
Detector settings |
SDBitDepth | asynInt32 | r/w | SD_BIT_DEPTH |
|
Dynamic range |
SDTimingMode | asynInt32 | r/w | SD_TMODE |
|
External signal communication mode, triggering, gating |
SDTriggerSoftware | asynInt32 | r/w | SD_TRIGGER_SOFTWARE |
|
Send software trigger |
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 |
SDRecvStream | asynInt32 | r/w | SD_RECV_STREAM |
|
Enable/disable receiver stream |
SDRecvStatus | asynInt32 | r/o | SD_RECV_STATUS |
|
Receiver status |
SDRecvMissed | asynInt32 | r/o | SD_RECV_MISSED |
|
Number of packets missed |
SDHighVoltage | asynInt32 | r/w | SD_HIGH_VOLTAGE |
|
Detector high voltage |
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 |
SDCommand | asynOctet | r/w | SD_COMMAND |
|
Direct command to detector |
SDUseDataCallback | asynInt32 | r/w | SD_USE_DATA_CALLBACK |
|
Enable disable client data callback |
Eiger and Mythen3 specific
Parameter index variable | asyn interface | Access | drvInfo string | EPICS record name | Description |
---|---|---|---|---|---|
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. |
SDTrimbits | asynInt32 | r/w | SD_TRIMBITS |
|
Whether loading trimbits from settings |
Mythen3 specific
Parameter index variable | asyn interface | Access | drvInfo string | EPICS record name | Description |
---|---|---|---|---|---|
SDNumGates | asynInt32 | r/w | SD_NGATES |
|
Number of gates if timing mode is gating |
SDCounterMask | asynUInt32Digital | r/w | SD_COUNTER_MASK |
|
Mask of counters used |
SDGatenDelay | asynFloat64 | r/w | SD_GATEn_DELAY |
|
Gaten delay in seconds |
SDGatenWidth | asynFloat64 | r/w | SD_GATEn_WIDTH |
|
Gaten width in seconds |
SDCounternThreshold | asynInt32 | r/w | SD_CNTn_THRESHOLD |
|
Countern threshold in eV |
# 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. # numModules, # The number of modules for a multi-module detector. # 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)
- 8.0.2 - 17.10.2024 1. slsDetector library updated to 8.0.2 built on RHEL8.
- 5.0.0 - 30.11.2020 1. slsDetector library updated to 5.0.1
- 4.1.2 - 13.05.2020 1. libSlsDetector updated to 4.1.1 with zmq statically builtin.
- 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