areaDetector PerkinElmer driver

August 17, 2009

John Hammonds, Brian Tieman, Mark Rivers

Argonne National Laboratory and University of Chicago

Table of Contents

Introduction

This is a driver for the flat-panel amorphous silicon detectors from PerkinElmer. It implements many of the parameters in asynNDArrayDriver.h and ADDriver.h. It also implements a number of parameters that are specific to the PerkinElmer detectors.

The driver is based upon the library provided by PerkinElmer. It only runs on Microsoft Windows computers.

ADD ADDTIONAL INTRODUCTORY TEXT HERE.

This driver inherits from ADDriver. The PerkinElmer class documentation describes this class in detail.

Implementation of standard driver parameters

The following table describes how the PerkinElmer driver implements some of the standard driver parameters.

DOCUMENT IMPLEMENTATION OF STANDARD DRIVER PARAMETERS IN THIS TABLE

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
ADNumImages $(P$(R)NumImages Controls the number of images to acquire when ADImageMode is ADImageMultiple.

It is useful to use NDPluginROI to define an ROI containing the entire PerkinElmer 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.

PerkinElmer specific parameters

The PerkinElmer 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 PerkinElmerXXX.

Parameter Definitions in PerkinElmer.h and EPICS Record Definitions in PerkinElmer.template
Enum name asyn interface Access Description drvUser string EPICS record name EPICS record type
PE_NumFrameBuffers asynInt32 r/w Number of frame buffers to use PE_NUM_FRAME_BUFFERS $(P)$(R)PENumFrameBuffers
$(P)$(R)PENumFrameBuffers_RBV
longout
longin

Unsupported standard driver parameters

The PerkinElmer driver does not support the following standard driver parameters because they are not supported in the PerkinElmer library:

Configuration

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

int PerkinElmerConfig(const char *portName, int maxSizeX, int maxSizeY, int dataType, 
                      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 PerkinElmer.cpp documentation and in the documentation for the constructor for the PerkinElmer class.

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

MEDM screens

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

PerkinElmer.adl is the main screen used to control the PerkinElmer driver.

PerkinElmer.adl

PerkinElmer.png

Performance measurements

The following measurements were done to demonstrate the performance that can be obtained with the areaDetector PerkinElmer driver.

PUT A TABLE OF PERFORMANCE MEASUREMENTS HERE

Restrictions

The following are some current restrictions of the PerkinElmer driver: