Files
ADAndor/documentation/NDPluginStdArrays.html
2010-05-19 18:36:32 +00:00

127 lines
4.8 KiB
HTML
Executable File

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>areaDetector Plugin NDPluginStdArrays</title>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
</head>
<body>
<div style="text-align: center">
<h1>
areaDetector Plugin NDPluginStdArrays</h1>
<h2>
May 19, 2010</h2>
<h2>
Mark Rivers</h2>
<h2>
University of Chicago</h2>
</div>
<h2>
Contents</h2>
<ul>
<li><a href="#Overview">Overview</a></li>
<li><a href="#Configuration">Configuration</a></li>
<li><a href="#Screens">Screen shots</a></li>
</ul>
<h2 id="Overview">
Overview
</h2>
<p>
This plugin is the tool for converting the NDArray data produced by asynNDArrayDriver
drivers into a form that can be accessed by EPICS.
</p>
<p>
NDPluginStdArrays inherits from NDPluginDriver. NDPluginStdArrays converts the NDArray
data from a callback into the 1-dimensional arrays supported by the standard asyn
array interfaces, i.e. asyn[Int8, Int16, Int32, Float32, Float64]Array. These interfaces
are supported by the EPICS waveform record using standard asyn device support. Because
this plugin inherits from <a href="pluginDoc.html#NDPluginDriver">NDPluginDriver</a>
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 <a href="areaDetectorDoxygenHTML/class_n_d_plugin_std_arrays.html">
NDPluginStdArrays class documentation</a> describes this class in detail.</p>
<p>
NDPluginStdArrays defines the following parameters. It also implements all of the
standard plugin parameters from <a href="pluginDoc.html#NDPluginDriver">NDPluginDriver</a>
. The EPICS database NDStdArrays.template provides access to these parameters, listed
in the following table.
</p>
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
<tbody>
<tr>
<td align="center" colspan="7,">
<b>Parameter Definitions in NDPluginStdArrays.h and EPICS Record Definitions in NDStdArrays.template</b></td>
</tr>
<tr>
<th>
Parameter index variable</th>
<th>
asyn interface</th>
<th>
Access</th>
<th>
Description</th>
<th>
drvInfo string</th>
<th>
EPICS record name</th>
<th>
EPICS record type</th>
</tr>
<tr>
<td>
NDPluginStdArraysData</td>
<td>
asyn[Int8, Int16, Int32, Float32, Float64]Array</td>
<td>
r/o</td>
<td>
Array data as a 1-D array, possibly converted in data type from that in the NDArray
object to the specific asyn interface.</td>
<td>
STD_ARRAY_DATA</td>
<td>
$(P)$(R)ArrayData</td>
<td>
waveform</td>
</tr>
</tbody>
</table>
<p>
If the array data contains more than 16,000 bytes then in order for EPICS clients
to receive this data they must be built with EPICS R3.14 (not R3.13), and the environment
variable EPICS_CA_MAX_ARRAY_BYTES on both the EPICS IOC computer and EPICS client
computer must be set to a value at least as large as the array size in bytes.</p>
<h2 id="Configuration">
Configuration</h2>
<p>
The NDPluginStdArrays plugin is created with the NDStdArraysConfigure command, either
from C/C++ or from the EPICS IOC shell.</p>
<pre>NDStdArraysConfigure (const char *portName, int queueSize, int blockingCallbacks,
const char *NDArrayPort, int NDArrayAddr, size_t maxMemory,
int priority, int stackSize)
</pre>
<p>
For details on the meaning of the parameters to this function refer to the detailed
documentation on the NDStdArraysConfigure function in the <a href="areaDetectorDoxygenHTML/_n_d_plugin_std_arrays_8cpp.html">
NDPluginStdArrays.cpp documentation</a> and in the documentation for the constructor
for the <a href="areaDetectorDoxygenHTML/class_n_d_plugin_std_arrays.html">NDPluginStdArrays
class</a>.
</p>
<h2 id="Screens">
Screen shots</h2>
<p>
The following is the MEDM screen that provides access to the parameters in NDPluginDriver.h
and NDPluginStdArrays.h through records in NDPluginBase.template and NDStdArrays.template.
This is the MEDM screen that is normally used to control the display of images via
EPICS channel access.
</p>
<div style="text-align: center">
<h3>
NDStdArrays.adl</h3>
<p>
<img alt="NDStdArrays.png" src="NDStdArrays.png" /></p>
</div>
</body>
</html>