Software Release Notes for Build 2015B

Release Date: April 23, 2015
Generic Release Name: 2015B
General Description:

Telescope Operator Overview Information

  • As part of the migration to 64 bits, the GCS client commands (selectAGW, getStatus, ...) are deprecated. Use "gcsclient selectAGW ...". (Just put "gcsclient " before the commands you used to use.) The old commands will work for this build, but they will be removed in build 2015C.
  • The tertiary mirror initialization process has changed. Each tertiary mirror must first be initialized and then the selector and mirror homed separately.

Support Astronomer Overview Information

  • GCS IT#5569 The subsystem no longer should issue erroneous warnings regarding guide camera exposure time below the lower limit.
  • GCS IT#5401 The configuration variable, WFS_pupil_rotoffset is not properly converted from degrees to radians.
  • GCS IT#5450 Added logic which is executed for every Preset to check if the AGW "in use" is the AGW which should be used for the authorized instrument. A warning is displayed on the GUI, and the GCS is pro-active in that if this situation is detected, GCS will re-select and acquire the correct AGW.
  • GCS IT#5533 The weighting scheme initially used for the determination of the guide star in the acquisition field has been generalized so that it can also be used during guiding for instruments/data whose acquisition/guide images are the same (PEPSIPFU). Added temporary configuration variables in gcs.conf, weightSourcesFlag_Guide and newWeight, the first of which allows one to enable/disable the new weighting scheme in the guide thread (only for PEPSIPFU), and the second controls which acquisition function to invoke for any instrument; these control flags are meant strictly for testing of the organization.
  • PCS IT#5527 The IIF documentation has been updated. The RA proper motion values at the IIF interface are expected to be dRA/dt * cos(Dec) in units of radians/year. This change was made as the Instrument Software was sending the RA proper motion this way and not as it was specified in the IIF as dRA/dt.

The Details

New Functionality Tests that need to be performed with the Telescope

  • none

Patches to the Release

  • OSS Version 4.0a
    • Supports two UMACs, and has improvements for M3 control.

Known Bugs

  • none

Release Overview

  • none

IIF list of Public Data Dictionary Variables

Operating System, System Configuration, TCS and Hardware Computers

TCS Servers / Workstations

  • This build is only 64 bits running on the 64 bit cluster: tcs64-1, tcs64-2, and tcs64-3.

jet computer, DSP, FPGA

  • none


  • none


  • none

TCS Subsystems and GUIs, and significant configuration files

AGw control server

  • oacserver Version 4.2
    • Directly "ping" each Moxa before trying to access a one wire filesystem device instead of checking the "/var/run/nport/presentx" file.

Azcamserver and controller computers

  • none

AOS - Adaptive Optics

    • none

DDS - Data Dictionary Server

  • DDS
    • The ddsclient has been moved to the Tools repository because it uses ICE and can run on any computer.

    • none

ECS - Enclosure Control

  • ECS
    • Add ECS reflective memory CellThermalStat for when Dan will read out the mirror cell thermal data with the ECS. When this is done, the PMC will get the cell thermal data from the ECS DD instead of the thermal computer.
      • Each sensor has temperature, 'good' flag, severity, and agilent module number.
      • The sensors are grouped as an arrayed directory for each set of thermocouples (Ambient, FacePlate, etc.).
      • In addition there is raw data and relay cycle counts, overall severity, overall timestamp, and agilent alive and time stamp values.
    • HBS IT#5357, adding a warning and alarm for +-5 and +-10C out of temperature ranges; notification added if HBS recirculation pump is discovered off.
    • Added vent and shutter door drive DD variables (plus spares) in preparation for the new VFDs being installed soon and in the summer shutdown.
    • Added thermocouples TC0409 to TC0432, inclusive, DD variables for mirror ventilation.
    • Added DD variables for the VFDs to be added during summer shutdown to the mirror ventilation pressure blowers.
    • Added spare DD variables for air compressor aftercoolers in preparation for the summer shutdown.

    • none

ENV - Environmental Sensors

  • ENV Version 1.23
    • Use two different times for the LBT main weather station 'alive' checks. The timestamp and wind data check use configuration parameter LBTWindStuckTime (30 seconds) and the temperature, pressure, humidity and dew point use LBTNoWindStuckTime (600 seconds). It seems sometimes the no-wind data can stay unchanging for several minutes (IssueTrak 5515).

    • none

FACSUM - Facility Summary

IIF - Instrument Interface

  • IIF Version 8.29
    • Do not set authorizeStatus to FAIL when authorize() fails because authorizeStatus is RUNNING. Always clear authorizeStatus on startup so a stuck authorization may be retried.
    • Do not update M2 wavefront during Preset (IssueTrak 5493). (This is available as a patch to 2015A.)

    • none

GCS - Guiding Control

  • GCS Version 3.3c
    • Modified the GCSSubsystem class to allow acquisition of WFS housekeeping information, updating of various data dictionary items, and to write telemetry data even if the humidity reading is below 0.0(%). This fix also restarts the "seconds ago" counter for the WFS images which indicates the time passed since the last temperature update.
      • Also, removed the "changing" text for the gcs.side[side].selectedAGWUnit data dictionary item. It is not necessary to say "changing" (just indicate the new AGW), so removed this update to the dictionary item.

  • GCS Version 3.3b
    • Updated instrument_[L|R].cfg files:
      • Deleted "maxDriftFromHotspot" entries
      • Added "maxHotspotFromProbe" with a value of 0.5". This variable is is the maximum drift in arcsecs of the guiding hotspot from the wavefront sensing window center before a probe movement is necessary. Effectively, it is the radius of wfs hotspot.
      • EXCEPTION: PEPSIPFU the value is 2.08".
      • Added "probeErrorThreshold" which is a threshold for probe move to determine if it is close enough (mm) after a timeout on move
        LUCI: variable = 0.232
        MODS: variable = 0.012
        All other files: variable = 0.0
      • Set the "WFS_pupil_rotoffset" to -20.2 in MODS_R.cfg. This value is in degrees and is the angle between x,y stage motion and x,y pupil motion.
      • Added "WFS_pupil_rotoffset" variable to the remaining instrument files.
        MODS_L.cfg and MODS_L_DLM.cfg: WFS_pupil_rotoffset = -9.0
        All other AIP WFS: WFS_pupil_rotoffset = 0.0
    • Changed how GCS determines Monocular vs Binocular mode in the pauseLoop() method of the GuidingThread class based upon PCS data dictionary items. The logic now uses the pcs.monocularMode variable (-1 = binocular, 0 = SX, 1 = DX) instead of the telescope side weights which is more robust.
    • Deleted the presence of the "_maxOffsetFromHotspot" variable from the GCSSubsystem class. It was a local variable only and NOT read from any configuration file (despite the same varible name in the instrument configuration files); the variable was not used.
    • Modified the GCS to capture and convert the initial guiding/wavefrontsensing hotspot value to relative coordinates and then store this information in GCS spare data dictionary variables. This information is used to position the "blue circle" on the GCSGUI which currently tracks the guiding hotspot. However, the blue circle now represents the wavefront sensing hotspot. It has a radius of ~0.5" for all instruments except PEPSIPFU which has a larger radius of ~38".
    • Addressed IT#5569 (guide cam exposure time below lower limit). The source code was incorrectly comparing the new exposure time to the GCS default exposure time rather than the minimum exposure time.
    • Deleted the widget and reference to the data dictionary item associated with the now obsolete "_maxDriftFromHotspot" configuration variable from the "Guide Control" panel of the GCSGUI.
    • Properly convert configuration variable pupil_rotoffset to radians upon ingest from configuration file in WFSingThread.cpp. Clean up unnecessary temporary associated variable. This addesses IT#5401.
    • Each Preset for PEPSIFPU and LUCIFER resets the guiding hotspot back to the configuration setting. This addresses IT#5000.
    • Added logic which is executed for every Preset to check if the AGW "in use" is the AGW which should be used for the authorized instrument. If this condition is false, the GCS will re-select the proper AGW for the authorized instrument. This is to protect against a mismatch of AGW units between day work and night time observing. This modification is in conjunction with a new entry on the GCSGUI which displays the AGW in use. If the AGW in use is NOT the AGW for the authorized instrument, the information is displayed as a warning in yellow. Otherwise, the information is displayed in a nominal manner. This display is strictly informational due to the self-correcting nature of GCS for this issue.
      • Necessary to modify the routine which handles only ACQUIRE mode separately from the routine which handles all other modes.
      • Patch using data dictionary entry: gcs.side[0|1].Spare.b[0]
      • Next build data dictionary entry: gcs.side[0|1].agwMismatchWarning
    • Clean up the AGWUnit::setProbePosition, deleting the hard-coded retry logic since the AGW hardware is fixed; new config item for probeErrorThreshold
    • Delete the use of compiler directive MODS_DEBUG
    • Delete unnecessary flags and config in AGWUnit classes for nonSidMoveProbe, nonSidMoveWindow and in GuidingThread for changeROI and enableProbeMove
    • Use checkProbeLimits for doCheckAccessibility in MODS
    • Use logical operators instead of bit operations for obviously logical operations
    • add resumeWFS when probe-to-HS is back in range
    • Added lookahead pauseWFS if there's not enough time for it to finish before moving probe
    • Cleanup moveWindowOnHS: no gotos, don't return status since it just stops guiding; keep guiding after ROI cannot move anymore until HS drifts out of CCD
    • Modified the WFS pause/resume functions to not allow a state of WFS not running, paused=true
    • Modified the use of the WFS pause/resume functions in GuidingThread based on the return values
    • Added "moving AGW probe" status on the GUI
    • Added calculation of non-sidereal "Time to limit" for display on the GCSGUI.

  • GCSGUI Version 1.40
    • Added a "Time to Limit" entry on the main GCSGUI which indicates the time remaining for a non-sidereal target.
    • Added a display indicator for the Tracking Mode of the telescope, Sidereal or Non-Sidereal, on the lower-front panel of the main GUI.
    • Added a display indicator for the AGW which is currently in use for the focal station. The indicator is white-on-black for normal conditions and black-on-yellow when the AGW "in use" is not the same as the AGW for the authorized instrument.

  • GCS Version 3.3
    • IT#5533 Moved the function which implements the weighting scheme for determining the guide star in the acquisition field to the GuidingThread class. In the way, the function can be used for both acquisition and guiding. This is desired for PEPSIPFU where the acquisition and guide images are the same. Generalized the function signature and the function internals so that it can be used successfully from its new home. Added temporary configuration variables in gcs.conf, weightSourcesFlag_Guide and newWeight, the first of which allows one to enable/disable the new weighting scheme in the guide thread (only for PEPSIPFU), and the second controls which acquisition function to invoke for any instrument; these control flags are meant strictly for testing of the organization. This update implements the portion of IT#5533>. The quality of the weighting scheme still needs to be evaluated.
    • Modified the "fake" (no AzCam present) acquisition and guiding for PEPSIPFU. The functionality was made to be available in general (removed hard-coded source) and done to de-emphasize the image center and concentrate on the real hotspot location.
    • WFSingThread cleanup
      • Remove unused methods and variables.
      • Clean up some SysLog messages.
      • Remove the original analysis system (CoW with unrotated grid) because Doug Miller says it is obsolete; we now always use Source Extractor.
      • Rename triggerNewWFS() to triggerWFS().
      • Don't use one dimensional 'spot' and 'flat' arrays.
      • Fix several off by one indexing errors (more possible memory corruption).
    • Clean up WFSingThread reflective memory: remove explicit Zernike coefficients and replace with existing 'z' array.
    • Remove GCSDefaultObjects.hpp.
    • Clean up use of ZernikeCorrection.hpp.
    • Clean up namespace use in several modules.
    • Only use/manage 22 Zernike coefficients, down from 56. (22 is the most Doug Miller says we'll ever use.)
    • Cleaned up the gcsClient and added the ability to invoke it as 'gcsclient command side parameters'. The old form of 'command side parameters' is still supported, but we will eventually remove the individual command links. Renamed the binary to 'gcsclient'.
    • Removed the old individual files whose functionality is in gcsClient.
    • Fix log message of source extractor results (units incorrect) - IT 5529
    • Clean up in GuidingThread and AGW classes to consolidate duplicated functions/log messages, simplify, and make logging more clear about what's being used and what's calculated only for printing, etc.
    • Changes for non-sidereal:
      • delete code that skips the guide correction after a probe move
      • fix SFP2CCDoffset in AGWUnitMODS to use the correct sense (sfp-probe) for delta argument to MODS transform
      • add back in the resume WFS thread after probe move
    • Pass in side variable to CamImage class that is writing DD entries so it doesn't complain about un-owned DD entries - IT 5528

  • GCSGUI Version 1.39
    • Clean up WFSingThread reflective memory: remove explicit Zernike coefficients and replace with existing 'z' array.
    • Only use/display 22 Zernike coefficients, down from 56.

LSS - Logging and Events

  • LSS Version 3.15
    • Correctly define event "error".

    • none

MCS / mcstemp - Mount Control

  • MCS
    • Changes to eliminate compiler warnings when using compiler flag -Wextra. Mostly unused parameters.
    • HBS pressure OK signal is now blacked out (ignored, displayed as OK unconditionally) for 90 seconds whenever HBS system is turned off or turned on. This was done to suppress an uninteresting alarm on the pressure-OK signal.
    • The AZ and EL amplifier OK signals are now ignored for the first 34 seconds after the axis is commanded to be ready or to shut down. This was done to suppress alarms on the failure of hte power-amplifier-OK signals. So for the first 34 seconds after a 'ready' or 'wait for opr' command, they are forced true unconditionally. This prevents an alarm being triggered during power on or power off.

  • MCSGUI Version 3.4
    • Changes to eliminate compiler warnings when using compiler flag -Wextra. Mostly unused parameters.

OSS - Optical Support

    • none

PCS - Pointing Control

  • PCS Version 6.33
    • Fix to IT#5527 - The PCS was processing RA proper motion values correctly as specified via the IIF. However, (in general) the instrument software was not adhering to the IIF by sending the RA proper motion as dRA/dt * cos(Dec) rather than dRA/dt. The PCS code was modified so the RA proper motion as provided by most astronomical catalogs (dRA/dt*cos(Dec)) is properly accommodated. The cos(Dec) term is now divided out by the PCS before going to pointing kernel. Please note this is a change to the IIF interface which specifies the proper motion should be provided as dRA/dt (and dDec/dt) in units of radians/year. Note the typical units in a catalog can be milli-arcseconds/year or arcseconds/century. The IIF still expects the units of proper motion to be provided in radians/year.
    • Added new data dictionary items for the guide and AO stars to the existing pcs.side[0|1].pointingStatus.[guider|ao] areas. The base coordinates and wavelength in use (as defined by the AGw) were already present. New items are:
      • pcs.side[0|1].pointingStatus.[guider|ao].[guideStar|ao]_epoch
      • pcs.side[0|1].pointingStatus.[guider|ao].[guideStar|ao]_equinox
      • pcs.side[0|1].pointingStatus.[guider|ao].[guideStar|ao]_pmRA
      • pcs.side[0|1].pointingStatus.[guider|ao].[guideStar|ao]_pmDec
      • pcs.side[0|1].pointingStatus.[guider|ao].[guideStar|ao]_system
    • Updated the default values for the [tip|tilt]Sign[SX|DX] variables which are used in the instance that PCS is unable to read the pcs.conf file for these variables. The default values in the code are all "-1" to match the values in the pcs.conf file.
    • Added/replaced a SYSLOG message with regard to the target, guide star, and AO reference star. The message contains the target coordinates in sexigesimal, as well as the wavelength (target or AGw), apparent magnitude, and the waveband of the apparent magnitude.

    • none

Pointing Kernel / Pointing Kernel tools

  • none

PMC - Primary Mirror Cell

  • PMC Version 5.34
    • Add Thermal command "Init" to re-read the thermal configuration file. This avoids having to restart the subsystem when the thermal sensor status is changed in the configuration file.

  • PMCGUI Version 6.10
    • Add "Init" button on thermal details form to re-read the thermal configuration file
    • Do not use NULL as char. Fix for CentOS 7 compiler.

PSF - Point Spread Function

  • PSF Version 6.10
    • Wait for all operations to stop before quitting. This is to prevent the PSF from crashing when asked to stop.

    • none


  • none


  • none

WEATHERSTATION - Weather Station

TCS Common Software

commandreturn - client command status returns

  • none

commandsequencer - client/subsystem command handling

  • none

core - foundation routines

  • none

datadictionary - reflective memory and event support

  • none

editor - data dictionary editor

  • ddeditor and eventeditor are now part of the TCS repository. This is part of the 64 bit migration and will make the 32 bit access to the 64 bit cluster a little better. The editor source is now in ...trunk/tcs/editor.

eventhandler - event handling

  • none

networkconfig - subsystem management

  • none

reflectivememory - global shared memory

  • none

rpc - communication protocol

  • none

setvalue - reflective memory access

  • none


  • none

tcs_config - tcs configuration

  • none

viewer - data dictionary viewer

  • DDBrowser and DDViewer are now part of the TCS repository. This is part of the 64 bit migration and will make the 32 bit access to the 64 bit cluster a little better. The viewer source is now in ...trunk/tcs/viewer.
  • Treat UChar like Char (as integer), and display Char and UChar printable characters inside "'" in Browser view (like Viewer view).

build system

  • Remove dependencies on subsystem directories for symbolic links created in tcs/bin. (This stops re-creating the links whenever one of the subsystem directories is touched.) Make the links directly reference '../../sss/xxx' instead of having sss->../../sss and the link referencing 'sss/xxx'.
  • Do not make refmem.bin and event.bin since we have not used them for several years. Fix ddsconfig so it reads reflective memory and event list files correctly. In the next build we will convert from XML definitions to list file definitions.

TCS Tools

ddsclient - DDS subsystem client

  • The ddsclient has been moved from the TCS to the Tools repository because it uses ICE and so can run on any computer.

DDEditor - Data Dictionary Editor

  • The DDEditor is no longer supported and has been removed. Use ddeditor instead.

ddeditor - Data Dictionary Editor

  • Moved from Tools to TCS repository.

DDBrowser - Data Dictionary Browser

  • Moved from Tools to TCS repository.

DDViewer - Data Dictionary Viewer

  • Moved from Tools to TCS repository.

EventEditor - Event Editor

  • The EventEditor is no longer supported and has been removed. Use eventeditor instead.

eventeditor - Event Editor

  • Moved from Tools to TCS repository.


  • none



  • Add diagnostic syslog messages when an append operation fails.
  • Retry the packet table append once on failure.
  • Add diagnostic syslog messages for failures when creating the packet table and its attributes.

Instruments and Environmental Sensors

DIMM - Differential Image Motion Monitor

  • Version 2.92.
    This version writes telemetry with the addition of DIMM target azimuth. The new DIMM telemetry files will be named YYYMMDDHHMM.dimm.seeing.h5 in the directory: /lbt/telemetry_data/tcs/dimm/YYYY/MM/DD.
    The new dataset inside the HDF5 file is called seeing_01, instead of dimm_01.
    We will keep the IIF writing the DIMM data to telemetry until we verify the DIMM telemetry. IIF will still write the values to the TCS shared memory for DIMM, so the facility display doesn't have to change.

IRTC - Infrared Test Camera

  • IRTC 4.4
    • NSIGUI has had labels "RA rate" changed to "dRA/dt * cos(DEC) and "DEC rate" changed to "dDec/dt" to clearly show the dependence on time and DEC.
    • NSIGUI supports warning returns from IIF commands by displaying them in yellow.


  • none


  • none

LBTO Weather Station

  • none

MAT - Mount Axilliary Telescope

  • none

OVMS - OPD Vibration Monitoring System

  • Version 0.8.1
    • real-time code modified for multicast TTL=2 (released 20-June-2014)
    • ovmsSniffer tool updated to use the socket more efficiently
    • uses latest telemetry library (r19 built 21-April-2015)

All Sky Monitor

  • none
Topic revision: r18 - 11 Sep 2015, ChrisBiddick
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