From fe8e0336193d9b0249dead66438dd8e7302466e9 Mon Sep 17 00:00:00 2001
From: rivers
- 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. It inherits from ADDriver and implements many of the parameters in
- asynNDArrayDriver.h and ADDriver.h. It also implements a number of parameters that
- are specific to the Firewire cameras.
- 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. 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.
- 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.
- 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.
- 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.
- 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
- The firewireWinDCAM driver is created with the WinFDC_Config command, either from
- C/C++ or from the EPICS IOC shell.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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
+ The firewireWinDCAM driver is created with the WinFDC_Config command, either from
+ C/C++ or from the EPICS IOC shell.
- 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.
-
- 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.
-
-
-
+ 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.
+
+ 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.
+
+
+
- This is a driver for the mar345 detector from
- Marresearch GmbH. It implements many of the parameters in asynNDArrayDriver.h
- and ADDriver.h. It also implements a number of parameters that are specific to the
- mar345 detector.
- 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:
+ 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:
- 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. The
- mar345 class documentation describes this class in detail.
- The following table describes how the mar345 driver implements some of the standard
- driver parameters.
-
- 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.
-
- 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
- The mar345 driver does not support the following standard driver parameters because
- they are not supported in the mar345dtb program:
- 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.
+ The following table describes how the mar345 driver implements some of the standard
+ driver parameters.
+
+ 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.
+
+ 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
+ The mar345 driver does not support the following standard driver parameters because
+ they are not supported in the mar345dtb program:
+ The mar345 driver is created with the mar345Config command, either from C/C++ or
+ from the EPICS IOC shell.
- 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.
-
- 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.
-
- 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.
- 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.
+
+ 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.
+
+ 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.
+ The following are some current restrictions of the mar345 driver:
- This is a driver for the MarCCD detectors from Rayonix/MarUSA.
- It implements many of the parameters in asynNDArrayDriver.h and ADDriver.h. It also
- implements a number of parameters that are specific to the MarCCD detectors.
- 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
+ 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
- with
+ with
- The file marccd_server_v1.conf should contain the lines:
+ The file marccd_server_v1.conf should contain the lines:
- 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
- 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. The
- marCCD class documentation describes this class in detail.
- The following table describes how the MarCCD driver implements some of the standard
- driver parameters.
-
- 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.
-
- 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
- The MarCCD driver does not support the following standard driver parameters because
- they are not supported in the marccd program:
- 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
+ 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.
+ The following table describes how the MarCCD driver implements some of the standard
+ driver parameters.
+
+ 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.
+
+ 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
+ The MarCCD driver does not support the following standard driver parameters because
+ they are not supported in the marccd program:
+ The marCCD driver is created with the marCCDConfig command, either from C/C++ or
+ from the EPICS IOC shell.
- 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.
-
- 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.
-
-
-
-
- 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.
- 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.
+
+ 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.
+
+
+
+
+ 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.
+ The following are some current restrictions of the MarCCD driver:
- This plugin is a tool for converting the color mode of NDArray data.
-
- Firewire IIDC (CDAM) Windows driver
-
- August 17, 2009
-
- Mark Rivers
-
- University of Chicago
-
- Table of Contents
-
-
-
- Introduction
-
- Video formats, modes, and frame rates
-
-
-
-
-
-
- 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
-
-
-
-
-
-
- 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
-
-
-
-
-
-
- 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
- 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
-
+ Firewire IIDC (DCAM) Windows driver
+
+ August 17, 2009
+
+ Mark Rivers
+
+ University of Chicago
+
+ Table of Contents
+
+
+
+ Introduction
+
+ Video formats, modes, and frame rates
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+ 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
+ WinFDC_Config(const char *portName, const char* camid,
int maxBuffers, size_t maxMemory,
int priority, int stackSize)
-
-
- MEDM screens
- firewireFeatures.adl is the screen used to control the features of
- Firewire cameras.
-
- firewireFeatures.adl
- 
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.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
- 
+ MEDM screens
+ firewireFeatures.adl is the screen used to control the features of
+ Firewire cameras.
+
+ firewireFeatures.adl
+ 
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.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
+ 
- areaDetector mar345 driver
-
- August 17, 2009
-
- Mark Rivers
-
- University of Chicago
-
- Table of Contents
-
-
-
- Introduction
-
+ areaDetector mar345 driver
+
+ August 17, 2009
+
+ Mark Rivers
+
+ University of Chicago
+
+ Table of Contents
+
+
+
+ Introduction
+ COMMAND PORT 5001
-
-
- Implementation of 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:
-
-
-
- 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.
-
-
- mar345 specific parameters
- 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
-
-
-
- Configuration
-
+ Implementation of 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:
+
+
+
+ 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.
+
+
+ mar345 specific parameters
+ 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
+
+
+
+ Configuration
+ int mar345Config(const char *portName, const char *serverPort,
int maxBuffers, size_t maxMemory,
int priority, int stackSize)
-
-
- MEDM screens
- mar345.adl is the main screen used to control the mar345 driver.
-
- mar345.adl
- 
- Performance measurements
-
-
-
-
-
-
- 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
-
-
-
-
+
+
-
-
+ MEDM screens
+ mar345.adl is the main screen used to control the mar345 driver.
+
+ mar345.adl
+ 
+ Performance measurements
+
+
+
+
+
+
+ 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
+
+
+
+
diff --git a/documentation/MarCCDDoc.html b/documentation/MarCCDDoc.html
index 6144cc7..80688e6 100755
--- a/documentation/MarCCDDoc.html
+++ b/documentation/MarCCDDoc.html
@@ -1,876 +1,879 @@
-
-
-
+
+
- areaDetector MarCCD driver
-
- August 17, 2009
-
- Mark Rivers
-
- University of Chicago
-
- Table of Contents
-
-
-
- Introduction
-
+ areaDetector MarCCD driver
+
+ August 17, 2009
+
+ Mark Rivers
+
+ University of Chicago
+
+ Table of Contents
+
+
+
+ Introduction
+ include marccd_server_v0.conf
-
- include marccd_server_v1.conf
-
- remote_mode_server_command /home/marccd/contrib/marccd_server/marccd_server_socket
remote_mode_server_arguments 2222
-
- get_frameshift command was added. A recent version of this
- program can be downloaded from the
- Rayonix FTP site.
-
- Implementation of 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:
-
-
-
-
-
-
- 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.
-
-
- MarCCD specific parameters
- 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
-
-
-
- Configuration
- get_frameshift command was added. A recent version of this
+ program can be downloaded from the
+ Rayonix FTP site.
+
+ Implementation of 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:
+
+
+
+
+
+
+ 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.
+
+
+ MarCCD specific parameters
+ 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
+
+
+
+ Configuration
+ int marCCDConfig(const char *portName, const char *serverPort,
int maxBuffers, size_t maxMemory,
int priority, int stackSize)
-
-
- MEDM screens
- marccd.adl is the main screen used to control the MarCCD driver.
-
- marccd.adl
- 
marccdAncillary.adl is the screen used to input ancillary information
- that is written to the MarCCD TIFF files.
-
- marccdAncillary.adl
- 
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
- 
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
- 
- Performance measurements
-
-
-
-
-
-
- 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
-
-
-
-
+
+
-
-
+ MEDM screens
+ marccd.adl is the main screen used to control the MarCCD driver.
+
+ marccd.adl
+ 
marccdAncillary.adl is the screen used to input ancillary information
+ that is written to the MarCCD TIFF files.
+
+ marccdAncillary.adl
+ 
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
+ 
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
+ 
+ Performance measurements
+
+
+
+
+
+
+ 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
+
+
+
+
diff --git a/documentation/NDPluginColorConvert.html b/documentation/NDPluginColorConvert.html
index c13cad0..2c2dee8 100755
--- a/documentation/NDPluginColorConvert.html
+++ b/documentation/NDPluginColorConvert.html
@@ -10,7 +10,7 @@
+
+
areaDetector Plugin NDPluginColorConvert
- January 30, 2009
+ August 17, 2009
Mark Rivers
@@ -28,30 +28,13 @@
Overview
- NDPluginColorConvert inherits from NDPluginDriver. NDPluginColorConvert receives - an input NDArray with one color mode and outputs another NDArray with a (potentially) - different color mode. All other attributes of the array are preserved. The NDPluginColorConvert - public interface is defined in NDPluginColorConvert.h as follows:
-class NDPluginColorConvert : public NDPluginDriver {
-public:
- NDPluginColorConvert(const char *portName, int queueSize, int blockingCallbacks,
- const char *NDArrayPort, int NDArrayAddr,
- size_t maxMemory);
-
- /* These methods override the virtual methods in the base class */
- void processCallbacks(NDArray *pArray);
- asynStatus drvUserCreate(asynUser *pasynUser, const char *drvInfo,
- const char **pptypeName, size_t *psize);
-
- /* These methods are just for this class */
- template <typename epicstype> void convertColor(NDArray *pArray);
-};
-...
-}
-
+ NDPluginColorConvert inherits from NDPluginDriver. The
+ NDPluginColorConvert class documentation describes this class in detail.
+
NDPluginColorConvert defines the following parameters. It also implements all of the standard plugin parameters from NDPluginDriver @@ -123,72 +106,18 @@ public: The NDPluginColorConvert plugin is created with the following command, either from C/C++ or from the EPICS IOC shell.
-int drvNDColorConvertConfigure(const char *portName, int queueSize, int blockingCallbacks, - const char *NDArrayPort, int NDArrayAddr, - int maxBuffers, size_t maxMemory); +int NDColorConvertConfigure(const char *portName, int queueSize, int blockingCallbacks, + const char *NDArrayPort, int NDArrayAddr, + int maxBuffers, size_t maxMemory, + int priority, int stackSize)-
| - Argument | -- Description | -
|---|---|
- portName |
- - The name of the asyn port for this plugin. - | -
- queueSize |
- - The maximum number of NDArray objects that can be queued for processing. Passed - to the NDPluginDriver base class constructor. - | -
- blockingCallbacks |
- - Flag controlling whether callbacks block. Passed to the NDPluginDriver base class - constructor. - | -
- NDArrayPort |
- - The name of the asyn port of the driver that will provide the NDArray data. Passed - to the NDPluginDriver base class constructor. - | -
- NDArrayAddr |
- - The asyn addr of the asyn port of the driver that will provide the NDArray data. - Passed to the NDPluginDriver base class constructor. - | -
- maxBuffers |
- - Maximum number of NDArray buffers to be created for plugin callbacks, i.e. for plugins - that will be getting called from this plugin. Passed to the constructor for the - NDPluginDriver base class. | -
- maxMemory |
- - Maximum number of bytes of memory to be allocated from the NDArrayPool. Passed to - the constructor for the NDPluginDriver base class. | -
+ For details on the meaning of the parameters to this function refer to the detailed + documentation on the NDColorConvertConfigure function in the + NDPluginColorConvert.cpp documentation and in the documentation for the constructor + for the NDPluginColorConvert + class. +
diff --git a/documentation/NDPluginFile.html b/documentation/NDPluginFile.html index be7f11d..aa1ba18 100755 --- a/documentation/NDPluginFile.html +++ b/documentation/NDPluginFile.html @@ -53,13 +53,14 @@ they all must fit in a memory buffer. It is the fastest mode, with the least probability of dropping arrays, because no disk I/O is required while capture is in progress.
At least one array with the same datatype, array size, and attributes must have @@ -87,8 +88,8 @@ mode are supported by writing multiple JPEG files.
- The JPEG plugin supports the Int32 parameter NDFileJPEGQuality to control the amount of - compression in the file. This parameter varies from 0 (maximum compression, lowest + The JPEG plugin supports the Int32 parameter NDFileJPEGQuality to control the amount + of compression in the file. This parameter varies from 0 (maximum compression, lowest quality) to 100 (least compression, best quality). NDFileJPEG.template defines 2 records to support this: $(P)$(R)JPEGQuality (longout) and $(P)$(R)JPEGQuality_RBV (longin). @@ -313,17 +314,17 @@ variables: NeXus (HDF) file plugin
- A plugin to write NeXus files was - written by John Hammonds from the APS. NeXus is a standard format for x-ray and - neutron data based on HDF. This is a very general - file format, capable of storing any type of array data and meta-data. + A plugin to write NeXus files + was written by John Hammonds from the APS. NeXus is a standard format for x-ray + and neutron data based on HDF. This is a very + general file format, capable of storing any type of array data and meta-data.
The NDFileNexus class documentation describes this class in detail.
- The NDFileNexus plugin is created with the NDFileNexusConfigure command, either from - C/C++ or from the EPICS IOC shell.
+ The NDFileNexus plugin is created with the NDFileNexusConfigure command, either + from C/C++ or from the EPICS IOC shell.NDFileNexusConfigure (const char *portName, int queueSize, int blockingCallbacks,
const char *NDArrayPort, int NDArrayAddr, size_t maxMemory,
int priority, int stackSize)
@@ -333,8 +334,10 @@ variables:
documentation on the NDFileNexusConfigure function in the
NDFileNexus.cpp documentation and in the documentation for the constructor
for the NDFileNexus class.
- NDFileNeXus uses 2 additional parameters to define the location of an XML file that is read to determine
- the contents of the NeXus files written by this plugin. These are described in the following table.
+
+ NDFileNeXus uses 2 additional parameters to define the location of an XML file that
+ is read to determine the contents of the NeXus files written by this plugin. These
+ are described in the following table.
| TEMPLATE_FILE_PATH |
- $(P)$(R)TemplateFilePath + $(P)$(R)TemplateFilePath $(P)$(R)TemplateFilePath_RBV |
- waveform + waveform waveform |
| TEMPLATE_FILE_NAME |
- $(P)$(R)TemplateFileName + $(P)$(R)TemplateFileName $(P)$(R)TemplateFileName_RBV |
- waveform + waveform waveform |
There is currently no documentation on the contents of the XML template file. However, there are example - XML template files in the iocSimDetector and iocPerkinElmer directories. Documentation on the XML file - contents will be written ASAP.
++ There is currently no documentation on the contents of the XML template file. However, + there are example XML template files in the iocSimDetector and iocPerkinElmer directories. + Documentation on the XML file contents will be written ASAP.
The following is the MEDM screen that provides access to the parameters in NDPluginDriver.h - and NDPluginFile.h through records in NDPluginBase.template and NDFile.template. - This is the MEDM screen that is used to control the saving of images to disk in netCDF format.
+ and NDPluginFile.h through records in NDPluginBase.template and NDFileNetCDF.template. + This is the MEDM screen that is used to control the saving of images to disk in + netCDF format.
- 