From aacf49cd51a5ee92202da9127bc971b9f245d1f4 Mon Sep 17 00:00:00 2001 From: rivers Date: Wed, 19 Aug 2009 13:46:20 +0000 Subject: [PATCH] Updated for R1-5; Unix line terminators git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@9338 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b --- documentation/FirewireWinDoc.html | 2316 ++++++++++++++--------------- documentation/Mar345Doc.html | 1264 ++++++++-------- documentation/MarCCDDoc.html | 1742 +++++++++++----------- 3 files changed, 2661 insertions(+), 2661 deletions(-) diff --git a/documentation/FirewireWinDoc.html b/documentation/FirewireWinDoc.html index 7e83a42..f6c3e3e 100755 --- a/documentation/FirewireWinDoc.html +++ b/documentation/FirewireWinDoc.html @@ -1,1162 +1,1162 @@ - - - Firewire IIDC (CDAM) Windows driver - - - -
-

- Firewire IIDC (DCAM) Windows driver

-

- August 17, 2009

-

- Mark Rivers

-

- University of Chicago

-
-

- Table of Contents

- -

- Introduction

-

- This is a driver for Firewire (IEEE 1394) cameras that follow the - IIDC/DCAM specification. This industry standard allows a single driver to - control cameras from any manufacturer, using any of the supported video formats - and features.

-

- This driver runs only on Windows. It uses the - Carnegie Mellon 1394 camera driver and library. There is also an areaDetector - Firewire driver for Linux available from the - Diamond Light Source. -

-

- This driver inherits from ADDriver. - It implements many of the parameters in NDStdDriverParam_t (see - asynNDArryDriver.h) and in ADStdDriverParam_t (see - ADArrayDriver.h). It also implements a number of parameters that are specific - to the Firewire cameras. The - firewireWinDCAM class documentation describes this class in detail.

-

- The IIDC/DCAM specification defines standard ways that manufacturers must implement - features like shutter time, white balance, frame sizes, frame rates, etc. There - is a standard way to determine whether or not a particular camera supports a particular - feature. If it does then there is a standard way of querying the allowed range of - values for that feature. This makes it quite easy to write a driver that can support - cameras with any capabilities from any manufacturer.

-

- Video formats, modes, and frame rates

-

- The DCAM specification defines standard video frame sizes, color modes and frames - rates. The following tables lists these standard formats and mode. Video format - 7 is special. It allows defining an ROI on the camera to read out. The pixel resolution - with which the size and position of this ROI can be defined can be queried, and - is not necessarily a single pixel. In Format 7 the frame rate settings do not apply, - and the frame rate is determined by the size of the Fireware data packets.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Standard IIDC/DCAM Video Formats and Video Modes
- Format Number - Format Description - Mode Number - Mode Description
- 0 - VGA
- 0 - 160x120 YUV444
- 1 - 320x240 YUV422
- 2 - 640x480 YUV411
- 3 - 640X480 YUV422
- 4 - 640x480 RGB
- 5 - 640x480 Mono8
- 6 - 640x480 Mono16
- 7 - Reserved
- 1 - Super-VGA1
- 0 - 800x600 YUV422
- 1 - 800x600 RGB
- 2 - 800x600 Mono8
- 3 - 1024x768 YUV422
- 4 - 1024x768 RGB
- 5 - 1024x768 Mono8
- 6 - 800x600 Mono16
- 7 - 1024x768 Mono16
- 2 - Super-VGA2
- 0 - 1280x960 YUV422
- 1 - 1280x960 RGB
- 2 - 1280x960 Mono8
- 3 - 1600x1200 YUV422
- 4 - 1600x1200 RGB
- 5 - 1600x1200 Mono8
- 6 - 1280x960 Mono16
- 7 - 1600x1200 Mono16
- 3-5 - Reserved
- 0-7 - Reserved
- 6 - Still image
- 0 - Exif
- 1-7 - Reserved
- 7 - Partial Image (user-defineable ROI)
- 0-7 - Vendor-defined
-

- The following tables lists the standard frame rates for formats 0, 1 and 2. Note - that not all frame rates are supported by the IIDC standard for every format and - mode, and even when a frame rate is supported by the standard it may not be implemented - for a particular camera. In Format 7 the frame rate settings do not apply, and the - frame rate is determined by the size of the Fireware data packets. The areaDetector - driver currently sets the Format 7 packet size to the vendor recommended size, which - typically results in the maximum possible frame rate.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Standard IIDC/DCAM Video Frame Rates
- Frame Rate Number - Frame Rate (Frames/second)
- 0 - 1.875
- 1 - 3.75
- 2 - 7.5
- 3 - 15
- 4 - 30
- 5 - 60
- 6 - 120
- 7 - 240
-

- The DCAM specification defines 22 standard features, which control things such as - the brightness, white balance, shutter time, etc.. For each feature the standard - defines control in both device units (12-bit integers) and absolute units (floating - point). For example shutter time may support absolute seconds, as well as device - units. A feature may or may not be supported on a particular camera. If it is supported - it may or may not permit control in absolute units. Each feature may support both - manual control and automatic control (e.g. automatic gain control). The following - tables lists these standard features.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Standard IIDC/DCAM Features
- Feature Number - Feature Description - EPICS record string for firewireFeature.template
- 0 - Brightness - BRIGHTNESS
- 1 - Auto exposure - EXPOSURE
- 2 - Sharpness - SHARPNESS
- 3 - White balance (color tint) - WHITEB
- 4 - Hue (color tint) - HUE
- 5 - Saturation (color saturation) - SATURATION
- 6 - Gamma (response curve) - GAMMA
- 7 - Shutter (exposure time) - SHUTTER
- 8 - Gain (amplification) - GAIN
- 9 - Iris - IRIS
- 10 - Focus - FOCUS
- 11 - Temperature - TEMP
- 12 - Trigger mode - TRIGGER
- 13 - Trigger delay - TRIGDLY
- 14 - White shading - WHITES
- 15 - Frame rate - FRAMERATE
- 16 - Zoom - ZOOM
- 17 - Pan - PAN
- 18 - Tilt - TILT
- 19 - Optical filter - FILTER
- 20 - Capture size - CAPTSIZE
- 21 - Capture quality - QUALITY
-

- Firewire specific parameters

-

- The firewireWinDCAM driver implements the following parameters in addition to those - in asynNDArrayDriver.h and ADDriver.hh. Note that to reduce the width of this table - the enum names have been split into 2 lines, but these are just a single name, for - example mar345ScanSize. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Parameter Definitions in firewireWinDCAM.cpp and EPICS Record Definitions
- Enum name - asyn interface - Access - Description - drvUser string - EPICS record name - EPICS record type
- Video format parameters. In firewireDCAM.template and firewireVideoModes.template.
- FDC_
- format
- asynInt32 - r/w - The video format. The allowed choices are 0="VGA", 1="Super VGA 1", 2="Super VGA - 2", 6="Still image", 7="User-defined". The FDC_has_format and FDC_valid_format parameters - described below indicate whether a particular format is actually supported by the - camera. - FDC_FORMAT - $(P)$(R)FORMAT
- $(P)$(R)FORMAT_RBV
- mbbo -
- mbbi -
- FDC_
- has_format
- asynInt32 - r/o - A flag indicating whether a particular format (0-7) is supported by the camera. - FDC_HAS_FORMAT - $(P)$(R)HAS_FORMAT_$(N) (N=0-7) - bi -
- FDC_
- valid_format
- asynOctet - r/o - A string describing each of the formats (0-7) supported by the camera. The string - is "N.A." if the format is not supported. - FDC_VALID_FORMAT - $(P)$(R)VALID_FORMAT_$(N) (N=0-7) - stringin -
- FDC_
- current_format
- asynOctet - r/o - A string describing the currently selected video format. - FDC_CURRENT_FORMAT - $(P)$(R)CURRENT_FORMAT - stringin -
- Video mode parameters. In firewireDCAM.template and firewireVideoModes.template.
- FDC_
- mode
- asynInt32 - r/w - The video mode. The allowed choices are 0-7. The FDC_has_mode and FDC_valid_mode - parameters described below indicate whether a particular mode is actually supported - by the camera in the currently selected video format. - FDC_MODE - $(P)$(R)MODE
- $(P)$(R)MODE_RBV
- mbbo -
- mbbi -
- FDC_
- has_mode
- asynInt32 - r/o - A flag indicating whether a particular mode (0-7) is supported by the camera in - the currently selected format. - FDC_HAS_MODE - $(P)$(R)HAS_MODE_$(N) (N=0-7) - bi -
- FDC_
- valid_mode
- asynOctet - r/o - A string describing each of the modes (0-7) supported by the camera in the currently - selected video format. The string is "N.A." if the mode is not supported in this - format. - FDC_VALID_MODE - $(P)$(R)VALID_MODE_$(N) (N=0-7) - stringin -
- FDC_
- current_mode
- asynOctet - r/o - A string describing the currently selected video mode. - FDC_CURRENT_MODE - $(P)$(R)CURRENT_MODE - stringin -
- Video frame rate parameters. These parameters do not apply when the video format=7. - In firewireDCAM.template and firewireVideoModes.template.
- FDC_
- framerate
- asynInt32 - r/w - The frame rate in frames/second. The allowed choices are 0="1.875", 1="3.75", 2="7.5", - 3="15", 4="30", 5="60", 6="120", 7="240". FDC_has_framerate and FDC_valid_framerate - parameters described below indicate whether a particular frame rate is actually - supported by the camera in the currently selected video format and mode. - FDC_FRAMERATE - $(P)$(R)FR
- $(P)$(R)FR_RBV
- mbbo -
- mbbi -
- FDC_
- has_framerate
- asynInt32 - r/o - A flag indicating whether a particular frame rate (0-7) is supported by the camera - in the currently selected video format and mode. - FDC_HAS_FRAMERATE - $(P)$(R)HAS_RATE_$(N) (N=0-7) - bi -
- FDC_
- valid_framerate
- asynOctet - r/o - A string describing each of the frame rates (0-7) supported by the camera in the - currently selected video format and mode. The string is "N.A." if the frame rate - is not supported in this format and mode. - FDC_VALID_FRAMERATE - $(P)$(R)VALID_RATE_$(N) (N=0-7) - stringin -
- FDC_
- current_framerate
- asynOctet - r/o - A string describing the currently selected video frame rate. - FDC_CURRENT_FRAMERATE - $(P)$(R)CURRENT_RATE - stringin -
- Video color code parameters. These parameters only apply when the video format=7. - In firewireDCAM.template and firewireColorCodes.template.
- FDC_
- colorcode
- asynInt32 - r/w - The color code. The allowed choices are 0-10. FDC_has_colorcode and FDC_valid_colorcode - parameters described below indicate whether a particular color code is actually - supported by the camera in the currently selected video format (7) and mode. - FDC_COLORCODE - $(P)$(R)COLORCODE
- $(P)$(R)COLORCODE_RBV
- mbbo -
- mbbi -
- FDC_
- has_colorcode
- asynInt32 - r/o - A flag indicating whether a particular color code (0-10) is supported by the camera - in the currently selected video format (7) and mode. - FDC_HAS_COLORCODE - $(P)$(R)HAS_COLORCODE_$(N) (N=0-10) - bi -
- FDC_
- valid_colorcode
- asynOctet - r/o - A string describing each of the color codes (0-10) supported by the camera in the - currently selected video format (7) and mode. The string is "N.A." if the color - code is not supported in this format and mode. - FDC_VALID_COLORCODE - $(P)$(R)VALID_COLORCODE_$(N) (N=0-10) - stringin -
- FDC_
- current_colorcode
- asynOctet - r/o - A string describing the currently selected color code. - FDC_CURRENT_COLORCODE - $(P)$(R)CURRENT_COLORCODE - stringin -
- Video feature parameters. These parameters apply to each of the 22 DCAM features - listed above. In firewireFeature.template.
- FDC_
- feat_val
- asynInt32 - r/w - The feature value in device units. - FDC_FEAT_VAL - $(P)$(R)$(FEATURE)
- $(P)$(R)$(FEATURE)_RBV
- ao -
- ai -
- FDC_
- feat_val_abs
- asynFloat64 - r/w - The feature value in absolute units. - FDC_FEAT_VAL_ABS - $(P)$(R)$(FEATURE)_ABS
- $(P)$(R)$(FEATURE)_ABS_RBV
- ao -
- ai -
- FDC_
- feat_available
- asynInt32 - r/o - A flag indicating if the feature is available. - FDC_FEAT_AVL - $(P)$(R)$(FEATURE)_AVL - bi -
- FDC_
- feat_absolute
- asynInt32 - r/o - A flag indicating if absolute control of the feature is available. - FDC_FEAT_ABSOLUTE - $(P)$(R)$(FEATURE)_ABS_AVL - bi -
- FDC_
- feat_mode
- asynInt32 - r/o - Selects manual (0) or automatic (1) control of the feature. - FDC_FEAT_MODE - $(P)$(R)$(FEATURE)_CTRL
- $(P)$(R)$(FEATURE)_CTRL_RBV
- bo -
- bi -
- FDC_
- feat_val_min
- asynInt32 - r/o - The minimum allowed value of the feature in device units. The database copies this - value to the LOPR and DRVL fields of the $(P)$(R)$(FEATURE) record. - FDC_FEAT_VAL_MIN - $(P)$(R)$(FEATURE)_MIN - ai -
- FDC_
- feat_val_max
- asynInt32 - r/o - The maximum allowed value of the feature in device units. The database copies this - value to the HOPR and DRVH fields of the $(P)$(R)$(FEATURE) record. - FDC_FEAT_VAL_MAX - $(P)$(R)$(FEATURE)_MAX - ai -
- FDC_
- feat_val_abs_min
- asynInt32 - r/o - The minimum allowed value of the feature in absolute units. The database copies - this value to the LOPR and DRVL fields of the $(P)$(R)$(FEATURE)_ABS record. - FDC_FEAT_VAL_ABS_MIN - $(P)$(R)$(FEATURE)_ABS_MIN - ai -
- FDC_
- feat_val_abs_max
- asynFloat64 - r/o - The maximum allowed value of the feature in absolute units. The database copies - this value to the HOPR and DRVH fields of the $(P)$(R)$(FEATURE)_ABS record. - FDC_FEAT_VAL_ABS_MAX - $(P)$(R)$(FEATURE)_ABS_MAX - ai -
-

- Configuration

-

- The firewireWinDCAM driver is created with the WinFDC_Config command, either from - C/C++ or from the EPICS IOC shell.

+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + + + Firewire IIDC (CDAM) Windows driver + + + +
+

+ Firewire IIDC (DCAM) Windows driver

+

+ August 17, 2009

+

+ Mark Rivers

+

+ University of Chicago

+
+

+ Table of Contents

+ +

+ Introduction

+

+ This is a driver for Firewire (IEEE 1394) cameras that follow the + IIDC/DCAM specification. This industry standard allows a single driver to + control cameras from any manufacturer, using any of the supported video formats + and features.

+

+ This driver runs only on Windows. It uses the + Carnegie Mellon 1394 camera driver and library. There is also an areaDetector + Firewire driver for Linux available from the + Diamond Light Source. +

+

+ This driver inherits from ADDriver. + It implements many of the parameters in NDStdDriverParam_t (see + asynNDArryDriver.h) and in ADStdDriverParam_t (see + ADArrayDriver.h). It also implements a number of parameters that are specific + to the Firewire cameras. The + firewireWinDCAM class documentation describes this class in detail.

+

+ The IIDC/DCAM specification defines standard ways that manufacturers must implement + features like shutter time, white balance, frame sizes, frame rates, etc. There + is a standard way to determine whether or not a particular camera supports a particular + feature. If it does then there is a standard way of querying the allowed range of + values for that feature. This makes it quite easy to write a driver that can support + cameras with any capabilities from any manufacturer.

+

+ Video formats, modes, and frame rates

+

+ The DCAM specification defines standard video frame sizes, color modes and frames + rates. The following tables lists these standard formats and mode. Video format + 7 is special. It allows defining an ROI on the camera to read out. The pixel resolution + with which the size and position of this ROI can be defined can be queried, and + is not necessarily a single pixel. In Format 7 the frame rate settings do not apply, + and the frame rate is determined by the size of the Fireware data packets.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Standard IIDC/DCAM Video Formats and Video Modes
+ Format Number + Format Description + Mode Number + Mode Description
+ 0 + VGA
+ 0 + 160x120 YUV444
+ 1 + 320x240 YUV422
+ 2 + 640x480 YUV411
+ 3 + 640X480 YUV422
+ 4 + 640x480 RGB
+ 5 + 640x480 Mono8
+ 6 + 640x480 Mono16
+ 7 + Reserved
+ 1 + Super-VGA1
+ 0 + 800x600 YUV422
+ 1 + 800x600 RGB
+ 2 + 800x600 Mono8
+ 3 + 1024x768 YUV422
+ 4 + 1024x768 RGB
+ 5 + 1024x768 Mono8
+ 6 + 800x600 Mono16
+ 7 + 1024x768 Mono16
+ 2 + Super-VGA2
+ 0 + 1280x960 YUV422
+ 1 + 1280x960 RGB
+ 2 + 1280x960 Mono8
+ 3 + 1600x1200 YUV422
+ 4 + 1600x1200 RGB
+ 5 + 1600x1200 Mono8
+ 6 + 1280x960 Mono16
+ 7 + 1600x1200 Mono16
+ 3-5 + Reserved
+ 0-7 + Reserved
+ 6 + Still image
+ 0 + Exif
+ 1-7 + Reserved
+ 7 + Partial Image (user-defineable ROI)
+ 0-7 + Vendor-defined
+

+ The following tables lists the standard frame rates for formats 0, 1 and 2. Note + that not all frame rates are supported by the IIDC standard for every format and + mode, and even when a frame rate is supported by the standard it may not be implemented + for a particular camera. In Format 7 the frame rate settings do not apply, and the + frame rate is determined by the size of the Fireware data packets. The areaDetector + driver currently sets the Format 7 packet size to the vendor recommended size, which + typically results in the maximum possible frame rate.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Standard IIDC/DCAM Video Frame Rates
+ Frame Rate Number + Frame Rate (Frames/second)
+ 0 + 1.875
+ 1 + 3.75
+ 2 + 7.5
+ 3 + 15
+ 4 + 30
+ 5 + 60
+ 6 + 120
+ 7 + 240
+

+ The DCAM specification defines 22 standard features, which control things such as + the brightness, white balance, shutter time, etc.. For each feature the standard + defines control in both device units (12-bit integers) and absolute units (floating + point). For example shutter time may support absolute seconds, as well as device + units. A feature may or may not be supported on a particular camera. If it is supported + it may or may not permit control in absolute units. Each feature may support both + manual control and automatic control (e.g. automatic gain control). The following + tables lists these standard features.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Standard IIDC/DCAM Features
+ Feature Number + Feature Description + EPICS record string for firewireFeature.template
+ 0 + Brightness + BRIGHTNESS
+ 1 + Auto exposure + EXPOSURE
+ 2 + Sharpness + SHARPNESS
+ 3 + White balance (color tint) + WHITEB
+ 4 + Hue (color tint) + HUE
+ 5 + Saturation (color saturation) + SATURATION
+ 6 + Gamma (response curve) + GAMMA
+ 7 + Shutter (exposure time) + SHUTTER
+ 8 + Gain (amplification) + GAIN
+ 9 + Iris + IRIS
+ 10 + Focus + FOCUS
+ 11 + Temperature + TEMP
+ 12 + Trigger mode + TRIGGER
+ 13 + Trigger delay + TRIGDLY
+ 14 + White shading + WHITES
+ 15 + Frame rate + FRAMERATE
+ 16 + Zoom + ZOOM
+ 17 + Pan + PAN
+ 18 + Tilt + TILT
+ 19 + Optical filter + FILTER
+ 20 + Capture size + CAPTSIZE
+ 21 + Capture quality + QUALITY
+

+ Firewire specific parameters

+

+ The firewireWinDCAM driver implements the following parameters in addition to those + in asynNDArrayDriver.h and ADDriver.hh. Note that to reduce the width of this table + the enum names have been split into 2 lines, but these are just a single name, for + example mar345ScanSize. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Parameter Definitions in firewireWinDCAM.cpp and EPICS Record Definitions
+ Enum name + asyn interface + Access + Description + drvUser string + EPICS record name + EPICS record type
+ Video format parameters. In firewireDCAM.template and firewireVideoModes.template.
+ FDC_
+ format
+ asynInt32 + r/w + The video format. The allowed choices are 0="VGA", 1="Super VGA 1", 2="Super VGA + 2", 6="Still image", 7="User-defined". The FDC_has_format and FDC_valid_format parameters + described below indicate whether a particular format is actually supported by the + camera. + FDC_FORMAT + $(P)$(R)FORMAT
+ $(P)$(R)FORMAT_RBV
+ mbbo +
+ mbbi +
+ FDC_
+ has_format
+ asynInt32 + r/o + A flag indicating whether a particular format (0-7) is supported by the camera. + FDC_HAS_FORMAT + $(P)$(R)HAS_FORMAT_$(N) (N=0-7) + bi +
+ FDC_
+ valid_format
+ asynOctet + r/o + A string describing each of the formats (0-7) supported by the camera. The string + is "N.A." if the format is not supported. + FDC_VALID_FORMAT + $(P)$(R)VALID_FORMAT_$(N) (N=0-7) + stringin +
+ FDC_
+ current_format
+ asynOctet + r/o + A string describing the currently selected video format. + FDC_CURRENT_FORMAT + $(P)$(R)CURRENT_FORMAT + stringin +
+ Video mode parameters. In firewireDCAM.template and firewireVideoModes.template.
+ FDC_
+ mode
+ asynInt32 + r/w + The video mode. The allowed choices are 0-7. The FDC_has_mode and FDC_valid_mode + parameters described below indicate whether a particular mode is actually supported + by the camera in the currently selected video format. + FDC_MODE + $(P)$(R)MODE
+ $(P)$(R)MODE_RBV
+ mbbo +
+ mbbi +
+ FDC_
+ has_mode
+ asynInt32 + r/o + A flag indicating whether a particular mode (0-7) is supported by the camera in + the currently selected format. + FDC_HAS_MODE + $(P)$(R)HAS_MODE_$(N) (N=0-7) + bi +
+ FDC_
+ valid_mode
+ asynOctet + r/o + A string describing each of the modes (0-7) supported by the camera in the currently + selected video format. The string is "N.A." if the mode is not supported in this + format. + FDC_VALID_MODE + $(P)$(R)VALID_MODE_$(N) (N=0-7) + stringin +
+ FDC_
+ current_mode
+ asynOctet + r/o + A string describing the currently selected video mode. + FDC_CURRENT_MODE + $(P)$(R)CURRENT_MODE + stringin +
+ Video frame rate parameters. These parameters do not apply when the video format=7. + In firewireDCAM.template and firewireVideoModes.template.
+ FDC_
+ framerate
+ asynInt32 + r/w + The frame rate in frames/second. The allowed choices are 0="1.875", 1="3.75", 2="7.5", + 3="15", 4="30", 5="60", 6="120", 7="240". FDC_has_framerate and FDC_valid_framerate + parameters described below indicate whether a particular frame rate is actually + supported by the camera in the currently selected video format and mode. + FDC_FRAMERATE + $(P)$(R)FR
+ $(P)$(R)FR_RBV
+ mbbo +
+ mbbi +
+ FDC_
+ has_framerate
+ asynInt32 + r/o + A flag indicating whether a particular frame rate (0-7) is supported by the camera + in the currently selected video format and mode. + FDC_HAS_FRAMERATE + $(P)$(R)HAS_RATE_$(N) (N=0-7) + bi +
+ FDC_
+ valid_framerate
+ asynOctet + r/o + A string describing each of the frame rates (0-7) supported by the camera in the + currently selected video format and mode. The string is "N.A." if the frame rate + is not supported in this format and mode. + FDC_VALID_FRAMERATE + $(P)$(R)VALID_RATE_$(N) (N=0-7) + stringin +
+ FDC_
+ current_framerate
+ asynOctet + r/o + A string describing the currently selected video frame rate. + FDC_CURRENT_FRAMERATE + $(P)$(R)CURRENT_RATE + stringin +
+ Video color code parameters. These parameters only apply when the video format=7. + In firewireDCAM.template and firewireColorCodes.template.
+ FDC_
+ colorcode
+ asynInt32 + r/w + The color code. The allowed choices are 0-10. FDC_has_colorcode and FDC_valid_colorcode + parameters described below indicate whether a particular color code is actually + supported by the camera in the currently selected video format (7) and mode. + FDC_COLORCODE + $(P)$(R)COLORCODE
+ $(P)$(R)COLORCODE_RBV
+ mbbo +
+ mbbi +
+ FDC_
+ has_colorcode
+ asynInt32 + r/o + A flag indicating whether a particular color code (0-10) is supported by the camera + in the currently selected video format (7) and mode. + FDC_HAS_COLORCODE + $(P)$(R)HAS_COLORCODE_$(N) (N=0-10) + bi +
+ FDC_
+ valid_colorcode
+ asynOctet + r/o + A string describing each of the color codes (0-10) supported by the camera in the + currently selected video format (7) and mode. The string is "N.A." if the color + code is not supported in this format and mode. + FDC_VALID_COLORCODE + $(P)$(R)VALID_COLORCODE_$(N) (N=0-10) + stringin +
+ FDC_
+ current_colorcode
+ asynOctet + r/o + A string describing the currently selected color code. + FDC_CURRENT_COLORCODE + $(P)$(R)CURRENT_COLORCODE + stringin +
+ Video feature parameters. These parameters apply to each of the 22 DCAM features + listed above. In firewireFeature.template.
+ FDC_
+ feat_val
+ asynInt32 + r/w + The feature value in device units. + FDC_FEAT_VAL + $(P)$(R)$(FEATURE)
+ $(P)$(R)$(FEATURE)_RBV
+ ao +
+ ai +
+ FDC_
+ feat_val_abs
+ asynFloat64 + r/w + The feature value in absolute units. + FDC_FEAT_VAL_ABS + $(P)$(R)$(FEATURE)_ABS
+ $(P)$(R)$(FEATURE)_ABS_RBV
+ ao +
+ ai +
+ FDC_
+ feat_available
+ asynInt32 + r/o + A flag indicating if the feature is available. + FDC_FEAT_AVL + $(P)$(R)$(FEATURE)_AVL + bi +
+ FDC_
+ feat_absolute
+ asynInt32 + r/o + A flag indicating if absolute control of the feature is available. + FDC_FEAT_ABSOLUTE + $(P)$(R)$(FEATURE)_ABS_AVL + bi +
+ FDC_
+ feat_mode
+ asynInt32 + r/o + Selects manual (0) or automatic (1) control of the feature. + FDC_FEAT_MODE + $(P)$(R)$(FEATURE)_CTRL
+ $(P)$(R)$(FEATURE)_CTRL_RBV
+ bo +
+ bi +
+ FDC_
+ feat_val_min
+ asynInt32 + r/o + The minimum allowed value of the feature in device units. The database copies this + value to the LOPR and DRVL fields of the $(P)$(R)$(FEATURE) record. + FDC_FEAT_VAL_MIN + $(P)$(R)$(FEATURE)_MIN + ai +
+ FDC_
+ feat_val_max
+ asynInt32 + r/o + The maximum allowed value of the feature in device units. The database copies this + value to the HOPR and DRVH fields of the $(P)$(R)$(FEATURE) record. + FDC_FEAT_VAL_MAX + $(P)$(R)$(FEATURE)_MAX + ai +
+ FDC_
+ feat_val_abs_min
+ asynInt32 + r/o + The minimum allowed value of the feature in absolute units. The database copies + this value to the LOPR and DRVL fields of the $(P)$(R)$(FEATURE)_ABS record. + FDC_FEAT_VAL_ABS_MIN + $(P)$(R)$(FEATURE)_ABS_MIN + ai +
+ FDC_
+ feat_val_abs_max
+ asynFloat64 + r/o + The maximum allowed value of the feature in absolute units. The database copies + this value to the HOPR and DRVH fields of the $(P)$(R)$(FEATURE)_ABS record. + FDC_FEAT_VAL_ABS_MAX + $(P)$(R)$(FEATURE)_ABS_MAX + ai +
+

+ Configuration

+

+ The firewireWinDCAM driver is created with the WinFDC_Config command, either from + C/C++ or from the EPICS IOC shell.

WinFDC_Config(const char *portName, const char* camid, 
               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 WinFDC_Config function in the - firewireWinDCAM.cpp documentation and in the documentation for the constructor - for the FirewireWinDCAM - class. -

-

- There an example IOC boot directory and startup script (iocBoot/iocFirewire/st.cmd) - provided with areaDetector. -

-

- MEDM screens

-

- The following show the MEDM screens that are used to control the Firewire detectors. - Note that the general purpose screen ADBase.adl must be used to control many features, - but it exposes some controls that are not applicable to Firewire cameras, and lacks - many fields that are important for such cameras. A new Firewire-specific top-level - control screen will be added in a future release.

-

- firewireFeatures.adl is the screen used to control the features of - Firewire cameras. -

-
-

- firewireFeatures.adl

- firewireFeatures.png
-

- firewireVideoFormats.adl is the screen used to control the video formats - and modes of Firewire cameras. This is a screen shot when the camera is not in Format - 7. -

-
-

- firewireVideoFormats.adl

- firewireVideoFormats.png
-

- firewireVideoFormats.adl is the screen used to control the video formats - and modes of Firewire cameras. This is a screen shot when the camera is in Format - 7, in which case the video rate menu is not displayed. -

-
-

- firewireVideoFormats.adl

- firewireVideoFormatsFormat7.png
- - + +

+ For details on the meaning of the parameters to this function refer to the detailed + documentation on the WinFDC_Config function in the + firewireWinDCAM.cpp documentation and in the documentation for the constructor + for the FirewireWinDCAM + class. +

+

+ There an example IOC boot directory and startup script (iocBoot/iocFirewire/st.cmd) + provided with areaDetector. +

+

+ MEDM screens

+

+ The following show the MEDM screens that are used to control the Firewire detectors. + Note that the general purpose screen ADBase.adl must be used to control many features, + but it exposes some controls that are not applicable to Firewire cameras, and lacks + many fields that are important for such cameras. A new Firewire-specific top-level + control screen will be added in a future release.

+

+ firewireFeatures.adl is the screen used to control the features of + Firewire cameras. +

+
+

+ firewireFeatures.adl

+ firewireFeatures.png
+

+ firewireVideoFormats.adl is the screen used to control the video formats + and modes of Firewire cameras. This is a screen shot when the camera is not in Format + 7. +

+
+

+ firewireVideoFormats.adl

+ firewireVideoFormats.png
+

+ firewireVideoFormats.adl is the screen used to control the video formats + and modes of Firewire cameras. This is a screen shot when the camera is in Format + 7, in which case the video rate menu is not displayed. +

+
+

+ firewireVideoFormats.adl

+ firewireVideoFormatsFormat7.png
+ + diff --git a/documentation/Mar345Doc.html b/documentation/Mar345Doc.html index 5917044..0cde928 100755 --- a/documentation/Mar345Doc.html +++ b/documentation/Mar345Doc.html @@ -1,637 +1,637 @@ - - - areaDetector mar345 driver - - - -
-

- areaDetector mar345 driver

-

- August 17, 2009

-

- Mark Rivers

-

- University of Chicago

-
-

- Table of Contents

- -

- Introduction

-

- This is a driver for the mar345 detector from - Marresearch GmbH.

-

- The interface to the detector is via a TCP/IP socket interface to the mar345dtb - program that Marresearch provides. The mar345dtb program must be started before - the areaDetector software is started. -

-

- mar345dtb must be configured to accepts commands on a TCP/IP socket port. This is - done by editing the file /home/mar345/tables/config.xxx (where xxx is the serial - number of that detector) and editing the COMMAND line to the following format:

+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + + + areaDetector mar345 driver + + + +
+

+ areaDetector mar345 driver

+

+ August 17, 2009

+

+ Mark Rivers

+

+ University of Chicago

+
+

+ Table of Contents

+ +

+ Introduction

+

+ This is a driver for the mar345 detector from + Marresearch GmbH.

+

+ The interface to the detector is via a TCP/IP socket interface to the mar345dtb + program that Marresearch provides. The mar345dtb program must be started before + the areaDetector software is started. +

+

+ mar345dtb must be configured to accepts commands on a TCP/IP socket port. This is + done by editing the file /home/mar345/tables/config.xxx (where xxx is the serial + number of that detector) and editing the COMMAND line to the following format:

COMMAND PORT 5001
-    
-

- where 5001 is the TCP/IP port to use. Any high port number can be used, but it must - agree with the one specified in the areaDetector mar345Config command described - below.

-

- The mar345dtb program saves the data to disk as compressed binary files. The areaDetector - software reads these disk files in order to read the data, because mar345dtb does - not provide another mechanism to access the data. -

-

- This driver inherits from ADDriver. - It implements many of the parameters in NDStdDriverParam_t (see - asynNDArryDriver.h) and in ADStdDriverParam_t (see - ADArrayDriver.h). It also implements a number of parameters that are specific - to the mar345 detector. The mar345 - class documentation describes this class in detail.

-

- Implementation of standard driver parameters

-

- The following table describes how the mar345 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
- Enum name - EPICS record name - Description
- ADAcquire - $(P$(R)Acquire - Setting this to 1 starts an acquisition sequence. If ADNumImages is greater than - 1 then it acquires multiple frames. For each frame it does the following: -
    -
  1. Erases the detector if mar345EraseMode is "Before expose".
  2. -
  3. Opens the shutter if either the mar345 shutter or EPICS shutter controls are enabled.
  4. -
  5. Waits for the desired exposure time.
  6. -
  7. Closes the shutter if either the mar345 shutter or EPICS shutter controls are - enabled.
  8. -
  9. Scans the detector and saves the file.
  10. -
  11. Erases the detector if mar345EraseMode is "After scan".
  12. -
- If ADAcquire is set to 0 during exposure (step 3 above) then it proceeds immediately - to step 4, finishes collecting the current frame and stops the acquisition sequence - if ADNumImages is greater than 1. If mar345Abort is set to 0 then the acquisition - is terminated as soon as possible without saving the data. Note however that commands - to the mar345 server to erase, change mode, or scan cannot be aborted, so the driver - must wait for these commands to complete. -
- ADNumImages - $(P$(R)NumImages - Controls the number of images to acquire when ADImageMode is ADImageMultiple.
- ADAcquirePeriod - $(P$(R)AcquirePeriod - Controls the period between images when ADImageMode is ADImageMultiple or ADImageContinuous. - If this is greater than the acquisition time plus readout overhead then the driver - will wait until the period has elapsed before starting the next acquisition.
- NDFilePath - $(P$(R)FilePath - Controls the path for saving images. It must be a valid path for mar345dtb and - for the areaDetector driver, which is normally running in an EPICS IOC. If mar345dtb - and the EPICS IOC are not running on the same machine then soft links will typically - be used to make the paths look identical.
- NDFileFormat - $(P)$(R)FileFormat - mar345 only supports mar345 format binary files. -
- NDStatus - $(P)$(R)DetectorState_RBV - mar345 replaces the state strings with the following: Exposing, Scanning, Erasing, - Changing Mode, Aborting, Error, and Waiting. -
-

- It is useful to use NDPluginROI to define an ROI containing the entire mar345 detector. - The MaxValue_RBV PV in this ROI can be monitored to make sure that the 16-bit limit - of 65,535 is not being approached in any pixel. -

-

- mar345 specific parameters

-

- The mar345 driver implements the following parameters in addition to those in asynNDArrayDriver.h - and ADDriver.h. Note that to reduce the width of this table the enum names have - been split into 2 lines, but these are just a single name, for example mar345ScanSize. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Parameter Definitions in mar345.cpp and EPICS Record Definitions in mar345.template
- Enum name - asyn interface - Access - Description - drvUser string - EPICS record name - EPICS record type
- Readout parameters
- mar345
- ScanSize
- asynInt32 - r/w - The detector diameter to read out. Choices are 180mm, 240mm, 300mm, and 345mm. - MAR_SIZE - $(P)$(R)ScanSize
- $(P)$(R)ScanSize_RBV
- mbbo -
- mbbi -
- mar345
- ScanResolution
- asynInt32 - r/w - The pixel size to use when reading the detector out. Choices are 0.10 and 0.15mm. - MAR_RESOLUTION - $(P)$(R)ScanResolution
- $(P)$(R)ScanResolution_RBV
- mbbo -
- mbbi -
- mar345
- ChangeMode
- asynInt32 - r/w - Writing 1 to this parameter causes the ScanSize and ScanResolution values to be - sent to the server, changing the scan mode. This is not strictly necessary, because - the size and resolution is also encoded in the file extension used in the scan command. - However, changing the mode before doing a scan reduces the time for the scan, because - the detector is already configured for the correct mode. - MAR_CHANGE_MODE - $(P)$(R)ChangeMode
- $(P)$(R)ChangedMode_RBV
- busy -
- bi -
- Erase parameters
- mar345
- EraseMode
- asynInt32 - r/w - Controls whether an erase cycle should be automatically performed during acquisition. - Choices are None, Before expose, and After scan. - MAR_ERASE_MODE - $(P)$(R)EraseMode
- $(P)$(R)EraseMode_RBV
- mbbo -
- mbbi -
- mar345
- NumErase
- asynInt32 - r/w - The number of erase cycles to perform each time the detector is erased, either because - the mar345Erase parameter is set to 1, or because of an automatic erase as part - of an acquisition. - MAR_NUM_ERASE - $(P)$(R)NumErase
- $(P)$(R)NumErase_RBV
- longout -
- longin -
- mar345
- Erase
- asynInt32 - r/w - Write 1 to this parameter to initiate erasing the detector. The detector will be - erased multiple times if mar345NumErase is greater than 1. - MAR_ERASE - $(P)$(R)Erase
- $(P)$(R)Erase_RBV
- busy -
- bi -
- Abort parameters
- mar345
- Abort
- asynInt32 - r/w - Writing 1 to this parameter aborts the current operation as soon as possible and - returns the driver to the idle state. Note however that commands to the mar345 server - cannot be aborted, so the driver must wait for the current command to complete. - MAR_ABORT - $(P)$(R)Abort
- $(P)$(R)Abort_RBV
- bo -
- bi -
- Debugging
- N/A - N/A - N/A - asyn record to control debugging communication with mar345dtb program - N/A - $(P)$(R)marSserverAsyn - asyn
-

- Unsupported standard driver parameters

-

- The mar345 driver does not support the following standard driver parameters because - they are not supported in the mar345dtb program:

- -

- Configuration

-

- The mar345 driver is created with the mar345Config command, either from C/C++ or - from the EPICS IOC shell.

+ +

+ where 5001 is the TCP/IP port to use. Any high port number can be used, but it must + agree with the one specified in the areaDetector mar345Config command described + below.

+

+ The mar345dtb program saves the data to disk as compressed binary files. The areaDetector + software reads these disk files in order to read the data, because mar345dtb does + not provide another mechanism to access the data. +

+

+ This driver inherits from ADDriver. + It implements many of the parameters in NDStdDriverParam_t (see + asynNDArryDriver.h) and in ADStdDriverParam_t (see + ADArrayDriver.h). It also implements a number of parameters that are specific + to the mar345 detector. The mar345 + class documentation describes this class in detail.

+

+ Implementation of standard driver parameters

+

+ The following table describes how the mar345 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
+ Enum name + EPICS record name + Description
+ ADAcquire + $(P$(R)Acquire + Setting this to 1 starts an acquisition sequence. If ADNumImages is greater than + 1 then it acquires multiple frames. For each frame it does the following: +
    +
  1. Erases the detector if mar345EraseMode is "Before expose".
  2. +
  3. Opens the shutter if either the mar345 shutter or EPICS shutter controls are enabled.
  4. +
  5. Waits for the desired exposure time.
  6. +
  7. Closes the shutter if either the mar345 shutter or EPICS shutter controls are + enabled.
  8. +
  9. Scans the detector and saves the file.
  10. +
  11. Erases the detector if mar345EraseMode is "After scan".
  12. +
+ If ADAcquire is set to 0 during exposure (step 3 above) then it proceeds immediately + to step 4, finishes collecting the current frame and stops the acquisition sequence + if ADNumImages is greater than 1. If mar345Abort is set to 0 then the acquisition + is terminated as soon as possible without saving the data. Note however that commands + to the mar345 server to erase, change mode, or scan cannot be aborted, so the driver + must wait for these commands to complete. +
+ ADNumImages + $(P$(R)NumImages + Controls the number of images to acquire when ADImageMode is ADImageMultiple.
+ ADAcquirePeriod + $(P$(R)AcquirePeriod + Controls the period between images when ADImageMode is ADImageMultiple or ADImageContinuous. + If this is greater than the acquisition time plus readout overhead then the driver + will wait until the period has elapsed before starting the next acquisition.
+ NDFilePath + $(P$(R)FilePath + Controls the path for saving images. It must be a valid path for mar345dtb and + for the areaDetector driver, which is normally running in an EPICS IOC. If mar345dtb + and the EPICS IOC are not running on the same machine then soft links will typically + be used to make the paths look identical.
+ NDFileFormat + $(P)$(R)FileFormat + mar345 only supports mar345 format binary files. +
+ NDStatus + $(P)$(R)DetectorState_RBV + mar345 replaces the state strings with the following: Exposing, Scanning, Erasing, + Changing Mode, Aborting, Error, and Waiting. +
+

+ It is useful to use NDPluginROI to define an ROI containing the entire mar345 detector. + The MaxValue_RBV PV in this ROI can be monitored to make sure that the 16-bit limit + of 65,535 is not being approached in any pixel. +

+

+ mar345 specific parameters

+

+ The mar345 driver implements the following parameters in addition to those in asynNDArrayDriver.h + and ADDriver.h. Note that to reduce the width of this table the enum names have + been split into 2 lines, but these are just a single name, for example mar345ScanSize. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Parameter Definitions in mar345.cpp and EPICS Record Definitions in mar345.template
+ Enum name + asyn interface + Access + Description + drvUser string + EPICS record name + EPICS record type
+ Readout parameters
+ mar345
+ ScanSize
+ asynInt32 + r/w + The detector diameter to read out. Choices are 180mm, 240mm, 300mm, and 345mm. + MAR_SIZE + $(P)$(R)ScanSize
+ $(P)$(R)ScanSize_RBV
+ mbbo +
+ mbbi +
+ mar345
+ ScanResolution
+ asynInt32 + r/w + The pixel size to use when reading the detector out. Choices are 0.10 and 0.15mm. + MAR_RESOLUTION + $(P)$(R)ScanResolution
+ $(P)$(R)ScanResolution_RBV
+ mbbo +
+ mbbi +
+ mar345
+ ChangeMode
+ asynInt32 + r/w + Writing 1 to this parameter causes the ScanSize and ScanResolution values to be + sent to the server, changing the scan mode. This is not strictly necessary, because + the size and resolution is also encoded in the file extension used in the scan command. + However, changing the mode before doing a scan reduces the time for the scan, because + the detector is already configured for the correct mode. + MAR_CHANGE_MODE + $(P)$(R)ChangeMode
+ $(P)$(R)ChangedMode_RBV
+ busy +
+ bi +
+ Erase parameters
+ mar345
+ EraseMode
+ asynInt32 + r/w + Controls whether an erase cycle should be automatically performed during acquisition. + Choices are None, Before expose, and After scan. + MAR_ERASE_MODE + $(P)$(R)EraseMode
+ $(P)$(R)EraseMode_RBV
+ mbbo +
+ mbbi +
+ mar345
+ NumErase
+ asynInt32 + r/w + The number of erase cycles to perform each time the detector is erased, either because + the mar345Erase parameter is set to 1, or because of an automatic erase as part + of an acquisition. + MAR_NUM_ERASE + $(P)$(R)NumErase
+ $(P)$(R)NumErase_RBV
+ longout +
+ longin +
+ mar345
+ Erase
+ asynInt32 + r/w + Write 1 to this parameter to initiate erasing the detector. The detector will be + erased multiple times if mar345NumErase is greater than 1. + MAR_ERASE + $(P)$(R)Erase
+ $(P)$(R)Erase_RBV
+ busy +
+ bi +
+ Abort parameters
+ mar345
+ Abort
+ asynInt32 + r/w + Writing 1 to this parameter aborts the current operation as soon as possible and + returns the driver to the idle state. Note however that commands to the mar345 server + cannot be aborted, so the driver must wait for the current command to complete. + MAR_ABORT + $(P)$(R)Abort
+ $(P)$(R)Abort_RBV
+ bo +
+ bi +
+ Debugging
+ N/A + N/A + N/A + asyn record to control debugging communication with mar345dtb program + N/A + $(P)$(R)marSserverAsyn + asyn
+

+ Unsupported standard driver parameters

+

+ The mar345 driver does not support the following standard driver parameters because + they are not supported in the mar345dtb program:

+ +

+ Configuration

+

+ The mar345 driver is created with the mar345Config command, either from C/C++ or + from the EPICS IOC shell.

int mar345Config(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 mar345Config function in the - mar345.cpp documentation and in the documentation for the constructor for - the mar345 class. -

-

- There an example IOC boot directory and startup script (iocBoot/iocMAR345/st.cmd) - provided with areaDetector. -

-

- MEDM screens

-

- The following show the MEDM screens that are used to control the mar345 detector. - Note that the general purpose screen ADBase.adl can be used, but it exposes many - controls that are not applicable to the mar345, and lacks some fields that are important - for the mar345.

-

- mar345.adl is the main screen used to control the mar345 driver. -

-
-

- mar345.adl

- mar345.png
-

- Performance measurements

-

- The mar345 is definitely not a fast detector! The following measurements show the - time to perform various erase and scan operations. Note that because the mar345 - file format is compressed the file sizes are typically much less than the image - sizes listed.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Scan diameter - Pixel size - Image dimensions - Image size (MB) - Time to scan - Time to erase
- 180 mm - - 0.15 mm - - 1200x1200 - - 2.7 - - 38.6 - - 37.8 -
- 240 mm - - 0.15 mm - - 1600x1600 - - 4.9 - - 50.4 - - 50.8 -
- 300 mm - - 0.15 mm - - 2000x2000 - - 7.6 - - 74.7 - - 66.9 -
- 345 mm - - 0.15 mm - - 2300x2300 - - 10.1 - - 88.6 - - 82.7 -
- 180 mm - - 0.10 mm - - 1800x1800 - - 6.2 - - 46.4 - - 45.9 -
- 240 mm - - 0.10 mm - - 2400x2400 - - 11.0 - - 71.9 - - 63.8 -
- 300 mm - - 0.10 mm - - 3000x3000 - - 17.2 - - 89.1 - - 87.0 -
- 345 mm - - 0.10 mm - - 3450x3450 - - 22.7 - - 107.5 - - 107.1 -
-

- Restrictions

-

- The following are some current restrictions of the mar345 driver:

- - - + +

+ For details on the meaning of the parameters to this function refer to the detailed + documentation on the mar345Config function in the + mar345.cpp documentation and in the documentation for the constructor for + the mar345 class. +

+

+ There an example IOC boot directory and startup script (iocBoot/iocMAR345/st.cmd) + provided with areaDetector. +

+

+ MEDM screens

+

+ The following show the MEDM screens that are used to control the mar345 detector. + Note that the general purpose screen ADBase.adl can be used, but it exposes many + controls that are not applicable to the mar345, and lacks some fields that are important + for the mar345.

+

+ mar345.adl is the main screen used to control the mar345 driver. +

+
+

+ mar345.adl

+ mar345.png
+

+ Performance measurements

+

+ The mar345 is definitely not a fast detector! The following measurements show the + time to perform various erase and scan operations. Note that because the mar345 + file format is compressed the file sizes are typically much less than the image + sizes listed.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Scan diameter + Pixel size + Image dimensions + Image size (MB) + Time to scan + Time to erase
+ 180 mm + + 0.15 mm + + 1200x1200 + + 2.7 + + 38.6 + + 37.8 +
+ 240 mm + + 0.15 mm + + 1600x1600 + + 4.9 + + 50.4 + + 50.8 +
+ 300 mm + + 0.15 mm + + 2000x2000 + + 7.6 + + 74.7 + + 66.9 +
+ 345 mm + + 0.15 mm + + 2300x2300 + + 10.1 + + 88.6 + + 82.7 +
+ 180 mm + + 0.10 mm + + 1800x1800 + + 6.2 + + 46.4 + + 45.9 +
+ 240 mm + + 0.10 mm + + 2400x2400 + + 11.0 + + 71.9 + + 63.8 +
+ 300 mm + + 0.10 mm + + 3000x3000 + + 17.2 + + 89.1 + + 87.0 +
+ 345 mm + + 0.10 mm + + 3450x3450 + + 22.7 + + 107.5 + + 107.1 +
+

+ Restrictions

+

+ The following are some current restrictions of the mar345 driver:

+ + + diff --git a/documentation/MarCCDDoc.html b/documentation/MarCCDDoc.html index 80688e6..3b432ce 100755 --- a/documentation/MarCCDDoc.html +++ b/documentation/MarCCDDoc.html @@ -1,879 +1,879 @@ - - - areaDetector MarCCD driver - - - -
-

- areaDetector MarCCD driver

-

- August 17, 2009

-

- Mark Rivers

-

- University of Chicago

-
-

- Table of Contents

- -

- Introduction

-

- This is a driver for the MarCCD detectors from Rayonix/MarUSA. -

-

- The interface to the detector is via a TCP/IP socket interface to the marccd_server_socket - server that MarUSA provides. The marccd_server_socket program must be started before - the areaDetector software is started, by running the marccd program and executing - Acquire/Remote Control/Start. -

-

- marccd must be using Version 1 of the remote protocol. This is normally done done - by editing the file marccd/configuration/marccd.conf and replacing the line

+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + + + areaDetector MarCCD driver + + + +
+

+ areaDetector MarCCD driver

+

+ August 17, 2009

+

+ Mark Rivers

+

+ University of Chicago

+
+

+ Table of Contents

+ +

+ Introduction

+

+ This is a driver for the MarCCD detectors from Rayonix/MarUSA. +

+

+ The interface to the detector is via a TCP/IP socket interface to the marccd_server_socket + server that MarUSA provides. The marccd_server_socket program must be started before + the areaDetector software is started, by running the marccd program and executing + Acquire/Remote Control/Start. +

+

+ marccd must be using Version 1 of the remote protocol. This is normally done done + by editing the file marccd/configuration/marccd.conf and replacing the line

include marccd_server_v0.conf
-    
-

- with

+ +

+ with

include marccd_server_v1.conf
-    
-

- The file marccd_server_v1.conf should contain the lines:

+ +

+ The file marccd_server_v1.conf should contain the lines:

remote_mode_server_command /home/marccd/contrib/marccd_server/marccd_server_socket
 remote_mode_server_arguments 2222
-    
-

- The first line points to the location of the marccd_server_socket program that is - used to implement remote control. In order to work with the areaDetector driver - this must be a version of this program created after November 11, 2008 when support - for the get_frameshift command was added. A recent version of this - program can be downloaded from the - Rayonix FTP site. -

-

- The marccd program saves the data to disk as TIFF files. The areaDetector software - reads these disk files in order to read the data, because marccd does not provide - another mechanism to access the data. -

-

- This driver inherits from ADDriver. - It implements many of the parameters in NDStdDriverParam_t (see - asynNDArryDriver.h) and in ADStdDriverParam_t (see - ADArrayDriver.h). It also implements a number of parameters that are specific - to the MarCCD detectors. The - marCCD class documentation describes this class in detail.

-

- Implementation of standard driver parameters

-

- The following table describes how the MarCCD 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
- Enum name - EPICS record name - Description
- ADFrameType - $(P$(R)FrameType - The driver redefines the choices for the ADFrameType parameter (record $(P)$(R)FrameType) - from ADDriver.h. The choices for the MarCCD are: -
    -
  • Normal (corrected data frame without double correlation)
  • -
  • Background (background frame with 0 exposure time, done with double correlation - to remove zingers)
  • -
  • Raw (data frame without correction for background or spatial distortion)
  • -
  • DblCorrelation (two images each collected for half the nominal acquisition time, - zingers removed by double correlation)
  • -
-
- ADNumImages - $(P$(R)NumImages - Controls the number of images to acquire when ADImageMode is ADImageMultiple.
- ADAcquirePeriod - $(P$(R)AcquirePeriod - Controls the period between images when ADImageMode is ADImageMultiple or ADImageContinuous. - If this is greater than the acquisition time plus readout overhead then the driver - will wait until the period has elapsed before starting the next acquisition.
- ADReadStatus - $(P)$(R)ReadStatus - Writing 1 to this parameter causes the status to be read from the marccd server. - By processing or periodically scanning this record the status information can be - refreshed. This is normally not necessary, but if ADArrayCallbacks is 0 and marCCDOverlap - is 1 then the status will not indicate that the system is idle when acquisition - is complete, because the driver polling stops before the file is written. This record - can be used to eliminate the confusion that might cause.
- NDFilePath - $(P$(R)FilePath - Controls the path for saving images. It must be a valid path for marccd and - for the areaDetector driver, which is normally running in an EPICS IOC. If marccd - and the EPICS IOC are not running on the same machine then soft links will typically - be used to make the paths look identical.
- NDFileFormat - $(P)$(R)FileFormat - marccd only supports TIFF files. -
-

- It is useful to use NDPluginROI to define an ROI containing the entire marccd detector. - The MaxValue_RBV PV in this ROI can be monitored to make sure that the 16-bit limit - of 65,535 is not being approached in any pixel. -

-

- MarCCD specific parameters

-

- The MarCCD driver implements the following parameters in addition to those in asynNDArrayDriver.h - and ADDriver.h. Note that to reduce the width of this table the enum names have - been split into 2 lines, but these are just a single name, for example marCCDState. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Parameter Definitions in marccd.cpp and EPICS Record Definitions in marccd.template
- Enum name - asyn interface - Access - Description - drvUser string - EPICS record name - EPICS record type
- Status parameters
- marCCD
- State
- asynInt32 - r/o - State word returned by marccd server. The low-order 4-bits of this word are the - state of the marccd server, and will be Idle (0x0), Error (0x7), or Busy (0x8). - The next 20 bits encode the state of the 5 server tasks (Acquire, Readout, Correct, - Save, Dezinger) with 4-bits per task. Each task can be in the state Idle (0x0), - Queued (0x1), Executing (0x2), Error (0x4), or Reserved (0x8). - MAR_STATE - $(P)$(R)MarState_RBV - longin
- marCCD
- Status
- asynInt32 - r/o - Status of the marccd server task (Idle, Error, or Busy) - MAR_STATUS - $(P)$(R)MarStatus_RBV - mbbi
- marCCDTask
- AcquireStatus
- asynInt32 - r/o - Status of the marccd server acquire task (Idle, Queued, Executing, Error, or Reserved) - MAR_ACQUIRE_STATUS - $(P)$(R)MarAcquireStatus_RBV - mbbi
- marCCDTask
- ReadoutStatus
- asynInt32 - r/o - Status of the marccd server readout task (Idle, Queued, Executing, Error, or Reserved) - MAR_READOUT_STATUS - $(P)$(R)MarReadoutStatus_RBV - mbbi
- marCCDTask
- CorrectStatus
- asynInt32 - r/o - Status of the marccd server correct task (Idle, Queued, Executing, Error, or Reserved) - MAR_CORRECT_STATUS - $(P)$(R)MarCorrectStatus_RBV - mbbi
- marCCDTask
- WritingStatus
- asynInt32 - r/o - Status of the marccd server file writing task (Idle, Queued, Executing, Error, or - Reserved) - MAR_WRITING_STATUS - $(P)$(R)MarWritingStatus_RBV - mbbi
- marCCDTask
- DezingerStatus
- asynInt32 - r/o - Status of the marccd server dezinger task (Idle, Queued, Executing, Error, or Reserved) - MAR_DEZINGER_STATUS - $(P)$(R)MarDezingerStatus_RBV - mbbi
- Optimization parameters
- marCCD
- Overlap
- asynInt32 - r/w - The marccd server has 5 tasks (Acquire, Readout, Correct, Write, Dezinger) that - can overlap their operation. The areaDetector driver can exploit this to improve - performance in some circumstances. If this parameter is set to 1 (Overlap) then - the ADAcquire parameter will go to 0 (Done) when the Readout task is done executing, - but before the Correct and Write tasks have finished correcting and saving the file - to disk. This improves performance because the next image can begin as soon as ADAcquire - goes to done, and hence before the previous image is written to disk. Note, however - that this parameter must be set to 0 (Sequential) if callbacks are being used to - compute ROIs that are being used in data collection, e.g. in a scan. If this is - not done then the ROI information will be grabbed before it is updated and incorrect - scan data will result. - MAR_OVERLAP - $(P)$(R)OverlapMode -
- $(P)$(R)OverlapMode_RBV
- bo -
- bi
- Frameshift parameters
- marCCD
- Frameshift
- asynInt32 - r/w - marccd can be used for time-resolved studies by collecting multiple data sets before - reading out the detector. This is done by placing a mask in front of the detector - that restricts the x-rays to horizontal stripe. An exposure is made, and then an - external signal causes the detector to shift the image by the number of lines given - by this parameter. A number of images separated by times of a few milliseconds can - be collected, and then the detector is read out. Set this parameter to 0 to disable - frameshift mode. - MAR_FRAME_SHIFT - $(P)$(R)FrameShift -
- $(P)$(R)FrameShift_RBV
- longout -
- longin
- Timeout parameters
- marCCD
- TiffTimeout
- asynFloat64 - r/w - Timeout in seconds when reading a TIFF file. It should be set to several seconds, - because there it can take some time for the marccd server to write the file. - MAR_TIFF_TIMEOUT - $(P)$(R)ReadTiffTimeout - ao
- Ancillary parameters. These parameters are written to the header of the marccd - TIFF file.
- marCCD
- DetectorDistance
- asynFloat64 - r/w - Distance from the sample to the detector (mm) - MAR_DETECTOR_DISTANCE - $(P)$(R)DetectorDistance - ao
- marCCD
- BeamX
- asynFloat64 - r/w - X position of the direct beam on the detector (mm) - MAR_BEAM_X - $(P)$(R)BeamX - ao
- marCCD
- BeamY
- asynFloat64 - r/w - Y position of the direct beam on the detector (mm) - MAR_BEAM_Y - $(P)$(R)BeamY - ao
- marCCD
- StartPhi
- asynFloat64 - r/w - Starting value of phi rotation (deg) - MAR_START_PHI - $(P)$(R)StartPhi - ao
- marCCD
- RotationAxis
- asynOctet - r/w - Rotation axis being used (phi, omega, etc.) - MAR_ROTATION_AXIS - $(P)$(R)RotationAxis - stringout
- marCCD
- RotationRange
- asynFloat64 - r/w - Rotation range of the rotation axis. - MAR_ROTATION_RANGE - $(P)$(R)RotationRange - ao
- marCCD
- TwoTheta
- asynOctet - r/w - Detector two-theta angle (deg); ignored if empty string; requires theta axis definition - with display name "TwoTheta" in marccd configuration file (e.g. "theta_display_name - TwoTheta") - MAR_TWO_THETA - $(P)$(R)TwoTheta - stringout
- marCCD
- Wavelength
- asynFloat64 - r/w - Wavelength in Angstroms. - MAR_WAVELENGTH - $(P)$(R)Wavelength - ao
- marCCD
- FileComments
- asynOctet - r/w - Comments for this file. - MAR_FILE_COMMENTS - $(P)$(R)FileComments - waveform
- marCCD
- DatasetComments
- asynOctet - r/w - Comments for this dataset. - MAR_DATASET_COMMENTS - $(P)$(R)DatasetComments - waveform
- Debugging
- N/A - N/A - N/A - asyn record to control debugging communication with marccd_server_socket program - N/A - $(P)$(R)marSserverAsyn - asyn
-

- Unsupported standard driver parameters

-

- The MarCCD driver does not support the following standard driver parameters because - they are not supported in the marccd program:

- -

- Configuration

-

- The marCCD driver is created with the marCCDConfig command, either from C/C++ or - from the EPICS IOC shell.

+ +

+ The first line points to the location of the marccd_server_socket program that is + used to implement remote control. In order to work with the areaDetector driver + this must be a version of this program created after November 11, 2008 when support + for the get_frameshift command was added. A recent version of this + program can be downloaded from the + Rayonix FTP site. +

+

+ The marccd program saves the data to disk as TIFF files. The areaDetector software + reads these disk files in order to read the data, because marccd does not provide + another mechanism to access the data. +

+

+ This driver inherits from ADDriver. + It implements many of the parameters in NDStdDriverParam_t (see + asynNDArryDriver.h) and in ADStdDriverParam_t (see + ADArrayDriver.h). It also implements a number of parameters that are specific + to the MarCCD detectors. The + marCCD class documentation describes this class in detail.

+

+ Implementation of standard driver parameters

+

+ The following table describes how the MarCCD 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
+ Enum name + EPICS record name + Description
+ ADFrameType + $(P$(R)FrameType + The driver redefines the choices for the ADFrameType parameter (record $(P)$(R)FrameType) + from ADDriver.h. The choices for the MarCCD are: +
    +
  • Normal (corrected data frame without double correlation)
  • +
  • Background (background frame with 0 exposure time, done with double correlation + to remove zingers)
  • +
  • Raw (data frame without correction for background or spatial distortion)
  • +
  • DblCorrelation (two images each collected for half the nominal acquisition time, + zingers removed by double correlation)
  • +
+
+ ADNumImages + $(P$(R)NumImages + Controls the number of images to acquire when ADImageMode is ADImageMultiple.
+ ADAcquirePeriod + $(P$(R)AcquirePeriod + Controls the period between images when ADImageMode is ADImageMultiple or ADImageContinuous. + If this is greater than the acquisition time plus readout overhead then the driver + will wait until the period has elapsed before starting the next acquisition.
+ ADReadStatus + $(P)$(R)ReadStatus + Writing 1 to this parameter causes the status to be read from the marccd server. + By processing or periodically scanning this record the status information can be + refreshed. This is normally not necessary, but if ADArrayCallbacks is 0 and marCCDOverlap + is 1 then the status will not indicate that the system is idle when acquisition + is complete, because the driver polling stops before the file is written. This record + can be used to eliminate the confusion that might cause.
+ NDFilePath + $(P$(R)FilePath + Controls the path for saving images. It must be a valid path for marccd and + for the areaDetector driver, which is normally running in an EPICS IOC. If marccd + and the EPICS IOC are not running on the same machine then soft links will typically + be used to make the paths look identical.
+ NDFileFormat + $(P)$(R)FileFormat + marccd only supports TIFF files. +
+

+ It is useful to use NDPluginROI to define an ROI containing the entire marccd detector. + The MaxValue_RBV PV in this ROI can be monitored to make sure that the 16-bit limit + of 65,535 is not being approached in any pixel. +

+

+ MarCCD specific parameters

+

+ The MarCCD driver implements the following parameters in addition to those in asynNDArrayDriver.h + and ADDriver.h. Note that to reduce the width of this table the enum names have + been split into 2 lines, but these are just a single name, for example marCCDState. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Parameter Definitions in marccd.cpp and EPICS Record Definitions in marccd.template
+ Enum name + asyn interface + Access + Description + drvUser string + EPICS record name + EPICS record type
+ Status parameters
+ marCCD
+ State
+ asynInt32 + r/o + State word returned by marccd server. The low-order 4-bits of this word are the + state of the marccd server, and will be Idle (0x0), Error (0x7), or Busy (0x8). + The next 20 bits encode the state of the 5 server tasks (Acquire, Readout, Correct, + Save, Dezinger) with 4-bits per task. Each task can be in the state Idle (0x0), + Queued (0x1), Executing (0x2), Error (0x4), or Reserved (0x8). + MAR_STATE + $(P)$(R)MarState_RBV + longin
+ marCCD
+ Status
+ asynInt32 + r/o + Status of the marccd server task (Idle, Error, or Busy) + MAR_STATUS + $(P)$(R)MarStatus_RBV + mbbi
+ marCCDTask
+ AcquireStatus
+ asynInt32 + r/o + Status of the marccd server acquire task (Idle, Queued, Executing, Error, or Reserved) + MAR_ACQUIRE_STATUS + $(P)$(R)MarAcquireStatus_RBV + mbbi
+ marCCDTask
+ ReadoutStatus
+ asynInt32 + r/o + Status of the marccd server readout task (Idle, Queued, Executing, Error, or Reserved) + MAR_READOUT_STATUS + $(P)$(R)MarReadoutStatus_RBV + mbbi
+ marCCDTask
+ CorrectStatus
+ asynInt32 + r/o + Status of the marccd server correct task (Idle, Queued, Executing, Error, or Reserved) + MAR_CORRECT_STATUS + $(P)$(R)MarCorrectStatus_RBV + mbbi
+ marCCDTask
+ WritingStatus
+ asynInt32 + r/o + Status of the marccd server file writing task (Idle, Queued, Executing, Error, or + Reserved) + MAR_WRITING_STATUS + $(P)$(R)MarWritingStatus_RBV + mbbi
+ marCCDTask
+ DezingerStatus
+ asynInt32 + r/o + Status of the marccd server dezinger task (Idle, Queued, Executing, Error, or Reserved) + MAR_DEZINGER_STATUS + $(P)$(R)MarDezingerStatus_RBV + mbbi
+ Optimization parameters
+ marCCD
+ Overlap
+ asynInt32 + r/w + The marccd server has 5 tasks (Acquire, Readout, Correct, Write, Dezinger) that + can overlap their operation. The areaDetector driver can exploit this to improve + performance in some circumstances. If this parameter is set to 1 (Overlap) then + the ADAcquire parameter will go to 0 (Done) when the Readout task is done executing, + but before the Correct and Write tasks have finished correcting and saving the file + to disk. This improves performance because the next image can begin as soon as ADAcquire + goes to done, and hence before the previous image is written to disk. Note, however + that this parameter must be set to 0 (Sequential) if callbacks are being used to + compute ROIs that are being used in data collection, e.g. in a scan. If this is + not done then the ROI information will be grabbed before it is updated and incorrect + scan data will result. + MAR_OVERLAP + $(P)$(R)OverlapMode +
+ $(P)$(R)OverlapMode_RBV
+ bo +
+ bi
+ Frameshift parameters
+ marCCD
+ Frameshift
+ asynInt32 + r/w + marccd can be used for time-resolved studies by collecting multiple data sets before + reading out the detector. This is done by placing a mask in front of the detector + that restricts the x-rays to horizontal stripe. An exposure is made, and then an + external signal causes the detector to shift the image by the number of lines given + by this parameter. A number of images separated by times of a few milliseconds can + be collected, and then the detector is read out. Set this parameter to 0 to disable + frameshift mode. + MAR_FRAME_SHIFT + $(P)$(R)FrameShift +
+ $(P)$(R)FrameShift_RBV
+ longout +
+ longin
+ Timeout parameters
+ marCCD
+ TiffTimeout
+ asynFloat64 + r/w + Timeout in seconds when reading a TIFF file. It should be set to several seconds, + because there it can take some time for the marccd server to write the file. + MAR_TIFF_TIMEOUT + $(P)$(R)ReadTiffTimeout + ao
+ Ancillary parameters. These parameters are written to the header of the marccd + TIFF file.
+ marCCD
+ DetectorDistance
+ asynFloat64 + r/w + Distance from the sample to the detector (mm) + MAR_DETECTOR_DISTANCE + $(P)$(R)DetectorDistance + ao
+ marCCD
+ BeamX
+ asynFloat64 + r/w + X position of the direct beam on the detector (mm) + MAR_BEAM_X + $(P)$(R)BeamX + ao
+ marCCD
+ BeamY
+ asynFloat64 + r/w + Y position of the direct beam on the detector (mm) + MAR_BEAM_Y + $(P)$(R)BeamY + ao
+ marCCD
+ StartPhi
+ asynFloat64 + r/w + Starting value of phi rotation (deg) + MAR_START_PHI + $(P)$(R)StartPhi + ao
+ marCCD
+ RotationAxis
+ asynOctet + r/w + Rotation axis being used (phi, omega, etc.) + MAR_ROTATION_AXIS + $(P)$(R)RotationAxis + stringout
+ marCCD
+ RotationRange
+ asynFloat64 + r/w + Rotation range of the rotation axis. + MAR_ROTATION_RANGE + $(P)$(R)RotationRange + ao
+ marCCD
+ TwoTheta
+ asynOctet + r/w + Detector two-theta angle (deg); ignored if empty string; requires theta axis definition + with display name "TwoTheta" in marccd configuration file (e.g. "theta_display_name + TwoTheta") + MAR_TWO_THETA + $(P)$(R)TwoTheta + stringout
+ marCCD
+ Wavelength
+ asynFloat64 + r/w + Wavelength in Angstroms. + MAR_WAVELENGTH + $(P)$(R)Wavelength + ao
+ marCCD
+ FileComments
+ asynOctet + r/w + Comments for this file. + MAR_FILE_COMMENTS + $(P)$(R)FileComments + waveform
+ marCCD
+ DatasetComments
+ asynOctet + r/w + Comments for this dataset. + MAR_DATASET_COMMENTS + $(P)$(R)DatasetComments + waveform
+ Debugging
+ N/A + N/A + N/A + asyn record to control debugging communication with marccd_server_socket program + N/A + $(P)$(R)marSserverAsyn + asyn
+

+ Unsupported standard driver parameters

+

+ The MarCCD driver does not support the following standard driver parameters because + they are not supported in the marccd program:

+ +

+ Configuration

+

+ The marCCD driver is created with the marCCDConfig command, either from C/C++ or + from the EPICS IOC shell.

int marCCDConfig(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 mar345Config function in the - marCCD.cpp documentation and in the documentation for the constructor for - the marCCD class. -

-

- There an example IOC boot directory and startup script (iocBoot/iocMARCCD/st.cmd) - provided with areaDetector. -

-

- MEDM screens

-

- The following show the MEDM screens that are used to control the MarCCD detector. - Note that the general purpose screen ADBase.adl can be used, but it exposes many - controls that are not applicable to the MarCCD, and lacks some fields that are important - for the MarCCD.

-

- marccd.adl is the main screen used to control the MarCCD driver. -

-
-

- marccd.adl

- marCCD.png
-

- marccdAncillary.adl is the screen used to input ancillary information - that is written to the MarCCD TIFF files. -

-
-

- marccdAncillary.adl

- MarCCDAncillary.png
-

- asynRecord.adl is used to control the debugging information printed - by the asyn TCP/IP driver (asynTraceIODriver) and the EPICS device support (asynTraceIODevice).

-
-

- asynRecord.adl

- MarCCDAsynRecord.png
-

- asynOctet.adl can be used to send any command to the marccd remote - server and display the response. It can be loaded from the More menu in asynRecord.adl - above.

-
-

- asynOctet.adl

- MarCCDAsynOctet.png
-

- Performance measurements

-

- The following measurements were done to demonstrate the performance that can be - obtained with the areaDetector MarCCD driver. These measurements were made with - a MAR-165 CCD. The EPICS IOC was running on the same Linux machine as the marccd - program. The acquisition time was 1 second.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Binning - Image size - marCCDOverlap - Time for 10 images - Overhead per image - Time per task
- 2x2 - - 2048x2048 - - Sequential - - 50.0 - - 4.00 - - Readout: 3.02 -
- Correct: 0.56 -
- Save: 0.20 -
- 2x2 - - 2048x2048 - - Overlap - - 46.2 - - 3.62 - - Same -
- 4x4 - - 1024x1024 - - Sequential - - 29.0 - - 1.90 - - Readout: 1.30 -
- Correct: 0.28 -
- Save: 0.06 -
- 4x4 - - 1024x1024 - - Overlap - - 28.7 - - 1.87 - - Same -
- 8x8 - - 512x512 - - Sequential - - 24.0 - - 1.40 - - Readout: 0.78 -
- Correct: 0.29 -
- Save: 0.06 -
- 8x8 - - 512x512 - - Overlap - - 23.6 - - 1.36 - - Same -
-

- Restrictions

-

- The following are some current restrictions of the MarCCD driver:

- - - + +

+ For details on the meaning of the parameters to this function refer to the detailed + documentation on the mar345Config function in the + marCCD.cpp documentation and in the documentation for the constructor for + the marCCD class. +

+

+ There an example IOC boot directory and startup script (iocBoot/iocMARCCD/st.cmd) + provided with areaDetector. +

+

+ MEDM screens

+

+ The following show the MEDM screens that are used to control the MarCCD detector. + Note that the general purpose screen ADBase.adl can be used, but it exposes many + controls that are not applicable to the MarCCD, and lacks some fields that are important + for the MarCCD.

+

+ marccd.adl is the main screen used to control the MarCCD driver. +

+
+

+ marccd.adl

+ marCCD.png
+

+ marccdAncillary.adl is the screen used to input ancillary information + that is written to the MarCCD TIFF files. +

+
+

+ marccdAncillary.adl

+ MarCCDAncillary.png
+

+ asynRecord.adl is used to control the debugging information printed + by the asyn TCP/IP driver (asynTraceIODriver) and the EPICS device support (asynTraceIODevice).

+
+

+ asynRecord.adl

+ MarCCDAsynRecord.png
+

+ asynOctet.adl can be used to send any command to the marccd remote + server and display the response. It can be loaded from the More menu in asynRecord.adl + above.

+
+

+ asynOctet.adl

+ MarCCDAsynOctet.png
+

+ Performance measurements

+

+ The following measurements were done to demonstrate the performance that can be + obtained with the areaDetector MarCCD driver. These measurements were made with + a MAR-165 CCD. The EPICS IOC was running on the same Linux machine as the marccd + program. The acquisition time was 1 second.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Binning + Image size + marCCDOverlap + Time for 10 images + Overhead per image + Time per task
+ 2x2 + + 2048x2048 + + Sequential + + 50.0 + + 4.00 + + Readout: 3.02 +
+ Correct: 0.56 +
+ Save: 0.20 +
+ 2x2 + + 2048x2048 + + Overlap + + 46.2 + + 3.62 + + Same +
+ 4x4 + + 1024x1024 + + Sequential + + 29.0 + + 1.90 + + Readout: 1.30 +
+ Correct: 0.28 +
+ Save: 0.06 +
+ 4x4 + + 1024x1024 + + Overlap + + 28.7 + + 1.87 + + Same +
+ 8x8 + + 512x512 + + Sequential + + 24.0 + + 1.40 + + Readout: 0.78 +
+ Correct: 0.29 +
+ Save: 0.06 +
+ 8x8 + + 512x512 + + Overlap + + 23.6 + + 1.36 + + Same +
+

+ Restrictions

+

+ The following are some current restrictions of the MarCCD driver:

+ + +