Minor changes for R1-3

git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@7894 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
This commit is contained in:
rivers
2008-11-24 18:57:48 +00:00
parent e4808c8726
commit 23d26b4d2b
+59 -53
View File
@@ -7,7 +7,7 @@
<h1>
areaDetector MarCCD driver</h1>
<h2>
November 18, 2008</h2>
November 24, 2008</h2>
<h2>
Mark Rivers</h2>
<h2>
@@ -40,26 +40,23 @@
<p>
marccd must be using Version 1 of the remote protocol. This is normally done done
by editing the file marccd/configuration/marccd.conf and replacing the line</p>
<pre>
include marccd_server_v0.conf
<pre>include marccd_server_v0.conf
</pre>
<p>
with</p>
<pre>
include marccd_server_v1.conf
<pre>include marccd_server_v1.conf
</pre>
<p>
The file marccd_server_v1.conf should contain the lines:</p>
<pre>
remote_mode_server_command /home/marccd/contrib/marccd_server/marccd_server_socket
<pre>remote_mode_server_command /home/marccd/contrib/marccd_server/marccd_server_socket
remote_mode_server_arguments 2222
</pre>
<p>
The first line points to the location of the marccd_server_socket program that is
used to implement remote control. In order to work with the areaDetector driver
this must be a version of this program created after November 11, 2008 when support
for the <code>get_frameshift</code> command was added. A recent version of this program can
be downloaded from the <a href="ftp://ftp.rayonix.com/pub/marccd/example_marccd_server.tgz">
for the <code>get_frameshift</code> command was added. A recent version of this
program can be downloaded from the <a href="ftp://ftp.rayonix.com/pub/marccd/example_marccd_server.tgz">
Rayonix FTP site</a>.
</p>
<p>
@@ -77,8 +74,8 @@ remote_mode_server_arguments 2222
<tbody>
<tr>
<td align="center" colspan="3">
<b>Implementation of Parameters in ADStdDriverParams.h and EPICS Record Definitions in
ADBase.template and NDFile.template</b></td>
<b>Implementation of Parameters in ADStdDriverParams.h and EPICS Record Definitions
in ADBase.template and NDFile.template</b></td>
</tr>
<tr>
<th>
@@ -98,8 +95,8 @@ remote_mode_server_arguments 2222
from ADStdDriverParams.h. The choices for the MarCCD are:
<ul>
<li>Normal (corrected data frame without double correlation)</li>
<li>Background (background frame with 0 exposure time, done with double correlation to remove
zingers)</li>
<li>Background (background frame with 0 exposure time, done with double correlation
to remove zingers)</li>
<li>Raw (data frame without correction for background or spatial distortion)</li>
<li>DblCorrelation (two images each collected for half the nominal acquisition time,
zingers removed by double correlation)</li>
@@ -136,14 +133,14 @@ remote_mode_server_arguments 2222
be used to make the paths look identical.</td>
</tr>
<tr>
<td>
ADFileFormat</td>
<td>
$(P)$(R)FileFormat</td>
<td>
marccd only supports TIFF files.
</td>
</tr>
<td>
ADFileFormat</td>
<td>
$(P)$(R)FileFormat</td>
<td>
marccd only supports TIFF files.
</td>
</tbody>
</table>
<p>
@@ -383,8 +380,8 @@ remote_mode_server_arguments 2222
that restricts the x-rays to horizontal stripe. An exposure is made, and then an
external signal causes the detector to shift the image by the number of lines given
by this parameter. A number of images separated by times of a few milliseconds can
be collected, and then the detector is read out. Set this parameter to 0 to
disable frameshift mode.</td>
be collected, and then the detector is read out. Set this parameter to 0 to disable
frameshift mode.</td>
<td>
MAR_FRAME_SHIFT</td>
<td>
@@ -549,8 +546,9 @@ remote_mode_server_arguments 2222
</table>
<h2 id="Unsupported">
Unsupported standard driver parameters</h2>
<p>The MarCCD driver does not support the following standard driver parameters because
they are not supported in the marccd program:
<p>
The MarCCD driver does not support the following standard driver parameters because
they are not supported in the marccd program:</p>
<ul>
<li>Number of exposures per image (ADNumExposures)</li>
<li>Trigger mode (ADTriggerMode)</li>
@@ -558,8 +556,7 @@ remote_mode_server_arguments 2222
<li>Region to read out (ADMinX, ADMinY, ADSizeX, ADSizeY, ADReverseX, ADReverseY)</li>
<li>Data type (ADDataType)</li>
<li>Reading previous files (ADReadFile)</li>
<li>Capture or stream file saving (ADFileWriteMode, ADFileCapture,
ADNumCapture, ADNumCaptured)</li>
<li>Capture or stream file saving (ADFileWriteMode, ADFileCapture, ADNumCapture, ADNumCaptured)</li>
</ul>
<h2 id="Configuration" style="text-align: left">
Configuration</h2>
@@ -590,8 +587,8 @@ marCCDConfig(const char *portName, const char *marCCDPort,
<td>
<code>marCCDPort</code></td>
<td>
The name of the asyn TCP/IP port to communicate with marccd_server_socket. This must have been
previously created with <code>drvAsynIPPortConfig()</code>,
The name of the asyn TCP/IP port to communicate with marccd_server_socket. This
must have been previously created with <code>drvAsynIPPortConfig()</code>,
</td>
</tr>
<tr>
@@ -613,8 +610,7 @@ marCCDConfig(const char *portName, const char *marCCDPort,
<p>
The following is an example st.cmd startup script:
</p>
<pre>
< envPaths
<pre>< envPaths
errlogInit(20000)
dbLoadDatabase("$(AREA_DETECTOR)/dbd/marCCDApp.dbd")
@@ -710,7 +706,6 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
<h3 style="text-align: center">
marccd.adl</h3>
<img alt="marCCD.png" src="marCCD.png" /></div>
<p>
<p>
<code>marccdAncillary.adl</code> is the screen used to input ancillary information
that is written to the MarCCD TIFF files.
@@ -727,8 +722,9 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
asynRecord.adl</h3>
<img alt="MarCCDAsynRecord.png" src="MarCCDAsynRecord.png" /></div>
<p>
<code>asynOctet.adl</code> can be used to send any command to the marccd remote server and display
the response. It can be loaded from the More menu in asynRecord.adl above.</p>
<code>asynOctet.adl</code> can be used to send any command to the marccd remote
server and display the response. It can be loaded from the More menu in asynRecord.adl
above.</p>
<div style="text-align: center">
<h3>
asynOctet.adl</h3>
@@ -737,10 +733,9 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
Performance measurements</h2>
<p>
The following measurements were done to demonstrate the performance that can be
obtained with the areaDetector MarCCD driver. These measurements were made with a
MAR-165 CCD, with the EPICS IOC running on the same Linux machine as the marccd
program. The acquisition time was 1 second.</p>
obtained with the areaDetector MarCCD driver. These measurements were made with
a MAR-165 CCD. The EPICS IOC was running on the same Linux machine as the marccd
program. The acquisition time was 1 second.</p>
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
<tbody>
<tr>
@@ -774,9 +769,11 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
4.00
</td>
<td>
Readout: 3.02 <br />
Correct: 0.56 <br />
Save: 0.20
Readout: 3.02
<br />
Correct: 0.56
<br />
Save: 0.20
</td>
</tr>
<tr>
@@ -816,9 +813,11 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
1.90
</td>
<td>
Readout: 1.30 <br />
Correct: 0.28 <br />
Save: 0.06
Readout: 1.30
<br />
Correct: 0.28
<br />
Save: 0.06
</td>
</tr>
<tr>
@@ -858,9 +857,11 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
1.40
</td>
<td>
Readout: 0.78 <br />
Correct: 0.29 <br />
Save: 0.06
Readout: 0.78
<br />
Correct: 0.29
<br />
Save: 0.06
</td>
</tr>
<tr>
@@ -885,15 +886,20 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
</tr>
</tbody>
</table>
<h2 id="Restrictions">
Restrictions</h2>
<p>
The following are some current restrictions of the MarCCD driver:</p>
<ul>
<li>The MarCCD driver keeps retrying to read each TIFF file until the modification date of
the TIFF file is <i>after</i> the time that the exposure command was issued. If
it did not do this check then it could be reading and displaying old files that
<li>The marccd program can save files in many different formats, with TIFF being the
default. The areaDetector driver can only read TIFF files, not other formats. </li>
<li>The areaDetector driver can in principle be run on machines other than the Linux
machine running marccd, since the connection is via a socket. It has only been tested
on Linux, because it requires libtiff and this is not normally installed, for example,
on Windows.</li>
<li>The MarCCD driver keeps retrying to read each TIFF file until the modification
date of the TIFF file is <i>after</i> the time that the exposure command was issued.
If it did not do this check then it could be reading and displaying old files that
happen to have the same name as the current files being collected. This check requires
that the computer that is running the soft IOC must have its clock well synchronized
with the clock on the computer on which the files are being written (i.e. the computer
@@ -907,11 +913,11 @@ create_monitor_set("auto_settings.req", 30,"P=13MARCCD1:,D=cam1:")
<li>MAX_MESSAGE_SIZE=256 The maximum size of message to/from marccd_socket_server.</li>
<li>MAX_FILENAME_LEN=256 The maximum size of a complete file name including path and
extension.</li>
<li>MARCCD_SERVER_TIMEOUT=1.0 Timeout when communicating with marccd_socket_server.</li>
<li>MARCCD_SERVER_TIMEOUT=1.0 Timeout when communicating with marccd_socket_server.</li>
<li>FILE_READ_DELAY=.01 seconds. The time between polling to see if the TIFF file
exists or if it is the expected size.</li>
<li>MARCCD_POLL_DELAY=.01 seconds. The time between polling the marccd_socket_server status
to see when a task has completed.</li>
<li>MARCCD_POLL_DELAY=.01 seconds. The time between polling the marccd_socket_server
status to see when a task has completed.</li>
</ul>
</li>
</ul>