Software Release Notes for Build "2015C"

Release Date: Sep 29, 2015
Release Name: 2015C
General Description:

Telescope Operator Overview Information

  • The tertiary mirror initialization process has changed. Each tertiary mirror must first be initialized and then the selector and mirror homed separately.
  • ECS: The UNDEFINED state for a Vent Door is now an alarm.

Support Astronomer Overview Information

  • GCS client commands must now be invoked as 'gcsclient xxxx ...' instead of just 'xxxx ...'.
  • GCS: Remaining updates were completed to address IT#4887 "When GCS changes the AGw filter, GCS needs to notify PCS".
  • GCS: The GCSGUI can be invoked with any case for the side value (e.g., GCSGUI left, GCSGUI RIGHT, GCSGUI l)
  • PCS: Implemented the initial version of the algorithm where tip/tilt demands from PCS are sent to the corresponding PSF based upon actual actions (guide update, offset request) versus the previous algorithm which sends demands essentially continuously.
  • PCS SYSLOG requested improvements
    • Proper motion now reported in units of mas/yr.
    • Coordinates (RA, Dec) printed in a friendly and truncated format (hh:mm:ss.sss, +/
  • PCS Telemetry
    • Added the azimuth and elevation values PCS obtains from the MCSPU to the "mountEquatorial" stream. These are the net values and best determination of the AZ and EL from all MCSPU encoder sources. The azimuth has been normalized to the range 0 to 2Pi.
  • PCS: Due to the new computer arrangement, if Pointing logs are collected, the output files are now located in /lbt/data/share/PointingLogs.
  • PCS: IT#5635 (Add PCS centroids to telemetry) This is an LBC only issue. The specific values access by external programs have been added to telemetry in units of arcseconds. The "gain" filtered version of these values are already in telemetry in units of radians.

The Details

New Functionality Tests that need to be performed with the Telescope

  • none

Patches to the Release

  • 02-Oct-15 syslogserver. Fix formatting for extra time stamp.
  • 02-Oct-15 DDS 1.4a. Add operations telemetry stream.
  • 02-Oct-15 DDSGUI 1.0. New DDSGUI.
  • 13-Oct-15 DDS 1.4b. Add almanac data to telemetry. Add client for setting flags. Put ICE debug/logging flags in reflective memory so the GUI can set/clear them
  • 15-Oct-15 TCSGUI 2.8a. Enable the "GUI" button for the DDS since it now has a GUI.
  • 15-Oct-15 ENV 1.24a. Add 'alive' flags to events. Change LBT temperature stuck timeout from 600 to 1800 seconds (IssueTrak 5515).
  • 22-Oct-15 AOS fixed FLAO communication bug caused by wrong library.
  • 22-Oct-15 ENV 1.24b. Add humidity upper limit (IssueTrak 5515), and fix stuck time checking.
  • 22-Oct-15 DDS 1.4c. Generate shutter state from LUCI variable 'exposureState'.
  • 06-Nov-15 ENV 1.24c. Check stuck time separately. Set aliveTime true when time is valid.
  • 16-Nov-15 OSS 4.1a. Detect a UMAC that has been turned off. Set GUI colors and notify alarm handler. Add lostConnection events.
  • 21-Dec-15 DDS adjust sizeWarm and sizeMax to stop thread warning.
  • ECSGUI_Version-4.4 (27 Jan 2016 UT)(Patch ECSGUI.20160126): Removed ability to set the focus to any button on the ECSGUI which includes the main GUI and any dialog panels. One MUST use the mouse to click explicitly for any function to be performed. Also, Confirmation Message dialogs have been added to the Open, Close, MoveToOpenPosition, and MoveToClosePosition buttons found on the "Shutter Door Control Panel" dialog. This addresses IT#5835.
  • PCS_Version-6.34f (22 January 2016)(Patch PCS.20160122f): Fix for IT#5831 Synchronization problem with string "trigger" queues being clogged with unnecessary strings, and thereby, causing semaphore post functionality to be delayed. Also, ensure deletion of RPC objects in two classes to close memory leaks, removed commas from telemetry variable descriptions, fix for IT#5817 which moved the gating variable which allows the KFP coordinates to be computed so that the time the gate is closed is minimized and timeouts were added to the time the gate can be closed in order to avoid hanging GCS/AOS when they make a request.
  • GCS_Version 4.0h (15 January 2016 UT)(Patch GCS.20160113h): Fix to address IT#5486 (Is -2.9 gazillion good seeing or bad?), an improvement for IT#5000 (Request the GCS to reset the default hotspot on a Preset - works and tested for LUCI1, LUCI2, MODS1, MODS2f), an ellipticity threshold has been implemented to improve identification of guide stars IT#5775, the port base address in support of the AzCams has been changed to be a configuration variable, and locale information added so the testing environments do not talk to the MODS hardware.
  • On Oct. 15, 2015 MCSGUI's HBS GUIs were changed to show "SENSOR" when a pressure sensor has failed. The pocket pressure displayed colors are no longer driven off of the HBS PLC status bits (to indicate warning - yellow or error -red). The colors are now drawn by the GUI when pressures exceed warning or limit values specified by James Howard.
  • The MCSPU has had its Positon Server, which is used by ARGOS and TBAD changed. It uses only 1 port now, 57007. It allows a maximum of 3 clients.
  • PCS_Version 6.34c/d: Updates done to the telemetry streams - variables are now in user-friendly units (e.g., arcseconds vs radians).
  • ECS_Version 5.0: Treehouse temperatures have been added to the "thermal_computer" telemetry stream and re-instated the "all" commands for the Ventilation Doors.
  • ECSGUI_Version 4.3: Re-instated the "all" commands for the Ventilation Doors.
  • 7-Jan-16 Ephemeral port range changed from 31768-61000 to 10000-64000.
  • 7-Jan-16 OSS 4.1b. Add waits to compute bound loops when waiting for mirrors to stop.
  • 14-Jan-16 TCS anomaly fixes.
    • rpcserver 'checkHealth' thread now only checks one RPC per subsystem instead of all 17. The checks are spread out evenly over 2.5 seconds.
    • Simplify alias() to only support new alias to existing function.
    • Add Syslog message for function registration.
    • Display the RPC port number when showing the RPC function list.
    • Add debug flag controlled Syslog message for alias registration.
    • Display the RPC port number when showing the RPC alias list.
    • Add Syslog message when the health check unregisters an RPC.
  • 22-Jan-16 PCS RPC leak fixed. RPC socket leak fixed just for PCS.
  • 22-Jan-16 IIF 8.30a. Remove 0.5 second shift between binocular presets (IssueTrak 5817).
  • 22-Jan-16 DDS 1.4d. Remove commas from telemetry descriptions (IssueTrak 5832).

Known Bugs

  • none

Release Overview

  • none

IIF list of Public Data Dictionary Variables

Operating System, System Configuration, TCS and Hardware Computers

TCS Servers / Workstations

  • none

jet computer, DSP, FPGA

  • none


  • none


  • New DeviceNet shutter and vent door drives installed during the summer. New DeviceNet encoders at each of the vent door positions and the upper shutter door positions provide tracking of vent doors similar to the shutter doors.
  • Mirror ventilation blowers were changed during the summer, with a new VFD now controlling the speed of the blowers. Currently, blowers run at 50HZ.
  • An initial ARGOS routine was added to the PLC to monitor the ARGOS chiller (CH0403).
  • The thermal PLC in the URTH now converts mirror cell thermocouple voltages into temperatures and passes those along to the ECS PLC via ControlNet.

AGw control server

  • none

Azcamserver and controller computers

  • none

FACSUM - Facility Summary

WEATHERSTATION - Weather Station

TCS Subsystems and GUIs, and significant configuration files

AOS - Adaptive Optics

    • none

DDS - Data Dictionary Server

  • DDS Version 1.4a
    • Added operations telemetry stream, a mix of 50 parameters from the DD that give an overall view of telescope operations.

    • none

ECS - Enclosure Control

  • ECS Version 5.0
    • The treehouse temperatures were added to the "thermal_computer" telemetry stream.
    • "All" (e.g., Open All) commands were implemented to support the Ventilation Doors.

  • ECSGUI Version 4.3
    • Re-instated the "all" commands for the Ventilation Doors.
    • Details for the Ventilation and Shutter Doors are permanently displayed versus "hidden".
    • The UNDEFINED designation for the Ventilation Door position is now an alarm. It is an indication that the OPEN, CLOSED, and OPEN PARTIAL flags are all "on" which is an error. Formerly, the UNDEFINED state was a warning and indicated the door was not on the OPEN/CLOSED/MIDOPEN limit switch.

ENV - Environmental Sensors

  • ENV Version 1.24
    • Add descriptions for LBT weather telemetry.
    • Split the 'noWind' timeout and severity into 'time', 'temp', 'press' and 'hum', one for each basic sensor, so a failed sensor is easier to spot.
    • Remove VATT weather reflective memory since the data is no longer available.
    • Add SMT 'tipper' (water vapor radiometer) azimuth to telemetry.
    • Remove VATT entries from the SMT weather data.

  • ENVGUI Version 2.9
    • Support new 'time', 'temp', 'press' and 'hum' severities.

IIF - Instrument Interface

  • IIF Version 8.30
    • Add moveType attribute to Offset class.
    • Remove parameters ope, np, and movetype from OffsetPointing command. (ope and np have not been used for several years.) This means the LBC will need to relink against a new libTCS (or use the ICE interface).
    • Add new LUCIFER DD variables per Tom Sargent.
    • Clean up reflective memory.
    • Make alert events in SetMultiDDEntry errors.
    • Do not perform offset if either GCS or AOS fail to pause. IssueTrak 5562.
    • Add ECS variables to the external name list per John Hill.
    • Do not stop AO in Preset if rigid secondary is set. (This was patched in 2015B as version 8.29a.)
    • Remove DIMM telemetry.
    • Put ICE logging and debug control in reflective memory so it can be controlled from the GUI.
    • Add AOReference RA/DEC variables to the external name list per John Hill.
    • Add LAT to list of TCS instruments.
    • Change name of Offset attribute 'onSky' to 'CS' (coordinate system). This is not yet supported.
    • Add S_OffsetApplied variable to the external name list so instruments can tell if a failed offset changed the pointing.
    • Make the timeout in GetTrajectory configurable.
    • Force all the "ignore" BinocularControl flags to be true in pseudo-monocular mode, and do not let the GUI unset them (IssueTrak 5680).
    • Cancel any pending synchronous Offsets when synchronous Presets start.
    • Add time stamps for status messages.

  • IFGUI Version 4.11
    • Remove telemetry control.
    • Add ICE logging/debug control.
    • Do not change the state of the ignoreBinocularControl check boxes if the command fails (IssueTrak 5680).
    • Add time stamps for status messages.

GCS - Guiding Control

  • GCS Version 4.0b
    • Addressed IT#5486 (Is -2.9 gazillion good seeing or bad?) The -2.9 gazillion value is actually the sxclass. The local variables in GCS which store the Sextractor information were effectively uninitialized. The lack of initialization was often not observed as a problem because as soon as Sextractor found the guide star the first time, the values contained reasonable data. Thereafter, if no star were found, the local GCS variables, as well as the corresponding telemetry variables, still contained the previous Sextractor results. To resolve this issue, the Sextractor variables are re-initialized for every guide cycle. This means if a guide star is not found for that cycle, the telemetry variables will contain the initialization values and not the values of the previous guide iteration. In this way one can see more easily which guide cycles "fail".
    • Modifications made to resolve IT#5000 (Request the GCS to reset the default hotspot on a Preset). This is a preliminary fix.
  • GCS Version 4.0
    • The selectAGW() is invoked when a new instrument is authorized. Always reset the filter back to the default for that instrument. Remove checking of filter range as this is done in lower-level code, AGWUnit setFilter() method. Remove extra SYSLOG messages in selectAGW() and the lower AGWUnit setFilter() method regarding the filter. This is the last piece to address IT#4887.
    • If wavefront sensing is told to resume, set the text indicator for WFS on the GCSGUI to "resuming" as soon as the request is processed. Once the WFS actually gets an image which is processed, the indicator displays "OK". This is in contrast to the "paused" indication persisting until the first exposure is completed.
    • No longer report "connected" in "AGW Unit" indicator on GCSGUI as it this state is NOT based on any real information. Once the system is running, the indicator will report "OK".
    • Data Dictionary
      • Moved data dictionary items stored in "spares" to their true identities and/or deleted obsolete items.
        • gcs.side[0|1].Spare.b[0] ==> gcs.side[0|1].agwMismatchWarning
        • gcs.side[0|1].Spare.d[0] ==> gcs.side[0|1].GuideCam.maxHotspotFromProbe
        • gcs.side[0|1].Spare.d[1] ==> gcs.side[0|1].GuideCam.XHotspot;
        • gcs.side[0|1].Spare.d[2] ==> gcs.side[0|1].GuideCam.YHotspot;
        • gcs.side[0|1].Spare.i[0] ==> gcs.side[0|1].GuideCam.absoluteTimeToLimit
        • gcs.side[0|1].Spare.i[1] ==> gcs.side[0|1].GuideCam.timeToLimit
        • gcs.side[0|1].Spare.s[3] ==> gcs.side[0|1].GuideCam.timeToLimitString
        • gcs.side[0|1].Spare.s[0] ==> no longer used
        • gcs.side[0|1].Spare.s[1] ==> no longer used
        • gcs.side[0|1].Spare.s[2] ==> no longer used
        • gcs.side[0|1].GuideCam.maxDriftFromHotspot ==> deleted
      • Deleted variables from source code used in conjunction with now deleted data dictionary items.
      • Added data dictionary items
        • gcs.side[0|1].GuideCam.acqError_x
        • gcs.side[0|1].GuideCam.acqError_y
        • gcs.side[0|1].GuideCam.guideError_x
        • gcs.side[0|1].GuideCam.guideError_y

  • GCSGUI Version 1.5
    • Deleted entries on "Guide Control" panel: "time to probe limit" and "time to CCD limit". Corresponding data dictionary items deleted as obsolete.
    • Ensure the GCSGUI can be invoked with upper- or lower-case side argument

LSS - Event Logging

  • LSS Version 4.1
    • Perform event callback processing in a separate thread to perhaps avoid event slowdown. IssueTrak 5559. Patched in build 2015B as LSS.20150513.
    • Add write-to-disk timestamp after existing one in the log file to help diagnose IssueTrak 5559. Patched in build 2015B as LSS.20150924.

  • LSSGUI Version 2.8
    • Display the current event callbacks backlog. Patched in build 2015B as LSSGUI.20150513.

MCS / mcstemp - Mount Control

    • none

OSS - Optical Support

  • OSS Version 4.1
    • For dual tertiary UMACs, support changed plc names, and allow SX UMAC to be either old one or new one.
    • New tertiary 'init' sequence: do not home either the selector or the mirror; both must be explicitly homed.
    • Add arguments to tertiary waitForInPositionAll and isInPositionAll to allow waiting for just the selector, just the mirror, or both, and to not treat limits as in position.
    • Always set the brake after a tertiary home or move.
    • Get the counter torque motor amplifier fault status and check it when checking the tertiary servo motor fault status.
    • Add 'initialized', 'selectorhomed', mirrorhomed', 'brakeset', 'inposition', counter torque amplifier fault, and counter torque motor DAC values to tertiary telemetry.
    • Do not set m1214/m614 since they are just status; kill the counter torque motor to disable it.
    • Use a configuration variable to enable/disable using the counter torque motor at all.
    • Set the tertiary DX selector axis home offset and zero it in positions.conf.

  • OSSGUI Version 3.7
    • Display the 'Init' status on the tertiary mirror form.
    • Display the counter torque amplifier fault flag on the tertiary mirror form.

PCS - Pointing Control

  • PCS Version 6.34c
    • Deleted the deprecated (actually never used) function applyTipTiltOffload(). The AOS calls PSF functionality for its offloads instead of the PCS.
    • Updated all telemetry streams to have user-friendly units (e.g., arcseconds vs radians) and better names for some variables.
  • PCS Version 6.34
    • Determined the proper computation for the current "mount point" once the final tip/tilt demands are determined. Updated both the TrajectoryGenerator and EncoderFeedback classes for this computation in case it should be used for further computation.
    • Added an event in SkyPatchUpdater class, pcs.skyPatchUpdaterFailed, when the sky patch matrices have an error on an update. This indicates a possible problem extrapolating the pointing model and could lead to a fatal error.
    • General clean up of the setEquatorialTarget (sidereal Preset) and offsetTelescopeEquatorial (sky coordinates Offset) methods, particularly with regard to the co-pointing limit check.
    • Clean up of offset command, offsetTelescopeDETXY. Removed deprecated code which handled the co-pointing limit and below the horizon checks. The offsets which are applied in this mode are comparatively small as they are meant to move a target along a long slit. John said it was not necessary to perform the co-pointing limit check in this case.
    • Fixed a bug when an asynchronous Preset would violate the Warning co-pointing limit. Previously, the message would not be returned to the instrument.
    • Implemented the initial version of the algorithm where tip/tilt demands from PCS are sent to the corresponding PSF based upon actual actions (guide update, offset request) versus the current algorithm which sends demands essentially continuously. There is also a default update interval (updateInterval2PSF in pcs.conf) which will trigger demands being sent to the corresponding PSF when no demand has been sent for the defined amount of time.
      • Added triggers to all the "action" functions in PCSSubsystem class.
      • Only the functions which are invoked by a subsystem other than the IIF have had semiphores added for synchronization.
      • Implemented SX and DX queues in the trajectory generator class in order to keep track of the incoming actions ("triggers") which activate the PCS communication with the PSFs. While it is not (strictly speaking at this time) important to know which function activated the trigger, it is important to avoid neglecting an activation by accidently clearing a trigger indicator prematurely. It is desired to avoid any race conditions in the setting and clearing of the trigger IDs.
      • Modified the TipTilt2PSF class for the new demand algorithm with regard to completion of the PCS->PSF communication and posting of the semaphores.
    • Cleaned up PCS.cpp setNewInstrument (authorization routine) - no longer set sendTT2PSF_[SX|DX]Flag and corresponding data dictionary item, pcs.side[SX].isTT2PSFEnabled, as this is done by the IIF authorization routine. This flag and data dictionary item are designed to be controlled by the IIF.
    • Explicitly named anonyous namespaces.
    • Removed the weight variable from the Guider class as it was not used.
    • Extended the sdSide enumerated type in PCSDefines.hpp to have BOTH=2.
    • Modified many routines in PCSSubsystem class use sdSide enumerations.
    • SYSLOG Improvements
      • Proper motion now reported in units of mas/yr.
      • Coordinates (RA, Dec) printed in a friendly and truncated format (hh:mm:ss.sss, +/
    • New Data Dictionary Variables
      • pcs.side[0|1].pointingStatus.guider.primeDeltaX
      • pcs.side[0|1].pointingStatus.guider.primeDeltaY
    • Telemetry Support
      • Added acquisition and guide (Predicted - Measured) guide star delta X and Y values to the SX and DX "guide" stream in units of millimeters. These values are also now in the data dictionary.
        • pcs.side[0|1].pointingStatus.guider.acqPredmMeas_[X|Y]
        • pcs.side[0|1].pointingStatus.guider.guidePredmMeas_[X|Y]
      • Added the azimuth and elevation values PCS obtains from the MCSPU to the "mountEquatorial" stream. These are the net values and best determination of the AZ and EL from all MCSPU encoder sources. These are the values used to compute the "achieved" coordinates for PCS. The azimuth has been normalized to the range 0 to 2Pi.
      • Added descriptions to all PCS telemetry streams for the stream components: mountequatorial, guide, lbcrotator, lincrotator, telescope, weather, and trajectories.
      • Added the stationID entry to the weather telemetry stream so the source of the weather information is known (0=PCS internal, 1=LBTO, 2=SMT).
      • Assigned the proper units to the telemetry stream components when possible.
      • Added all PCS-known AO (reference) star information to telemetry
      • Added the LBC deltaX/deltaY values to telemetry (units of arcseconds) to satisfy IT#5635. These values are the raw X and Y values provided by the LBC to the PCS as the parameters for the setCentroid() routine. They are currently mined from the SYSLOG by John's graphic routines. Note the LBC guide updates which are conditioned via a gain function are already stored in the telemetry stream. The new variable are called primeDelta[X|Y] in the guider stream.
      • Added "guide star" coordinates for LBC guide stream entries where the guide star coordinates are the same as the target coordinates.

    • Removed [az|el]NArc from the TrajectoryGenerator class and PCS.conf as part of an obsolete test.
    • The default update time interval for issuing optics demands to the PSFs has been set to 10s by default (variable: updateInterval2PSF).
    • The wait time between generating messages for the limits on the optics has been changed from 60 to 30 seconds.
    • Updated pointing log output location (/lbt/data/share/PointingLogs)

  • PCSGUI Version 1.11
    • Fixed reporting of AO information to the PCSGUI
    • Removed Weighting data and label
    • Removed "MONOCULAR" text

  • Pointing Kernel / Pointing Kernel tools
    • none

PMC - Primary Mirror Cell

  • PMC Version 5.35
    • Clean up thermal reflective memory definitions.
    • Add descriptions for telemetry fields.
    • Add a configurable delay before the first VxWorks request in PMC.cpp to avoid a socket select timeout. This has been patched in 2015B as version 5.34a.

    • none

PSF - Point Spread Function

  • PSF Version 6.11
    • Add descriptions for telemetry fields.

    • none


  • TCSGUI Version 2.8
    • Add start all subsystems button.
    • Make start all subsystems/stop all subsystems do each subsystem individually instead of using netconfig start/stop all so GUI can stay updated. Change the subsystem order in all NUMSUBS arrays.
    • Re-write startServers, stopServers, and stopGUIs as local loops with embedded processEvents() calls instead of looping through the main update display loop.
    • Add confirmation dialog for start all subsystems.
    • Add abort button for start/stop all subsystems.


  • none

TCS Common Software

Build system

  • Link against oacontrol version 4.3
  • Make "BuildTime" file whenever "refmem.dat" is made to record the build date/time.

commandreturn - client command status returns

  • none

commandsequencer - client/subsystem command handling

  • none

core - foundation routines

  • Syslog
    • Remove non-printable characters.

datadictionary - reflective memory and event support

  • Convert from XML data dictionary definitions to a single list per subsystem.
    • Do not make refmem.bin and event.bin since we have not used them for several years.
    • Fix ddsconfig when reading reflective memory and event list files instead of XML files.

editor - data dictionary editor

  • Convert from XML data dictionary definitions to a list file.

eventhandler - event handling

  • Remove non-printable characters.

networkconfig - subsystem management

  • Add netconfig 'start all' command to start all subsystems.
  • Add NetworkConfig::startAllSubsystems() to start all subsystems.
  • Use tcs.conf map 'subsystems' to control order of starting/stopping all subsystems.
  • Add write-to-disk timestamp after existing one in syslogserver to help diagnose IssueTrak 5559. Patched in build 2015B as syslogserver.20150924.

reflectivememory - global shared memory

  • none

rpc - communication protocol

  • none

setvalue - reflective memory access

  • none

tcs_config - tcs configuration

  • none


  • none

viewer - data dictionary viewer

  • none

TCS Tools

ddsclient - Data Dictionary Subsystem client

  • none


  • Use new "BuildTime" file for build date.



  • Telemetry release r19.
    • The next attempt at understanding why sometimes HDF5 file operations fail with no reported error. Close reading of the HDF5 documentation reveals the internal error stack does not support multi-threading (the error stack is actually a global construct), so a mutex has been implemented to protect the HDF5 error checking across all threads in a process. This will also have the effect of serializing all file append operations, which will add a small amount of time during file writing, but may have the added benefit of putting less strain on the NFS mounted filesystem.
    • Added units 'percent', 'hour', 'minute', and 'microradian'.

Instruments and Environmental Sensors

DIMM - Differential Image Motion Monitor

IRTC - Infrared Test Camera

  • IRTC Version 4.5
    • IRC
      • Support additional move types for OffsetPointing and SetOffset commands. (This requires TCS build 2015C or later.)



  • none

LBTO Weather Station

  • none

MAT - Mount Axilliary Telescope

  • none

OVMS - OPD Vibration Monitoring System

  • none

All Sky Monitor

  • none
Topic revision: r59 - 21 Aug 2019, PetrKubanek
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