From 8ced3240799b418e1fad1850f62e1f99d3373ea4 Mon Sep 17 00:00:00 2001
From: Blaise Thompson <blaise@untzag.com>
Date: Wed, 11 Apr 2018 14:49:11 -0500
Subject: 2018-04-11 14:49

---
 acquisition/chapter.tex | 58 ++++++++++++++++++++++++++++++++++---------------
 1 file changed, 41 insertions(+), 17 deletions(-)

(limited to 'acquisition/chapter.tex')

diff --git a/acquisition/chapter.tex b/acquisition/chapter.tex
index d997e44..86c5c8c 100644
--- a/acquisition/chapter.tex
+++ b/acquisition/chapter.tex
@@ -11,7 +11,6 @@
 
 \section{Introduction}  % =========================================================================
 
-MR-CMDS instruments need to be capable of several different things.  %
 At its core, MR-CMDS is about delivering multiple pulses of light to a sample.  %
 The frequency and relative arrival time (delay) of each pulse must be scanned in the context of a
 basic multidimensional experiment.  %
@@ -25,7 +24,7 @@ An automated monchromator is typically used to spectrally resolve or isolate out
 Each of these features is an optomechanical device: a piece of hardware that must be controlled in
 the context of an MR-CMDS experiment.  %
 
-A scan in MR-CMDS typically means going to a whole series of different positions.  %
+A scan in MR-CMDS typically means sending hardware to a whole series of different positions.  %
 As an example, a three-dimensional ``movie'' might be collected in the following way:
 \begin{codefragment}{python, label=aqn:lst:psuedoaqn}
 w1_points = [14300, 14400, 14500, 14600, 14700]  # wn
@@ -59,21 +58,35 @@ software must be built in an extendable way to accommodate the ever-changing har
 configurations.  %
 In this chapter I describe how I built such an acquisition software, PyCMDS.  %
 
+For context, some description of the acquisition software that PyCMDS replaced is warranted.  %
+
+On the ``ps table'' (focus on mixed vibrational-electronic spectroscopy of molecular systems),
+PyCMDS replaces `ps\_control', an older acquisition software first developed in [YEAR] by Kent
+Meyer [CITE].  %
+ps\_control was very-much not modular, designed by generations of graduate students to get to
+``minimum viable'' as quickly as possible.  %
+When I joined the group, ps\_control had become unsustainable.  %
+The ps table was being revamped with new hardware, and the old motherboard finally died, so new
+software was desperately needed.  %
+
+On the ``fs table'' (focus on semiconductor photophysics), PyCMDS replaces `Control for Lots of
+Research in Spectroscopy' (COLORS), developed by Schuyler Kain [CITE].  %
+PyCMDS is, in many ways, inspired by COLORS.  %
+Kain's design was modular in many ways.  %
+Still, there were fundamental problems that COLORS could not address.  %
+Chief among them was Kain's approach to the National Instruments DAQ card, which did not allow for
+the flexibility required to introduce more interesting chopping schemes [SECTION].  %
+
 PyCMDS is a unified software for controlling hardware and collecting data in the Wright Group.  %
-It is written almost entirely in Python, with a graphical user interface (GUI) made using Qt.
-[CITE]  %
+It is written almost entirely in Python, with a graphical user interface (GUI) made using Qt
+[CITE].  %
 It is cross-platform, with a core capable of running on Linux, Windows and macOS.  %
 It is open source, developed on GitHub. [CITE (GITHUB, PyCMDS)]  %
-In the Wright Group, PyCMDS replaces the old acquisition softwares `ps control', written by
-Kent Meyer, [CITE] and `Control for Lots of Research in Spectroscopy' (COLORS) written by Schuyler
-Kain [CITE].  %
-Today PyCMDS is used to drive both of the MR-CMDS instruments maintained by the Wright Group: the
-``fs table'', focused on semiconductor photophysics, and the ``ps table'', focused on molecular
-systems.  %
-% BJT: consider giving more historical context re: COLORS, ps_control
-
-PyCMDS is best thought of as a central program with three kinds of modular ``plugins'' that can be
-extended indefinitely:
+Today PyCMDS is used to drive both the ps and fs tables.   %
+
+PyCMDS is best thought of as a core program with three kinds of modular ``plugins'' that can be
+extended as needed.  %
+The three plugin kinds are
 \begin{ditemize}
   \item Hardware: things that can be set to a position (\autoref{aqn:sec:hardware}).
   \item Sensors: things that can be used to measure a signal (\autoref{aqn:sec:sensors}).
@@ -92,9 +105,13 @@ Besides the extendable modular pieces, the rest of PyCMDS is a mostly-static cod
 modules and does the necessary things to handle display of information from, and communication
 between them.  %
 
-% TODO: describe each of the sections of this chapter
-
-In designing PyCMDS, I was inspired by the nervous system...
+PyCMDS offers many ways to interact with component hardwares.  %
+Hardware can be set directly, or it can be moved in the context of a scan.  %
+Less obviously, hardware must also move in the context of ``active correction'', such as spectral
+delay correction.  %
+I love to use the analogy of the nervous system when thinking of these two kinds of
+instructions.  %
+I have borrowed the terms ``autonomic'' and ``somatic'':
 
 \begin{dquote}
   The autonomic nervous system, which innervates primarily the smooth musculature of all organs,
@@ -114,6 +131,13 @@ In designing PyCMDS, I was inspired by the nervous system...
   \dsignature{W. J\"{a}nig, Autonomic Nervous System (1989) \cite{JanigW1989a}}
 \end{dquote}
 
+Within PyCMDS, the autonomic system [SECTION] handles the ``reflex'' motion that is part of active
+correction.  %
+The somatic system [SECTION], on the other hand, handles the ``voluntary'' motion in the context of
+acquiring a multidimensional scan.  %
+
+% BJT: consider a layout preview paragraph or two
+
 \clearpage
 \section{Graphical user interface}  % =============================================================
 
-- 
cgit v1.2.3

