git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@15328 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
994 lines
23 KiB
HTML
994 lines
23 KiB
HTML
<!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 PVCAM driver</title>
|
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
</head>
|
|
<body>
|
|
<div style="text-align: center">
|
|
<h1>
|
|
areaDetector PVCAM driver</h1>
|
|
<h2>
|
|
October 1, 2012</h2>
|
|
<h2>
|
|
Brian Tieman, John Hammonds, Mark Rivers</h2>
|
|
<h2>
|
|
Argonne National Laboratory and University of Chicago</h2>
|
|
</div>
|
|
<h2>
|
|
Table of Contents</h2>
|
|
<ul>
|
|
<li><a href="#Introduction">Introduction</a></li>
|
|
<li><a href="#StandardNotes">Implementation of standard driver parameters</a></li>
|
|
<li><a href="#Driver_parameters">PVCAM specific parameters</a></li>
|
|
<li><a href="#Unsupported">Unsupported standard driver parameters</a></li>
|
|
<li><a href="#Configuration">Configuration</a></li>
|
|
<li><a href="#MEDM_screens">MEDM screens</a></li>
|
|
<li><a href="#Performance_measurements">Performance measurements</a> </li>
|
|
<li><a href="#Restrictions">Restrictions</a> </li>
|
|
</ul>
|
|
<h2 id="Introduction" style="text-align: left">
|
|
Introduction</h2>
|
|
<p>
|
|
This is a driver for the <a href="http://www.roperscientific.com/">Roper Scientific</a>
|
|
detectors, which includes those from <a href="http://www.princetoninstruments.com/">
|
|
Princeton Instruments</a> and <a href="http://www.photomet.com/">Photometrics</a>.</p>
|
|
<p>
|
|
The driver is based upon the PVCAM library from Roper, and only runs on Microsoft
|
|
Windows computers. This driver is complementary to the <a href="roperDoc.html">areaDetector
|
|
Roper driver</a>. That driver uses the Microsoft COM interface to control the
|
|
Roper WinView program. This driver works at a lower level, communicating instead
|
|
with the PVCAM library layer. PVCAM supports all Photometrics cameras, and many,
|
|
but not all, Princeton Instruments cameras.
|
|
</p>
|
|
<p>
|
|
ADD ADDTIONAL INTRODUCTORY TEXT HERE.</p>
|
|
<p>
|
|
This driver inherits from <a href="areaDetectorDoc.html#ADDriver">ADDriver</a>.
|
|
It implements many of the parameters in <a href="areaDetectorDoxygenHTML/asyn_n_d_array_driver_8h.html">
|
|
asynNDArrayDriver.h</a> and in <a href="areaDetectorDoxygenHTML/_a_d_driver_8h.html">
|
|
ADArrayDriver.h</a>. It also implements a number of parameters that are specific
|
|
to the Roper detectors. The <a href="areaDetectorDoxygenHTML/classpv_cam.html">pvCam
|
|
class documentation</a> describes this class in detail.</p>
|
|
<h2 id="StandardNotes" style="text-align: left">
|
|
Implementation of standard driver parameters</h2>
|
|
<p>
|
|
The following table describes how the PVCAM driver implements some of the standard
|
|
driver parameters.
|
|
</p>
|
|
<p>
|
|
DOCUMENT IMPLEMENTATION OF STANDARD DRIVER PARAMETERS IN THIS TABLE</p>
|
|
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center" colspan="3">
|
|
<b>Implementation of Parameters in asynNDArrayDriver.h and ADDriver.h, and EPICS Record
|
|
Definitions in ADBase.template and NDFile.template</b></td>
|
|
</tr>
|
|
<tr>
|
|
<th>
|
|
Parameter index variable</th>
|
|
<th>
|
|
EPICS record name</th>
|
|
<th>
|
|
Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADNumImages</td>
|
|
<td>
|
|
$(P)$(R)NumImages</td>
|
|
<td>
|
|
Controls the number of images to acquire when ADImageMode is ADImageMultiple.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="Driver_parameters" style="text-align: left">
|
|
PVCAM specific parameters</h2>
|
|
<p>
|
|
The PVCAM 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 <code>PVCamInitDetector</code>.
|
|
</p>
|
|
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center" colspan="7">
|
|
<b>Parameter Definitions in pvcamSrc.h and EPICS Record Definitions in pvCam.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>
|
|
PVCam<br />
|
|
InitDetector</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
Initializes the detector</td>
|
|
<td>
|
|
PVCAM_INITIALIZE_DETECTOR</td>
|
|
<td>
|
|
$(P)$(R)Initialize<br />
|
|
$(P)$(R)Initialize_RBV</td>
|
|
<td>
|
|
longout<br />
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
InitSlot1Cam</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
String describing 1st found detector</td>
|
|
<td>
|
|
PVCAM_SLOT1</td>
|
|
<td>
|
|
$(P)$(R)Slot1_RBV</td>
|
|
<td>
|
|
stringin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
Slot2Cam</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
String describing 2nd found detector</td>
|
|
<td>
|
|
PVCAM_SLOT2</td>
|
|
<td>
|
|
$(P)$(R)Slot2_RBV</td>
|
|
<td>
|
|
stringin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
Slot3Cam</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
String describing 3rd found detector</td>
|
|
<td>
|
|
PVCAM_SLOT3</td>
|
|
<td>
|
|
$(P)$(R)Slot3_RBV</td>
|
|
<td>
|
|
stringin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
DetectorSelected</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
Index of selected detector</td>
|
|
<td>
|
|
PVCAM_DETECTORSELECTED</td>
|
|
<td>
|
|
$(P)$(R)DetecorSelected<br />
|
|
$(P)$(R)DetecorSelected_RBV</td>
|
|
<td>
|
|
longout<br />
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
ChipNameRBV</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
String describing CCD chip</td>
|
|
<td>
|
|
PVCAM_CHIPNAME</td>
|
|
<td>
|
|
$(P)$(R)ChipName_RBV</td>
|
|
<td>
|
|
stringin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
NumParallelPixelsRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Parallel size of the CCD in active rows</td>
|
|
<td>
|
|
PVCAM_NUMPARALLELPIXELS</td>
|
|
<td>
|
|
$(P)$(R)NumParallelPixels_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
NumSerialPixelsRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Serial size of the CCD</td>
|
|
<td>
|
|
PVCAM_NUMSERIAL</td>
|
|
<td>
|
|
$(P)$(R)NumSerialPixels_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PixelParallelSizeRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Size of the pixel in parallel direction in nanometers</td>
|
|
<td>
|
|
PVCAM_PIXELPARALLELSIZE</td>
|
|
<td>
|
|
$(P)$(R)PixelParallelSize_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PixelSerialSizeRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Size of the pixel in Serial direction in nanometers</td>
|
|
<td>
|
|
PVCAM_PIXELSERIALSIZE</td>
|
|
<td>
|
|
$(P)$(R)PixelSerialSize_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
ChipHeightRBV</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Height of CCD in mm</td>
|
|
<td>
|
|
PVCAM_CHIPHEIGHT</td>
|
|
<td>
|
|
$(P)$(R)ChipHeight_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
ChipWidthRBV</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Width of CCD in mm</td>
|
|
<td>
|
|
PVCAM_CHIPWIDTH</td>
|
|
<td>
|
|
$(P)$(R)ChipWidth_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PixelParallelDistRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Pixel-to-pixel distance, in parallel direction, in nanometers</td>
|
|
<td>
|
|
PVCAM_PIXELPARALLELDIST</td>
|
|
<td>
|
|
$(P)$(R)PixelParallelDist_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PixelSerialDistRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
Pixel-to-pixel distance, in serial direction, in nanometers</td>
|
|
<td>
|
|
PVCAM_PIXELSERIALDIST</td>
|
|
<td>
|
|
$(P)$(R)PixelSerialDist_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PostMaxRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_POSTMASK</td>
|
|
<td>
|
|
$(P)$(R)PostMask_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PreMaskRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_PREMASK</td>
|
|
<td>
|
|
$(P)$(R)PreMask_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PostScanRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_POSTSCAN</td>
|
|
<td>
|
|
$(P)$(R)PostScan_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PreScanRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_PRESCAN</td>
|
|
<td>
|
|
$(P)$(R)PreScan_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
NumPortsRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_NUMPORTS</td>
|
|
<td>
|
|
$(P)$(R)NumPorts_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
FullWellCapacityRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_FULLWELLCAPACITY</td>
|
|
<td>
|
|
$(P)$(R)FullWellCapacity_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
FrameTransferCapableRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_FRAMETRANSFERCAPABLE</td>
|
|
<td>
|
|
$(P)$(R)FrameTransferCapable_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
NumSpeedTableEntriesRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_NUMSPEEDTABLEENTRIES</td>
|
|
<td>
|
|
$(P)$(R)NumSpeedTableEntries_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
SpeedTableIndex<br />
|
|
SpeedTableIndexRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_SPEEDTABLEINDEX<br />
|
|
PVCAM_SPEEDTABLEINDEX_RBV</td>
|
|
<td>
|
|
$(P)$(R)SpeedTableIndex<br />
|
|
$(P)$(R)SpeedTableIndex_RBV</td>
|
|
<td>
|
|
longout<br />
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
BitDepthRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_BITDEPTH</td>
|
|
<td>
|
|
$(P)$(R)BitDepth_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PixelTimeRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_PIXELTIME</td>
|
|
<td>
|
|
$(P)$(R)PixelTime_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
GainIndex<br />
|
|
GainIndexRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_GAININDEX<br />
|
|
PVCAM_GAININDEX_RBV</td>
|
|
<td>
|
|
$(P)$(R)GainIndex<br />
|
|
$(P)$(R)GainIndex_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MaxGainIndexRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MAXGAININDEX</td>
|
|
<td>
|
|
$(P)$(R)MaxGainIndex_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MinShutterOpenDelayRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MINSHUTTEROPENDELAY</td>
|
|
<td>
|
|
$(P)$(R)MinShutterOpenDelay_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MaxShutterOpenDelayRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MAXSHUTTEROPENDELAY</td>
|
|
<td>
|
|
$(P)$(R)MaxShutterOpenDelay_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MinShutterCloseDelayRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MINSHUTTERCLOSEDELAY</td>
|
|
<td>
|
|
$(P)$(R)MinShutterCloseDelay_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MaxShutterCloseDelayRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MAXSHUTTERCLOSEDELAY</td>
|
|
<td>
|
|
$(P)$(R)MaxShutterCloseDelay_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
ShutterOpenDelay<br />
|
|
ShutterOpenDelayRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_SHUTTEROPENDELAY<br />
|
|
PVCAM_SHUTTEROPENDELAY_RBV</td>
|
|
<td>
|
|
$(P)$(R)OpenDelay<br />
|
|
$(P)$(R)OpenDelay_RBV</td>
|
|
<td>
|
|
longout<br />
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
ShutterCloseDelay<br />
|
|
ShutterCloseDelayRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_SHUTTERCLOSEDELAY<br />
|
|
PVCAM_SHUTTERCLOSEDELAY_RBV</td>
|
|
<td>
|
|
$(P)$(R)CloseDelay<br />
|
|
$(P)$(R)CloseDelay_RBV</td>
|
|
<td>
|
|
longout<br />
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MeasuredTemperatureRBV</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MEASUREDTEMPERATURE_RBV</td>
|
|
<td>
|
|
$(P)$(R)MeasuredTemperature_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MinTemperatureRBV</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MINTEMPERATURE</td>
|
|
<td>
|
|
$(P)$(R)MinSetTemperature</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
MaxTemperatureRBV</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_MAXTEMPERATURE</td>
|
|
<td>
|
|
$(P)$(R)MaxSetTemperature</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
SetTemperature<br />
|
|
SetTemperatureRBV</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_SETTEMPERATURE<br />
|
|
PVCAM_SETTEMPERATURE_RBV</td>
|
|
<td>
|
|
$(P)$(R)SetTemperature<br />
|
|
$(P)$(R)SetTemperature_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
DetectorMode<br />
|
|
DetectorModeRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_DETECTORMODE<br />
|
|
PVCAM_DETECTORMODE_RBV</td>
|
|
<td>
|
|
$(P)$(R)DetectorMode<br />
|
|
$(P)$(R)DetectorMode_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
TriggerMode<br />
|
|
TriggerModeRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_TRIGGERMODE_RBV<br />
|
|
PVCAM_TRIGGERMODE_RBV</td>
|
|
<td>
|
|
$(P)$(R)TriggerMode<br />
|
|
$(P)$(R)TriggerMode_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
TriggerEdge<br />
|
|
TriggerEdgeRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r/w</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_TRIGGEREDGE_RBV<br />
|
|
PVCAM_TRIGGEREDGE_RBV</td>
|
|
<td>
|
|
$(P)$(R)TriggerEdge<br />
|
|
$(P)$(R)TriggerEdge_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
CamFirmwareVersRBV</td>
|
|
<td>
|
|
asynOctetRead</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_CAMFIRMWAREVERS_RBV</td>
|
|
<td>
|
|
$(P)$(R)CameraFirmwareVers_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PCIFWVersRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_PCIFWVERS_RBV</td>
|
|
<td>
|
|
$(P)$(R)PCIFWVers_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
HeadSerialNumRBV</td>
|
|
<td>
|
|
asynOctetRead</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_HEADSERIALNUM_RBV</td>
|
|
<td>
|
|
$(P)$(R)HeadSerialNum_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
SerialNumRBV</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_SERIALNUM_RBV</td>
|
|
<td>
|
|
$(P)$(R)SerialNum_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
PVCamVersRBV</td>
|
|
<td>
|
|
asynOctetRead</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_PVCAMVERS_RBV</td>
|
|
<td>
|
|
$(P)$(R)PVCamVers_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
PVCam<br />
|
|
DevDrvVersRBV</td>
|
|
<td>
|
|
asynOctetRead</td>
|
|
<td>
|
|
r</td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
PVCAM_DEVDRVVERS_RBV</td>
|
|
<td>
|
|
$(P)$(R)DevDrvVers_RBV</td>
|
|
<td>
|
|
longin</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="Unsupported">
|
|
Unsupported standard driver parameters</h2>
|
|
<p>
|
|
The PVCAM driver does not support the following standard driver parameters because
|
|
they are not supported in the PVCAM library:</p>
|
|
<ul>
|
|
<li>List any unsupported parameters here (WORK NEEDED)</li>
|
|
</ul>
|
|
<h2 id="Configuration">
|
|
Configuration</h2>
|
|
<p>
|
|
The PVCAM driver is created with the pvCamConfig command, either from C/C++ or from
|
|
the EPICS IOC shell.</p>
|
|
<pre>int pvCamConfig(const char *portName, int maxSizeX, int maxSizeY, int dataType,
|
|
int maxBuffers, 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 pvCamConfig function in the <a href="areaDetectorDoxygenHTML/pv_cam_8cpp.html">
|
|
pvCam.cpp documentation</a> and in the documentation for the constructor for the
|
|
<a href="areaDetectorDoxygenHTML/classpv_cam.html">pvCam class</a>.
|
|
</p>
|
|
<p>
|
|
There an example IOC boot directory and startup script (<a href="pvcam_st_cmd.html">iocBoot/iocPVCam/st.cmd)</a>
|
|
provided with areaDetector.
|
|
</p>
|
|
<h2 id="MEDM_screens" style="text-align: left">
|
|
MEDM screens</h2>
|
|
<p>
|
|
The following shows the MEDM screens that are used to control the PVCAM detector.
|
|
Note that the general purpose screen ADBase.adl can be used, but it exposes many
|
|
controls that are not applicable to the PVCAM driver, and lacks some fields that
|
|
are important for the PVCAM driver.</p>
|
|
<p>
|
|
<code>pvCam.adl</code> is the main screen used to control the PVCAM driver.
|
|
</p>
|
|
<div style="text-align: center">
|
|
<h3 style="text-align: center">
|
|
pvCam.adl</h3>
|
|
<img alt="pvCam.png" src="pvCam.png" /></div>
|
|
<div style="text-align: center">
|
|
<h3 style="text-align: center">
|
|
ADBase.adl</h3>
|
|
<img alt="pvCam_ADBase.png" src="pvCam_ADBase.png" /></div>
|
|
<h2 id="Performance_measurements">
|
|
Performance measurements</h2>
|
|
<p>
|
|
The following measurements were done to demonstrate the performance that can be
|
|
obtained with the areaDetector PVCAM driver.</p>
|
|
<p>
|
|
PUT A TABLE OF PERFORMANCE MEASUREMENTS HERE</p>
|
|
<h2 id="Restrictions">
|
|
Restrictions</h2>
|
|
<p>
|
|
The following are some current restrictions of the PVCAM driver:</p>
|
|
<ul>
|
|
<li>DOCUMENT ANY IMPORTANT RESTRICTIONS OF THE PVCAM DRIVER HERE</li>
|
|
</ul>
|
|
</body>
|
|
</html>
|