AGW software

The AGW software is divided into a number of components in a roughly two-layers structure: low-level hardware controllers and high-level coordination scripts and interfaces.

Low-level hardware controllers.

Most low-level hardware controllers are written in C/C++. In the AO2.0 release they derive from the base AOApp class and are controlled via MsgD-RTDB variables and, in some cases, simple messages.

Power management

  • RelayCtrl - handles the main power board and the temperature reading
  • PowerCtrl - handles the power switches on the BCU39.

CCD controllers

  • JoeCtrl - two instances with different configuration files control the ccd39 and ccd47.

Motor controllers

  • StagesCtrl - three instances control the three Bayside linear stages.
  • SimpleMotorCtrl - seven instances control the two filter wheels, the two ADC motors, the pupil rerotator, the cube rotator and translation stage.

BCU controllers

Tip-tilt controllers

  • TTCtrl - controls the tip-tilt mirror via the BCU47.

High level coordination

The high-level coordination is done with Python scripts. A series of Python classes, which communicate with the low-level controllers with MsgD-RTDB variables, is available to controll all low-level functionality.

Most python scripts are instances or derivations of the base AoApp.py class.

Runtime (normal operation) scripts

  • startup.py - starts up the system in a predefined way
    • equalize_quadrants.py - part of the startup procedure, ensures that the four ccd39 quadrants are at the same background level.
  • change_binning.py - configure the ccd39 and the slope computer for a certain binning.

Calibration scripts

  • pupils.py - realtime pupil acquisition
  • meas_intmat.py - interaction matrix acqusition (modal)
  • cloop.py - closed loop test.

Python classes

  • hw_ctrl.py - base class for hardware controllers.
  • agw_power.py - AGW power management wrappers access to RelayCtrl and PowerCtrl
  • tt.py - tip-tilt control (wrappers access to TTCtrl)

Python libraries

  • msglib.c - low-level wrapper to msglib.c
  • process_control.py - process start/stop/management

-- AlfioPuglisi - 26 Jan 2007
Topic revision: r2 - 22 Oct 2009, LucaFini
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback