diff --git a/documentation/BrukerDoc.html b/documentation/BrukerDoc.html new file mode 100755 index 0000000..7f3bad1 --- /dev/null +++ b/documentation/BrukerDoc.html @@ -0,0 +1,296 @@ + + + + areaDetector Bruker Instrument Server driver + + + +
+

+ areaDetector Bruker Instrument Server (BIS) driver

+

+ November 13, 2010

+

+ Mark Rivers

+

+ University of Chicago

+
+

+ Table of Contents

+ +

+ Introduction

+

+ This is a driver for detectors from + Bruker AXS using the Bruker Instrument Server (BIS).

+

+ The interface to the detector is via TCP/IP socket connections to the Bruker Instrument Server (BIS) + program that Bruker provides. The BIS program must be started before + the areaDetector software is started. +

+

+ The Bruker Instrument Server saves the data to disk in Bruker's SRFM file format. The areaDetector + driver reads these disk files in order to read the data, because BIS does + not provide another mechanism to access the data. +

+

+ This driver inherits from ADDriver. + It implements many of the parameters in + asynNDArrayDriver.h and in + ADArrayDriver.h. It also implements a number of parameters that are specific + to the Bruker detector. The BIS + class documentation describes this class in detail.

+

+ Implementation of standard driver parameters

+

+ The following table describes how the BIS 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
+ Parameter index variable + EPICS record name + Description
+ 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 BIS and + for the areaDetector driver, which is normally running in an EPICS IOC. Normally BIS + and the EPICS IOC are run on the same machine so this is not an issue. Running the + IOC on another machine is difficult because Windows does not support soft links + that could be used to make the paths look identical.
+ The terminator at the end of + FilePath must be a "\" character, it cannot be a "/" character, because BIS + only recognizes the "\". +
+ NDFileFormat + $(P)$(R)FileFormat + BIS only supports Bruker format SRFM files. +
+ ADFrameType + $(P)$(R)FrameType + The driver redefines the choices for the ADFrameType parameter (record $(P)$(R)FrameType) + from ADDriver.h. The choices for the BIS driver are: +
    +
  • Normal (corrected data frame without double correlation)
  • +
  • Dark (NumDarks background frames with same exposure time)
  • +
  • Raw (data frame without correction for background)
  • +
  • DblCorrelation (two images each collected for half the nominal acquisition time, + zingers removed by double correlation)
  • +
+
+

+ BIS will automatically open and close the shutter when exposures are collected. It does this by changing the state of + pin 3 of the parallel port DB-25 connector on the PC. This signal is connected to a shutter control box. Alternatively, + if ADShutterMode is set to ADShutterModeEPICS, then any EPICS PV can be used to control a shutter.

+

+

+ Bruker specific parameters

+

+ The Bruker 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 parameter index + variable 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
+ Parameter index variable + asyn interface + Access + Description + drvInfo string + EPICS record name + EPICS record type
+ Readout parameters
+ BISSFRMTimeout + asynFloat64 + r/w + The timeout waiting for the SFRM file to appear. + SRFMTimeout + $(P)$(R)ReadSFRMTimeout + ao +
+ BISStatus + asynOctet + r/w + The status string returned from BIS. + BIS_STATUS + $(P)$(R)BISStatus + waveform +
+ BISNumDarks + asynInt32 + r/w + The number of dark fields to collect when ADFrameType=Dark. + NUM_DARKS + $(P)$(R)NumDarks
+ $(P)$(R)NumDarks_RBV
+ longout +
+ longin +
+

+ Unsupported standard driver parameters

+

+ The Bruker driver does not support the following standard driver parameters because + they are not supported in the BIS server:

+ +

+ BIS supports binning, but the binning in the X and Y directions must be the same, so only ADBinX is supported.

+

+ Configuration

+

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

+
+  BISDetectorConfig(const char *portName, const char *commandPort, const char *statusPort,
+                    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 theBISDetectorConfig function in the + BIS.cpp documentation and in the documentation for the constructor for + the BIS class. +

+

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

+

+ MEDM screens

+

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

+

+ BIS.adl is the main screen used to control the Bruker driver. +

+
+

+ BIS.adl

+ BIS.png
+

+ Restrictions

+

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

+ + +