---+!! 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
© 2020 Winterland Cosmology Lab, McGill University, Montréal, Québec, Canada