This is an EPICS areaDetector driver for the detectors from Photonic Science Limited (PSL).
The interface to the detector is via a TCP/IP socket interface to the PSLViewer program that PSL provides. Before starting the areaDetector software the following needs to be done:
This driver inherits from ADDriver. It implements many of the parameters in asynNDArrayDriver.h and in ADArrayDriver.h. It also implements a number of parameters that are specific to the PSL detectors. The PSL class documentation describes this class in detail.
The following table describes how the PSL driver implements some of the standard driver parameters.
Implementation of Parameters in asynNDArrayDriver.h and ADDriver.h, and EPICS Record Definitions in ADBase.template and NDFile.template | ||
Parameter index variable | EPICS record name | Description |
---|---|---|
NDFilePath | $(P)$(R)FilePath | Controls the path for saving images. It must be a valid path for PSL_server. |
NDFileFormat | $(P)$(R)FileFormat |
The PSL driver supports saving images using the PSL_server in the following formats:
This list of file formats is read from the server, so could change in future releases of the server with no change to the areaDetector software required. |
ADTriggerMode | $(P)$(R)TriggerMode |
The PSL driver supports one or more of the following trigger modes:
|
The PSL driver implements the following parameters in addition to those in asynNDArrayDriver.h and ADDriver.h.
Parameter Definitions in PSL.cpp and EPICS Record Definitions in PSL.template | ||||||
Parameter index variable | asyn interface | Access | Description | drvInfo string | EPICS record name | EPICS record type |
---|---|---|---|---|---|---|
PSLCameraName | asynInt32 | r/w | Selects the camera to open. | PSL_CAMERA_NAME |
$(P)$(R)CameraName
$(P)$(R)CameraName_RBV The menu of valid camera names is read from the server when the areaDetector software starts. |
mbbo
mbbi |
PSLTIFFComment | asynOctet | r/w | Comment string to put in header of TIFF files written by PSL_server. | PSL_TIFF_COMMENT |
$(P)$(R)TIFFComment
$(P)$(R)TIFFCommand_RBV |
waveform
waveform |
The PSL driver does not support the following standard driver parameters because they are not supported in the PSL_server program:
The PSL driver is created with the PSLConfig command, either from C/C++ or from the EPICS IOC shell.
int PSLConfig(const char *portName, const char *serverPort, int maxBuffers, size_t maxMemory, int priority, int stackSize)
For details on the meaning of the parameters to this function refer to the detailed documentation on the PSLConfig function in the PSL.cpp documentation and in the documentation for the constructor for the PSL class.
There an example IOC boot directory and startup script (iocBoot/iocPSL/st.cmd) provided with ASPSL.
The following show the MEDM screens that are used to control the PSL detector. Note that the general purpose screen ADBase.adl can be used, but it exposes many controls that are not applicable to the PSL, and lacks some fields that are important for the PSL.
PSL.adl
is the main screen used to control the PSL driver.
The following are some current restrictions of the PSL driver: