From 291dd4a8f4db4f3da1f01a90a9161649d593fa49 Mon Sep 17 00:00:00 2001 From: rivers Date: Fri, 25 Jul 2008 15:32:21 +0000 Subject: [PATCH] New file for ADSC detector git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@7492 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b --- documentation/adsc-screenshot.png | Bin 0 -> 23687 bytes documentation/adscDoc.html | 342 ++++++++++++++++++++++++++++++ 2 files changed, 342 insertions(+) create mode 100644 documentation/adsc-screenshot.png create mode 100644 documentation/adscDoc.html diff --git a/documentation/adsc-screenshot.png b/documentation/adsc-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4547cd2783834b312910ce966104124c5fd00d72 GIT binary patch literal 23687 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 nDVqQ + + +areaDetector ADSC driver + + + + +

areaDetector ADSC driver

+ +

Table of Contents

+
    +
  1. Introduction
  2. +
  3. Dependencies
  4. +
  5. Building
  6. +
  7. Configuring
  8. +
  9. Image Modes
  10. +
  11. Trigger Modes
  12. +
  13. Dark Images
  14. +
  15. Driver Specific Values and Settings
  16. +
  17. Screenshots
  18. +
  19. Unsupported areaDetector base + Features
  20. +
  21. Limitations
  22. +
+ +

Introduction

+ +

+This is a driver for ADSC detectors. +It has been tested with the ADSC Q210. While not yet tested with other +models, it should work with the ADSC Q4 (with the upgrade to four computers), +Q4r, Q210, Q210r, Q270, Q315, and Q315r. +

+ +

Dependencies

+ +

+This driver controls the detector via the detcon_lib_th detector +control library provided by ADSC. The detcon_lib_th library must +date from 2008-06-30 or newer. +

+ +

Building

+ +
    +
  1. Build the ADSC control library
  2. +
  3. Copy and rename, or create a symlink to, the ADSC auxlib.a +library so that it has the name libauxlib.a to satisfy the EPICS +build facility's requirement that a library file name start with +lib
  4. +
  5. Add DIRS += adscSrc to ADApp/Makefile
  6. +
  7. Set ADSC_HOME in ADApp/adscSrc/Makefile
  8. +
  9. Rebuild the areaDetector module
  10. +
+ +

Configuring

+ +

+This driver is configured via the adscConfig() function. If this is +to be used in an IOC, it must be called before iocInit(). It has the +following signature: +

+ +
+
int adscConfig(const char *portName, const char *modelName)
+
+
+
portName
+
ASYN port name for the driver instance
+
modelName
+
ADSC detector model name; must be one of Q4, Q4r, + Q210, Q210r, Q270, Q315, + Q315r
+
+
+ +

+The underlying ADSC control library obtains its configuration from the +environment. Therefore, the environment must be correctly configured (i.e. +ADSC environment variables set) for the ADSC control library before calling +adscConfig(). +

+ +

+If being used in an IOC, and an EPICS PV interface with the driver is desired, +the ADBase.template and adsc.template databases should also +be loaded for the driver instance. +

+ +

+An example IOC configuration for this driver is at +iocBoot/iocAdsc/st.cmd. +

+ +

Image Modes

+ +

Single

+ +

+The Single mode acquires just one image. +

+ +

Multiple

+ +

+The Multiple mode acquires the number of images specified in +$(P)$(R)NumImages_RBV. +

+ +

Continuous

+ +

+The Continuous mode acquires images indefinitely until last +image is set. In this mode, the last image of the acquisition must be +signaled before exposing the last image by setting +$(P)$(R)ADSCLastImage to 1. This requirement is due to how +the underlying ADSC control library works. +

+ +

Trigger Modes

+ +

Internal

+ +

+The Internal mode will make the driver expose images on its own once +the acquisition is started. +

+ +

External

+ +

+The External mode will make the driver expose images only when told +to once the acquisition is started. A special protocol must be followed to +trigger each image exposure. This would normally be very simple, but because +the ADSC control library can report that an exposure did not work and should +be retried after any exposure, a more complex protocol is required. +

+ +

+The protocol is described in terms of the EPICS PV driver interface, but the +same rules apply if controlling the driver directly through ASYN. The +protocol is as follows: +

+ +
    +
  1. Wait for $(P)$(R)ADSCOkToExpose to be Yes
  2. +
  3. Set $(P)$(R)ADSCExTrCtl to Start to start the +exposure
  4. +
  5. Set $(P)$(R)ADSCExTrCtl to Stop to stop the +exposure
  6. +
  7. Wait for $(P)$(R)ADSCExTrCtl_RBV to be OK or +Again
  8. +
  9. If $(P)$(R)ADSCExTrCtl_RBV is Again, the exposure did +not work and should be tried again
  10. +
+ +

+Note that care must be taken when waiting for $(P)$(R)ADSCExTrCtl_RBV +to be OK or Again to ensure the PV value is not stale (i.e. +from the previous exposure). There are at least two methods to ensure this: +

+ +
    +
  • Use a CA monitor on $(P)$(R)ADSCExTrCtl_RBV; before waiting for +the OK or Again values, wait for the Stop value; a +CA monitor is used to receive the value changes since the PV will have the +Stop value for just a short time
  • +
  • After starting the exposure, wait for $(P)$(R)ADSCExTrCtl_RBV to +be Start
  • +
+ +

Dark Images

+ +

+Dark images are acquired automatically at the beginning of a data acquisition. +They are taken if any of the following conditions are true: +

+ +
    +
  • Reuse darks is No
  • +
  • Exposure time is different from that of the previous +acquisition
  • +
  • ADC/binning is different from that of the previous +acquisition
  • +
  • Binning is different from that of the previous acquisition
  • +
  • The acquisition is the first after stored darks was changed from +Yes to No
  • +
+ +

Driver Specific Values and Settings

+ +

+This driver provides status values and settings in addition to what is +provided by areaDetector base. They are listed here according +to their label in the driver specific MEDM GUI and their EPICS PV name in the +EPICS PV driver interface. A screenshot of the driver specific MEDM GUI can +be seen in the Screenshots section. +

+ +

Detector Condition

+ +
+
State, $(P)$(R)ADSCState
+
State of the detector reported by the ADSC control library.
+
Status, $(P)$(R)ADSCStatus
+
Status message reported by the ADSC control library.
+
Last error, $(P)$(R)ADSCLastError
+
Last error message reported by the ADSC control library.
+
Update rate for above properties, +$(P)$(R)ADSCReadConditn.SCAN
+
How frequently to update the above properties.
+
+ +

Detector Error Recovery

+ +
+
Software Reset, $(P)$(R)ADSCSoftReset
+
Performs a software reset. Aborts any current operation, clears status +and error messages, and sets detector state to Idle.
+
+ +

Detector Continuous Image Mode

+ +
+
Last Image, $(P)$(R)ADSCLastImage
+
Signals that the next exposure is the last image when in +Continuous image mode.
+
+ +

Detector External Trigger

+ +
+
OK to expose, $(P)$(R)ADSCOkToExpose
+
When in External trigger mode, indicates whether it is OK to +start an image exposure.
+
Start, Stop, $(P)$(R)ADSCExTrCtl
+
When in External trigger mode, set to 1 to start an +exposure and 0 to stop it.
+
$(P)$(R)ADSCExTrCtl_RBV
+
When in External trigger mode, will be Start, +Stop, OK, or Again. See Trigger Modes section for more about how this +property will behave.
+
+ +

Driver Parameters

+ +
+
Reuse darks, $(P)$(R)ADSCReusDrk
+
Reuse dark images when possible. This is useful to avoid wasting time +acquiring dark images when previously acquired dark images are available and +can be reused.
+
Dezinger, $(P)$(R)ADSCDezingr
+
Acquire dezingered images.
+
+ +

Detector Hardware Parameters

+ +
+
ADC/Binning, $(P)$(R)ADSCAdc
+
For Q4 and Q4r detectors, controls whether to use Fast or +Slow ADC. For all other detectors, controls whether to use +Hardware or Software binning.
+
Raw images, $(P)$(R)ADSCRaw
+
Write raw images.
+
Image transforms, $(P)$(R)ADSCImXform
+
Perform image transformations.
+
Stored darks, $(P)$(R)ADSCStrDrks
+
Use stored dark images. If set to Yes, stored dark images are +assumed to have been installed by ADSC and should be used.
+
+ +

Detector File Parameters

+ +
+
Beam center X, $(P)$(R)ADSCBeamX
+
Beam center in the X dimension.
+
Beam center Y, $(P)$(R)ADSCBeamY
+
Beam center in the Y dimension.
+
Distance, $(P)$(R)ADSCDistnce
+
Detector distance.
+
Two theta, $(P)$(R)ADSC2Theta
+
Detector 2θ angle.
+
Axis, $(P)$(R)ADSCAxis
+
Crystal rotation axis.
+
Wavelength, $(P)$(R)ADSCWavelen
+
X-ray wavelength.
+
Image width, $(P)$(R)ADSCImWidth
+
Crystal rotation during exposure.
+
Phi, $(P)$(R)ADSCPhi
+
Phi position at start of exposure.
+
Omega, $(P)$(R)ADSCOmega
+
Omega position at start of exposure.
+
Kappa, $(P)$(R)ADSCKappa
+
Kappa position at start of exposure.
+
+ +

Screenshots

+ + + +

Unsupported areaDetector base +Features

+ +
    +
  • Shutter control
  • +
  • Collect: number of exposures per image
  • +
  • File: save file
  • +
  • File: read file
  • +
  • File: format
  • +
  • File: auto save (always Yes)
  • +
  • Readout: image region of interest
  • +
  • Readout: reverse image
  • +
  • Readout: gain
  • +
  • Readout: data type (always UInt16)
  • +
  • Image frame callbacks
  • +
+ +

Limitations

+ +
    +
  • Only one ADSC detector may be controlled with this driver per OS process. +If this driver is being used in an IOC, this means only one ADSC detector may +be controlled with this driver per IOC. This is a limitation of the +underlying ADSC control library which does not support more than one detector +per OS process.
  • +
  • Acquiring dezingered images is not supported. This is a limitation +of the underlying ADSC control library which has a bug preventing it from +working correctly.
  • +
  • Software reset does not work. This is a limitation of the +underlying ADSC control library which has a bug preventing it from working +correctly. It would be great if, after an error, performing a software reset +would allow a new acquisition to proceed normally. Currently, the recovery +solution often is to restart the control software.
  • +
+ + +