diff --git a/documentation/areaDetectorDoc.html b/documentation/areaDetectorDoc.html index 329a8e2..06f943c 100755 --- a/documentation/areaDetectorDoc.html +++ b/documentation/areaDetectorDoc.html @@ -3,16 +3,16 @@ areaDetector: EPICS Area Detector Support -
+

areaDetector: EPICS Area Detector Support

- September 17, 2008

+ September 19, 2008

Mark Rivers

University of Chicago

-
+

 

@@ -33,9 +33,9 @@
  • Plugins
  • Detector drivers @@ -49,10 +49,8 @@

     

    -
    -

    - Overview

    -
    +

    + Overview

    The areaDetector module provides a general-purpose interface for area (2-D) detectors in EPICS. It is intended to be used with a wide variety of detectors and cameras, @@ -83,13 +81,13 @@

     

    -
    -

    - Architecture

    -
    +

    + Architecture

    +

    + The architecture of the areaDetector module is shown below.

    +

    + areaDetectorArchitecture.png

    - The architecture of the areaDetector module is shown below. - areaDetectorArchitecture.png From the bottom to the top this architecture consists of the following:

    -
        virtual asynStatus getAddress(asynUser *pasynUser, const char *functionName, int *address); 
     

    @@ -347,7 +340,6 @@ public: getAddress(). Derived classed typically do not need to implement these methods.

    -
        virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);
         virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value);
         virtual asynStatus writeOctet(asynUser *pasynUser, const char *value, size_t maxChars,
    @@ -360,7 +352,6 @@ public:
         will provide their own implementations of these methods to do driver-dependent operations
         when there is a new value of the parameter.
       

    -
         
         virtual asynStatus readXXXArray(asynUser *pasynUser, epicsInt8 *value, 
                                             size_t nElements, size_t *nIn);
    @@ -381,7 +372,6 @@ public:
         asyn clients on the corresponding interface if the reason and addr
         values match. It typically does not need to be implemented in derived classes.
       

    -
         
         virtual asynStatus findParam(asynParamString_t *paramTable, int numParams, const char *paramName, int *param);
         virtual asynStatus drvUserCreate(asynUser *pasynUser, const char *drvInfo, 
    @@ -398,7 +388,6 @@ public:
         in derived classes. drvUserGetType and drvUserDestroy
         typically do not need to be implemented in derived classes.
       

    -
         
         virtual void report(FILE *fp, int details);
         virtual asynStatus connect(asynUser *pasynUser);
    @@ -413,7 +402,6 @@ public:
         and pasynManager-> exceptionDisconnect respectively. Derived classes
         may or may not need to implement these functions.
       

    -
         
         virtual asynStatus setIntegerParam(int index, int value);
         virtual asynStatus setIntegerParam(int list, int index, int value);
    @@ -444,10 +432,8 @@ public:
         is a second version of callParamCallbacks that takes an argument specifying
         the parameter list number, and the asyn address to match.
       

    -
    -

    - NDArray

    -
    +

    + NDArray

    The NDArray (N-Dimensional array) is the class that is used for passing detector data from drivers to plugins. The NDArray class is defined as follows: @@ -582,10 +568,8 @@ public:

  • release. This method calls NDArrayPool->release() for this object. It decreases the reference count for this array.
  • -
    -

    - NDArrayPool

    -
    +

    + NDArrayPool

    The NDArrayPool class manages a free list (pool) of NDArray objects (described above). Drivers allocate NDArray objects from the pool, and pass these objects to plugins. @@ -644,10 +628,8 @@ public:

  • report This method reports on the free list size and other properties of the NDArrayPool object.
  • -
    -

    - asynNDArrayDriver

    -
    +

    + asynNDArrayDriver

    asynNDArrayDriver inherits from asynPortDriver. It implements the asynGenericPointer functions, assuming that these reference NDArray objects. This is the class from @@ -683,10 +665,8 @@ public:

  • report This method calls the report function in the asynPortDriver base class. It then calls the NDArrayPool->report() method if details > 5.
  • -
    -

    - ADDriver

    -
    +

    + ADDriver

    ADDriver inherits from asynNDArrayDriver. This is the class from which area detector drivers are directly derived. Its public interface is defined as follows: @@ -721,10 +701,8 @@ public: file name in the ADFullFileName parameter from the ADFilePath, ADFileName, ADFileNumber, and ADFileTemplate parameters.

  • -
    -

    - ADStdDriverParams

    -
    +

    + ADStdDriverParams

    The file ADStdDriverParams.h defines the following:

    @@ -1662,18 +1640,21 @@ typedef enum Note that the section of the screen labeled "Shutter" is not currently implemented for any areaDetector driver, and is subject to change in the near future.

    -
    -
    - ADBase.png
    -
    -
    -

    - Detector drivers

    -
    +
    +

    + ADBase.adl

    + ADBase.png
    +

    + Detector drivers

    areaDetector has been designed to minimize the amount of work required to write - a new detector driver. These drivers are described in separate documents, linked - to by the table of contents at the top of this page. -

    + a new detector driver. The drivers currently available for the areaDetector module + are:

    +