diff --git a/documentation/NDPluginStdArrays.html b/documentation/NDPluginStdArrays.html index c6d79ad..a7086a9 100755 --- a/documentation/NDPluginStdArrays.html +++ b/documentation/NDPluginStdArrays.html @@ -10,7 +10,7 @@

areaDetector Plugin NDPluginStdArrays

- January 30, 2009

+ August 3, 2009

Mark Rivers

@@ -22,8 +22,6 @@
  • Overview
  • Configuration
  • Screen shots
  • -
  • IDL image display client
  • -
  • Future plans
  • Overview @@ -40,31 +38,8 @@ this plugin inherits from NDPluginDriver it also provides additional information on the array data (e.g. number of dimensions and dimension data) that are made available as EPICS PVs so that clients can correctly - interpret the array data. The NDPluginStdArrays public interface is defined in NDPluginStdArrays.h - as follows:

    -
    class NDPluginStdArrays : public NDPluginDriver {
    -public:
    -    NDPluginStdArrays(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);
    -    virtual asynStatus readInt8Array(asynUser *pasynUser, epicsInt8 *value,
    -                                        size_t nElements, size_t *nIn);
    -    virtual asynStatus readInt16Array(asynUser *pasynUser, epicsInt16 *value,
    -                                        size_t nElements, size_t *nIn);
    -    virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value,
    -                                        size_t nElements, size_t *nIn);
    -    virtual asynStatus readFloat32Array(asynUser *pasynUser, epicsFloat32 *value,
    -                                        size_t nElements, size_t *nIn);
    -    virtual asynStatus readFloat64Array(asynUser *pasynUser, epicsFloat64 *value,
    -                                        size_t nElements, size_t *nIn);
    -    asynStatus drvUserCreate(asynUser *pasynUser, const char *drvInfo, 
    -                                        const char **pptypeName, size_t *psize);
    -...
    -}
    -
    + interpret the array data. The + NDPluginStdArrays class documentation describes this class in detail.

    NDPluginStdArrays defines the following parameters. It also implements all of the standard plugin parameters from NDPluginDriver @@ -120,68 +95,19 @@ public:

    Configuration

    - The NDPluginStdArrays plugin is created with the following command, either from - C/C++ or from the EPICS IOC shell. -

    -
    drvNDStdArraysConfigure(const char *portName, int queueSize, int blockingCallbacks, 
    -                        const char *NDArrayPort, int NDArrayAddr, size_t maxMemory)
    +    The NDPluginStdArrays plugin is created with the NDStdArraysConfigure command, either
    +    from C/C++ or from the EPICS IOC shell.

    +
    NDStdArraysConfigure (const char *portName, int queueSize, int blockingCallbacks, 
    +                      const char *NDArrayPort, int NDArrayAddr, 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. -
    - maxMemory - Maximum number of bytes of memory to be allocated from the NDArrayPool. Passed to - the constructor for the NDPluginDriver base class. The NDStdArrays plugin allocates - 2 NDArray objects, so this should be at least twice the size of the largest NDArray - to be used.
    +

    + For details on the meaning of the parameters to this function refer to the detailed + documentation on the NDStdArraysConfigure function in the + NDPluginStdArrays.cpp documentation and in the documentation for the constructor + for the NDPluginStdArrays + class. +

    Screen shots

    @@ -196,64 +122,5 @@ public:

    NDStdArrays.png

    -

    - IDL Image Display Client

    -

    - There is an IDL procedure called - epics_ad_display that can be used to display 2-dimensional array data that - the NDStdArrays plugin sends to EPICS. This IDL client is available as source code - (which requires an IDL license), and also as a pre-built IDL .sav file that can - be run for free under the IDL Virtual Machine. This IDL program can run on any machine - that IDL runs on, and that has the ezcaIDL shareable library built for it. This - includes Windows, Linux, Solaris, and Mac. epics_ad_display is included - in the CARS IDL imaging - software. It is also available in the Viewers directory in the areaDetector - application, where there is a README file describing how to use it. -

    -

    - The control window for epics_ad_display is shown below. It has a field - to input the base name of the EPICS PVs with the image data. It also has fields - to enable/display the IDL display update, to change the display mode, to autoscale - the intensity, and to invert the image in the Y direction. If autoscale is set to - No then manual scaling can be entered in the Min and Max fields. The number of frames - per second actually being displayed by IDL is shown. There is a status window that - shows whether the EPICS PVs are connected and the time the last was array received, - updated once per second. -

    -
    -

    - Main window for IDL epics_ad_display

    -

    - IDL_epics_ad_display.png

    -
    -

    - epics_ad_display can use the simple IDL routine tv to - display the images. This is the fastest mode, and results in a non-scalable unadorned - window.

    -
    -

    - IDL epics_ad_display using the IDL tv routine.

    -

    - IDL_epics_ad_display_tv.jpg

    -
    -

    - epics_ad_display can also use the routine - image_display.pro to display the images. This routine displays row and column - profiles as the cursor is moved. It allows changing the color lookup tables, and - zooming in (right mouse click) and out (left mouse click). The following is an example - of image_display displaying an image from the simulation detector.

    -
    -

    - epics_ad_display using the image_display routine

    -

    - simDetector_image_display.png

    -
    -

    - Future plans

    -

    - Stephen Mudie at the Australian Synchrotron has written a very nice IDL client to - display the EPICS images from the Flea Firewire cameras. This client is being converted - to display the data from this areaDetector plugin. -