ASI TPX driver¶
- author:
Xiaoqiang Wang
Introduction¶
This is an EPICS areaDetector driver for Amsterdam Scientific Instruments hybrid pixel detectors using the Serval HTTP API.
ADASItpx specific parameters¶
The ADASItpx driver implements the following parameters in addition to those in ADDriver. The records are in asiTpx.template.
Detector settings¶
EPICS record name |
EPICS record type |
Description |
---|---|---|
TDC n (n = 0, 1) recording |
||
$(P)$(R)TDC n Enable, $(P)$(R)TDC n Enable_RBV |
bo, bi |
Enable TDC n recording |
$(P)$(R)TDC n Edge, $(P)$(R)TDC n Edge_RBV |
mbbo, mbbi |
Record TDC n edge,
|
$(P)$(R)TDC n Output, $(P)$(R)TDC n Output_RBV |
mbbo, mbbi |
Record TDC n channels,
|
Data output settings¶
The server supports three output channels,
Raw - Unprocessed data straight from the detector in tpx3 format.
Image - Two-dimensional images at detector acquisition framerate, in TIFF format for file scheme and jsonimage format for tcp scheme.
Preview - Two-dimensional images at preview framerate.
The output scheme of each channel can be one of the following:
A physical file path on the server host, e.g. “/tmp”.
For Image and Preview outputs, an HTTP host URL, e.g. “http://localhost:8080”. In such a case the image is accessible via URL “http://localhost:8080/measurement/image”.
A TCP address,
“tcp://listen@localhost:1234”. Server opens a socket at the specified port at the start of a measurement. The client can connect to this TCP address and start listening for data.
“tcp://connect@localhost:1234”. The client opens a TCP socket at the specified address and port. On starting the measurement the server will connect to the client socket.
Note
In this driver, the Preview output is fixed to the server host URL. The driver polls this URL and read into NDArrays.
Warning
Because only one http scheme output can be configured, the Image output can only use file or tcp scheme.
EPICS record name |
EPICS record type |
Description |
---|---|---|
$(P)$(R)RawEnable, $(P)$(R)RawEnable_RBV |
mbbo, mbbi |
Enable raw data output |
$(P)$(R)RawFilePath, $(P)$(R)RawFilePath_RBV |
waveform |
raw data output path |
$(P)$(R)RawFileTemplate, $(P)$(R)RawFileTemplate_RBV |
waveform |
raw data output file name prefix |
$(P)$(R)ImageEnable, $(P)$(R)ImageEnable_RBV |
mbbo, mbbi |
Enable image output |
$(P)$(R)PixelMode, $(P)$(R)PixelMode_RBV |
mbbo, mbbi |
Pixel mode for image output |
$(P)$(R)ImageFilePath, $(P)$(R)ImageFilePath_RBV |
waveform |
image output path |
$(P)$(R)ImageFileTemplate, $(P)$(R)ImageFileTemplate_RBV |
waveform |
image output file name prefix |
$(P)$(R)PreviewEnable, $(P)$(R)PreviewEnable_RBV |
mbbo, mbbi |
Enable preview image output. |
Trigger settings¶
The detector supports 8 trigger modes, which are configured by a combination of 3 EPICS records.
Native TriggerMode |
$(P)$(R)TriggerMode |
$(P)$(R)ExposureMode |
$(P)$(R)TriggerPolarity |
Description |
---|---|---|---|---|
PEXSTART_NEXSTOP |
External |
Gated |
Positive |
Acq. is started by positive edge external trigger input, stopped by negative edge |
NEXSTART_PEXSTOP |
External |
Gated |
Negative |
Acq. is started by negative edge external trigger input, stopped by positive edge |
PEXSTART_TIMERSTOP |
External |
Timed |
Positive |
Acq. is started by positive edge external trigger input, stopped by HW timer |
NEXSTART_TIMERSTOP |
External |
Timed |
Negative |
Acq. is started by negative edge external trigger input, stopped by HW timer |
AUTOTRIGSTART_TIMERSTOP |
Internal |
Timed |
- |
Acq. is started by trigger from HW, stopped by HW timer |
CONTINUOUS |
Internal |
Gated |
- |
Acq. is started by software, stopped by software |
AUTOTRIGSTART_TIMERSTOP |
Software |
Timed |
- |
Acq. is started by writting 1 to $(P)$(R)TriggerSoftware, stopped by HW timer |
SOFTWARESTART_SOFTWARESTOP |
Software |
Gated |
- |
Acq. is started by writting 1 to $(P)$(R)TriggerSoftware, stopped by writting 0 to $(P)$(R)TriggerSoftware |
Configuration¶
The command to configure an ASItpx detector in the startup script is:
asiTpxConfig(const char *portName, const char *configFile,
int maxBuffers, int maxMemory, int priority, int stackSize)
The configFile is a json file, which specifies the server address and detector DACS and BPC file path, e.g.
{
"Server": {
"Address": "http://localhost:8080"
},
"Detector": {
"Config": {
"PixelConfig": "/home/scratch/asi_tpx3/asi-server-300-tpx3/examples/tpx3/tpx3-demo.bpc",
"DACS": "/home/scratch/asi_tpx3/asi-server-300-tpx3/examples/tpx3/tpx3-demo.dacs"
}
}
}
MEDM screen¶

