From f47987902f228af220b6a1b44d0ac06368324fbd Mon Sep 17 00:00:00 2001
From: Blaise Thompson <blaise@untzag.com>
Date: Wed, 11 Apr 2018 20:37:22 -0500
Subject: 2018-04-11 20:37

---
 acquisition/chapter.tex | 85 ++++++++++++++++++++++++++++++++++---------------
 1 file changed, 59 insertions(+), 26 deletions(-)

(limited to 'acquisition/chapter.tex')

diff --git a/acquisition/chapter.tex b/acquisition/chapter.tex
index e60e0a7..ff6bcdf 100644
--- a/acquisition/chapter.tex
+++ b/acquisition/chapter.tex
@@ -610,8 +610,7 @@ Each of these classes can be directly instantiated as a minimum-viable instance,
 
 Delays are the kind of thing that have a position in absolute units, a zero position, and a
 relative position measured in fs or ps.  %
-They also are the kind of thing that is most commonly subject to offset by the Autonomic
-system...  %
+They can be offset by the autonomic system to accommodate spectral delay correction.  %
 
 In addition to the inherited methods, delay hardware objects require the following:
 \begin{ditemize}
@@ -629,12 +628,20 @@ The delay GUI, by default, offers
   \item \python{on_set_motor}
   \item \python{on_set_zero}
 \end{ditemize}
+\autoref{aqn:fig:delay_advanced} is a screenshot of the advanced panel for one of the Newport MFA
+[CITE] delay stages.  %
+This advanced panel is pretty typical.  %
+Users may directly set the motor position or zero position.  %
+They may also change the label.  % BJT: because...
+There is a ``factor'' argument, which can be any non-zero integer (positive or negative).  %
+At its simplest this factor can accommodate different directions that the stage is placed, but it
+can also account for double-passes and similar configurations.  %
 
 \begin{landscape}
 \begin{figure}
  	\includegraphics[width=9in]{"acquisition/screenshots/006"}
   \caption[Representative delay stage advanced menu.]{
-    CAPTION TODO
+    Advanced menu for one of the MFA-CC (SMC-100) delay stages, on the fs system.  %
   }
   \label{aqn:fig:delay_advanced}
 \end{figure}
@@ -645,14 +652,20 @@ The delay GUI, by default, offers
 Spectrometers are the kind of thing that can be set to a single color (typically native units are
 in nm).  %
 They often have turrets that allow for switching between gratings.  %
-Other features are not currently supported as PyCMDS has only been asked to drive one kind of
-monochromator so far.  %
-
-Hardware:
+Other features are not currently supported as PyCMDS has only needed to drive one monochromator at
+this time.  %
 
-Driver:
+Spectrometer hardware instances do not need any features beyond the default hardware object.  %
 
-GUI:
+Spectrometer driver instances require the following:
+\begin{ditemize}
+  \item \python{get_grating_details}
+  \item \python{set_turret}
+\end{ditemize}
+ 
+\autoref{aqn:fig:spectrometer_advanced} is a screenshot of the MicroHR [CITE] advanced menu on the
+fs system.  %
+Nothing can be changed in the advanced menu except the label, and the offset can be seen.  %
 
 \begin{landscape}
 \begin{figure}
@@ -666,19 +679,47 @@ GUI:
 
 \subsection{OPAs}  % ------------------------------------------------------------------------------
 
-Hardware:
+OPAs are the most complicated piece of hardware addressed by PyCMDS.  %
+They range between 3 and 6 motors.  %
 
-Driver:
-
-GUI:
-
-\subsubsection{Curves}
+In addition to what's inherited from the parent hardware class, OPA hardware instances require the
+following:
+\begin{ditemize}
+  \item \python{@property curve}
+  \item \python{@property curve_paths}
+  \item \python{get_tune_points}
+  \item \python{home_motor}
+  \item \python{load_curve}
+  \item \python{@property motor names}
+  \item \python{run_auto_tune}
+  \item \python{set_motor}
+\end{ditemize}
 
-Recursive
+In addition to what's inherited from the parent driver class, OPA driver instances require the
+following:
+\begin{ditemize}
+  \item \python{bool poynting_correction}
+  \item \python{home_motor}
+  \item \python{home_all}
+  \item \python{curve}
+  \item \python{motor_names}
+  \item \python{set_motor}
+  \item \python{set_motors}
+  \item \python{interaction}
+  \item \python{load_curve}
+  \item \python{set_position_except}
+\end{ditemize}
 
-United
+Many of these additional features have to do with the tuning curve, a crucial feature of OPAs.  %
+The tuning curve contains motor positions needed to achieve each valid output color.  %
+Read more about my implementation of tuning curves in \ref{cha:opa}.  %
 
-Interpolation
+\autoref{aqn:fig:opa_advanced} is a screenshot of the advanced menu for one of the TOPAS-C [CITE]
+OPAs on the fs table.  %
+A large central plot displays the currently loaded tuning curve for one of the motors (chosen in
+the pull down menu).  %
+Multiple filepath menus allow the user to specify each tuning curve.  %
+Each motor can be independently set and homed.  %
 
 \begin{landscape}
 \begin{figure}
@@ -690,14 +731,6 @@ Interpolation
 \end{figure}
 \end{landscape}
 
-\subsection{Filters}  % ---------------------------------------------------------------------------
-
-Hardware:
-
-Driver:
-
-GUI:
-
 \clearpage
 \section{Sensors (devices)} \label{aqn:sec:sensors}  % ============================================
 
-- 
cgit v1.2.3

