---+!! Analog fMUX Software Overview
Core Software
The core software is the software that interfaces directly to the hardware, and runs on a dedicated receiver computer. It consists of
- a
HardwareManagerDeamon
which provides an interface to control all the settings of the system through TCP/IP
- a
DIODeamon
which manages the data that is being pushed off the back of the readout boards, and serves it out to clients over TCP/IP
- an
errorServer
which receives and keeps track of all error and log messages generated by the system
- a
WatchDogDeamon
which monitors the receiver PC and reboots it if it becomes hung.
When the software is properly installed, this core software is started with the
/etc/init.d/fMUX restart
command. See the page on setting up and starting the software.
User Interface
The user interface is provided through the
MuxUI
package, which is available from the repository. It is written almost entirely in python, and links to the C++ Deamons mentioned above.
Python Scripts
Most of the system setup and tuning is done with python
scripts, which
are located in the directory
MuxUI/scripts
.
Repository and Organization of Software Packages
The software is divided into several packages, each of which has its own directory in the CVS archive.
The current "working" in use version of the software, installed via the makefile
make install
command, is stored in the directory
/usr/local/bin/fMUX/
.
The software will, by default, look for configuration files in the directory
/usr/local/src/fMUX/Config/CURRENT/
.
The readout system software is composed of several different
packages (each committed separately in CVS) which interact through TCP/IP connections. Each package is versioned with the code version system (CVS,
http://www.nongnu.org/cvs/). The repository is located on
kong.physics.berkeley.edu:/home/cvs
. The basic packages are
-
MuxReadoutSoftware
the readout system core software, written in C++. This includes the deamons that receive commands over TCP and send them to the hardware. There are two deamons: the DIODeamon, which handles and serves the fast data from the detectors, and the HardwareManagerDeamon, which sends and receives slow controls from the readout boards.
-
MuxUI
This is the generic graphical user interface client for users to execute commands to the readout system. It connects to the MuxHardwareManager and the DIODeamon and is written in python.
-
MuxCalibration
mostly matlab and idl routines for doing fits and analysing readout system data. For example, MuxCalibration/network_analyses
constains the idl code we use to interpret the MUX comb network analysis data to extract the resonant frequencies and bolometer normal resistances.
-
fridge
This is the Software package that controls the Simon Chase fridge cycle and monitors the temperatures of the diodes and RTDs in the receiver. Users will primarily use scripts in the tools directory.
- FridgeDeamon: this is the main deamon that runs on the receiver computer and processes TCP commands from clients.
- logger.py: This program is run in the background to log the fridge temperatures. It connects to the FridgeDeamon and produces an ascii output file called SCTemp.log. You can view the logfile with gnuplot using
plot_log SCTemp.log
- monitor.py: displays current temperatures and heater settings as colorful ascii text in an xterm
- manual_controller.py: allows the user to set heater currents and switches from the control line. This manual does not cover that software, though you'll find many references to fridge controller commands, since most systems using this software are also using the
fridge
package. A very short example of a fridge cycle provided by this package is described at SWfridge.
--
MattDobbs - 02 Dec 2006
This topic: AnalogFMux
> WebHome >
FMuxSoftwareGuide > SWSystemOverview
Topic revision: r5 - 2007-03-01 - ApexSZ