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 @@ + + +
++ 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.
++ 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:
+
|
+
+ 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.
+ +
+ 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 + |
+
+ 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.
++ 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. +
++ 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.
+

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