Software Release Notes for Build "2013B"

Release Date: May 17, 2013
Release Name: 2013B
General Description:

Telescope Operator Overview Information

  • OSS The OSS Reconfigure form has a new option to allow swing arm configuration by just choosing the desired focal station. This option is ignored if explicit swing arm settings are made
  • PCS: The PCS now issues tip and tilt demands to the appropriate PSF in monocular mode; the tip and tilt demands are 0.0. The purpose is to trigger collimation updates. This new PCS functionality eliminates the need for John's multi_step_focus script and closes IT 4396.
  • PCS: Addressed the problem reported in IT 4551 - PCS achieved coordinates not updating. The problem was caused by the way the PCS is looking for the next unique time bin for both the mount AND rotator data. Smarter logic allows the PCS to consider the mount and rotator data separately.

Support Astronomer Overview Information

  • GCS: Integrated the MODS SFPToCCD transform into the GCS. This transform allows the GCS to move the probe to accommodate non-sidereal objects and differential atmospheric refraction - test mode.
  • GCS: Addressed the problem reported in IT 4681 - after an offset GCS is incorrectly using the stage position (which is offset by -13 mm in Y) for predicting the pupil position. The problem was caused by a missing call to setProbeProperties, now fixed IT 4681 closed.
  • PCS: PCS tip/tilt demands and PSF tip/tilt preferences are displayed on a new panel, Optics, which is invoked from the PCSGUI for easier evaluation of the binocular preference offloading algorithm. Enable/disable buttons at the top of the panel turn ON/OFF the leaking algorithm. Enable/disable buttons at the bottom of the panel turn ON/OFF the preference offloading algorithm; once this latter functionality is tested and approved, it is imagined that preference offloading will be enabled permanently, and these controls will be removed.
  • PCS: A new PCSInstrument.conf file was installed (previous: PCSInstrument.20130517.conf) where the references to the PEPSI instrument were modified (PEPSI->PEPSIPOL and PEPSIFIBER->PEPSIPFU) as requested by I. Ilyin of PEPSI Team.

The Details

New Functionality Tests that need to be performed with the Telescope

  • PCS: Binocular preference offloading. Use the PCSGUI mount form to see the PCS tip/tilt demands and the PSF tip/tilt preferences, as well as the differences. Work in progress.
  • PCS: Turn on saving the syncpos data in the MCSPU at the beginning of testing. This will record situations where the PCS achieved coordinates previously became static. If a problem is detected by PCS, the PCS will issue the "pcs.encoderFeedback.duplicateData" event separately for the mount and each rotator (IT 4551.) OK
  • GCS: Test the MODS SFPToCCD transform in the GCS with a non-sidereal target. At the least running in this mode will allow for collection of diagnostic data. Work in progress.

Patches to the Release

  • GCS Version 2.12.1 - Added diagnostic information to the GCS class for the forward and reverse transforms SFP2CCD/CCD2SFP.
  • GCS Version 2.12.2 - Changed the order of computation (ref.x - dxCCD to dxCCD - ref.x) for testing.
  • GCS Version 2.12.3 - Added patch for testing to address: IT 4681. OK. after offset GCS incorrectly used the stage position (which was offset by -13 mm in Y) for predicting the pupil position, now fixed.
  • GCS Version 2.12.4 - Corrected rounding calculation when finding subapp positions. Added found spot centroids RMS value to header when doing dynamic reconstruction. Removed WFS logging (#2, #3) to verify IT 4599.
  • PCS Version 6.25f and PCSGUI Version 1.4 on 21 June 2013 (See PCS section for details)

Known Bugs

  • none.

Release Overview

  • The OSS has been substantially rewritten following standard subsystem architecture. The OSS GUI colors have been changed to more closely follow TCS color conventions.

IIF list of Public Data Dictionary Variables

Operating System, System Configuration, TCS and Hardware Computers

TCS Servers / Workstations

  • none.

agw-control computer

  • none.

jet computer, DSP, FPGA

  • none.


  • none.


  • none.

TCS Subsystems and GUIs, and significant configuration files

AGw control server

  • none.

AOS - Adaptive Optics

  • none

ECS - Enclosure Control

  • none.

ENV - Environmental Sensors

  • ENV Version 1.16
    • Change the LBT weather data change time from 60 to 180 seconds (IssueTrak 4459). This means the data is allowed to not change for 180 seconds before we mark the weather station as invalid.
    • Issue events when the LBT and SMT weather station validity flags change state.
    • Correctly store front wind directions in telemetry (IssueTrak 4597).

  • ENVGUI Version 2.3
    • Add R0 to the DIMM display.

IIF - Instrument Interface

  • IIF Version 8.21
    • Add shutter door open flags to the external data dictionary list (IssueTrak 4105).
    • Add error checking in the ICE interface for string values which represent enums in C++. An error will now be returned for invalid values.
    • Correct the check for failed sync Presets and Offsets so if the command is repeated it will not be rejected as a duplicate.
    • Clear the sync Preset and Offset waiting flags on CLEARSYNCPRESET and CLEARSYNCOFFSET so sync waits will work correctly if a Preset or Offset command had failed before the CLEARSYNC operation.
    • Correct asynchronous Preset wait logic so certain failures do not leave the mutex locked.
    • Add event for asynchronous Preset received if the Preset must wait.
    • Use new PCS command enableTCSDemands() in Preset and Offset to disable other subsystems from affecting the PCS during IIF command processing.
    • Add R0 to DIMM reflective memory and telemetry.
    • Add PCS locking to Preset, OffsetPointing and UpdateNonSiderealTarget per request from Michele.
    • Change the default time threshold for skipping mirror collimation in Offsets from 120 to 30 seconds per request of JMH.
    • Add SYNCOFFSET specific check for accepting BinocularControl commands. This is to aid in managing LBC when used in a mixed instrument situation.
    • First cut at implementing mount balancing (a.k.a. binocular range balancing) in Presets and Offsets. The PSFs are asked to send their tip/tilt preferences to the PCS, who then calculates new pointing and mount values. The pointing values are retrieved by the IIF and sent to the PSFs before the mirrors are collimated.
    • Change instrument names 'PEPSI' to 'PEPSIPOL' and 'PEPSIFIBER' to 'PEPSIPFU' at the request of Ilya.

  • IIFGUI Version 4.3
    • Add displays for new MCSPU EL and AZ onSource flags.
    • Add support for SYNCOFFSET specific acceptBinocularControl command.
    • Change instrument names 'PEPSI' to 'PEPSIPOL' and 'PEPSIFIBER' to 'PEPSIPFU' at the request of Ilya.

GCS - Guiding Control

  • GCS Version 2.12.0
    • Correct dynamic reconstruction code so the flat vector will work as desired.
    • Integrated the MODS SFPToCCD transform into the GCS. This transform allows the GCS to move the probe to accommodate non-sidereal objects and differential atmospheric refraction. A new delivery of MODS software was placed into SVN and a new library was built for GCS.

LSS - Logging and Events

  • none

MCS / mcstemp - Mount Control

  • none

OSS - Optical Support

  • OSS Version 3.1
    • Convert to standard subsystem: Remove component class and move code in gshm, config, and telemetry classes into main classes. Remove unnecessary methods setHost, getHost, getSeverityVal, getStateVal, getStatusVal, getStateMsg, getStatusMsg. Remove many internal variables and methods by writing directly to shared memory. Remove much exception handling. Removed some apparently unneeded mutexes. Remove CmdInterface class. Clean up namespaces. Log events for more errors. Clean up SYSLOG messages. Clean up Main, especially signal handling. Rename Subsystem class to OSSSubsystem. Add Main.hpp. Remove owner constructs. Generate proper start, stop, failure events for all client methods. Put telemetry callbacks in Main. Convert to simple side variable. Convert TCSConfigFile calls to getParameter calls. Add all required parameters to oss.conf. Convert clients to standard CSQCommand and ArgumentList classes. Remove CmptClient class. Add all required variables to oss.conf. Cleaned up events - added telemetry events and new command events. Clean up shared memory - add new variables and remove unneeded ones.
    • SendRPC() methods changed to return a CommandReturn object.
    • Move reconfigure() from GUI to swing arm code.
    • Add sound files for reconfigure returns.
    • Add mutexes to protect mirror init, home, and moves from colliding (IssueTrak 4395).
    • Separate TertiaryMirror::startup and deinit commands and SecondaryMirror::home and openBrake commands from action code so init commands do not issue multiple events.
    • Clean up init and home commands.
    • At end of mirror moves check move reached correct position (IssueTrak 3771).
    • Allow mirrors to be positioned in simulation mode.
    • Change reflective memory BIT type to BOOL type to make GUI access simpler.
    • Rework swing arms power on/off logic to correctly handle power on hold off.
    • Correct swing arm wait for queue logic.
    • Add timeout to secondary::waitForInPositionAll().
    • Use secondary axis[2]inPosition for axis[3] only for in position checks; display and put in telemetry the real value.
    • Change secondary update rate from 2 to 5 Hz.
    • Keep secondary commanded position and use to calculate relative moves.
    • Add secondary telemetry data as requested by engineering. Add values to Axis class for this telemetry. Do not write error counts to Syslog since they are now in telemetry.
    • Initialize secondary connect flag so connect() is always called once.
    • Add loop and wait for secondary and tertiary test for in position after move.
    • Reorganize dynamic balance and secondary mirror telemetry so there is one subsystem and two streams. This now matches the tertiary mirror telemetry and makes more sense.
    • Put thread update time in oss.conf for secondary mirror and tertiary mirror threads.
    • Keep commanded position for the tertiary and put them and the absolute positions in telemetry.
    • Clean up focal station relative position handling.
    • Add needed tertiary umac M variables definitions in init().
    • Clean up selected swing arm logic.
    • Add swing arm static data telemetry.

  • OSSGUI Version 3.0
    • Convert to standard GUI: Clean up namespaces. Remove setOwner() methods and constructors that take owner. Add About Box. Simplify window titles. Change isActive() to isRunning(). Convert to simple side. Remove owner methods and variables. Clean up TCS event handling - post events to QT instead of direct writing into display. Convert child forms to QDialog. Make form pointers global so only one instance of each form is ever made. Close all forms on exit. Use move() method so form positions are remembered across close(). Change fonts to 'Nimbus Sans L'. Convert to standard palette for all forms and remove style sheets; all widgets now look the same as in Designer. Set font size in form constructor and only change foreground/background colors in GUI controls. Remove unused colors and simplify color handling. Add side control in Event display. Change displays from line edits to labels. Convert to GType/SetValueInterface reflective memory access. Adjust widget size and spacing to improve appearance.
    • To improve performance when displaying remotely, only set icons when necessary.
    • Remove non-functional buttons "Go" and "Halt" from Reconfigure form (IssueTrak 3845).
    • Rework reconfigure - put code in subsystem, disable buttons while busy, add busy/idle annunciator, and add configuration by focal station.
    • Start the Events form when GUI is launched but keep hidden.
    • Add button on Secondary and Tertiary forms to load the position edit boxes from the current positions.
    • Lighten gray background for inactive status displays.
    • Add tertiary focal station relative moves.

PCS - Pointing Control

  • PCS Version 6.25f
    • Created a new command to allow the leak rate to be turned on/off by being ENABLED/DISABLED. In reality, the leak rate is disabled by setting it to 0.0. When the leak rate is enabled, the rate is set according to the instrument combination and the default rates for the respective instruments in the PCSInstrument.conf file. It is not desired to set the rate in real-time from the PCSGUI.
      • Updated pcsclient program for testing.
      • Modified PCSGUI to accommodate new the display and functionality.
    • Fixed the problem with the PSF preference offloading. The PSF preference values were mistakenly set to zero when both sides of the telescope were locked. This error means the PCS demands would not bracket the base preference compromise values when leaking was on.
    • Removed the [tip|tilt]sign[SX|DX] multiplication on the PCS demands going into Telemetry. The telemetry values are in the PCS context, but they are stored with units of arcseconds.
    • For the combined TargetOffset commands, do NOT issue a warning event after presetting on the target and before performing the offset. The warning would be the bookend for the start event which is improper. The low-level commands performing the actual request are issuing the appropriate events anyway.
    • Fixed the bug which always returned a WARNING status when issuing the setNSTargetOffset() command on side BOTH. The warning event was being set erroneously. The improper WARNING would have also been issued had the function been invoked as a monocular command.
    • The applyRBTipTilt() command is invoked by PSF in response to the PCS call to adjustPointing(). In monocular mode, applyRBTipTilt() just returns to the PSF as SUCCESS, and no events are generated. This was done to avoid generating excessive events as formerly a set of START/WARNING event pairs were generated to let the users know that this command currently does not do anything in monocular mode.
    • Reduced sleep time at the end of the thread which controls the PCS->PSF communication to 1ms. There is already a 0.5s sleep in the thread which forces the PCS not to saturate the PSF with function calls.

  • PCS Version 6.25e
    • Addressed the problem reported in IT 4551 - PCS achieved coordinates not updating. The problem was caused by the way the PCS is looking for the next unique time bin for both the mount AND rotator data. Two duplicates are expected from the MCSPU as the PCS is updating many necessary variables at 20 Hz, but the mount information is only generated at 10 Hz. The time bins for the mount and the rotator data are not necessarily in sync. Smarter logic allows the PCS to consider the mount and rotator data separately.
    • Generalized the use of the mount virtual telescope xy2sky(xLoc, yLoc) method so that the parameters (xLoc, yLoc) are the current pointing origin values and not (0.0, 0.0); the (0.0, 0.0) values define the rotator center. This update yields the equatorial coordinates associated with the current pointing origin and is to support instruments which will not necessarily use the rotator center as the pointing origin (i.e., Pathfinder and Lucifer).
    • Communication of the PCS tips/tilts to the PSF method adjustPointing() has been modified to ensure that as soon as the PSF method returns, indicating the optics are in place, the PCS command which triggered the action returns to its caller. The 0.5 second delay is only to buffer the PCS calls to the PSF adjustPointing().
    • Modified all references, variables, and file names for the PEPSI instrument at the request of I. Ilyin. The new nomenclature is PEPSIPOL (formerly PEPSI) and PEPSIPFU (formerly PEPSIFIBER). This change requires a new PCSInstrument.conf file.
    • The cold-start target has been upgraded to be Polaris instead of RA=LST, Dec=32.0 deg; the cold start is the seed to generate tracking polynomials. It should be noted that the polynomials will only begin transmission to the MCSPU upon the first Preset.
    • The binocular locking scheme in the PCS has been modified. PCS will unlock and relock all of its commands for which the PCS is essentially the only subsystem being invoked to satisfy the request. For the "super" commands, Preset and Offset, the PCS will unlock and the IIF will relock the telescope sides as appropriate at the end of the command sequence.
    • The PCS issues tip and tilt demands to the appropriate PSF in monocular mode; the tip and tilt demands are 0.0. The purpose is to trigger collimation updates. This new PCS functionality eliminates the need for John's multi_step_focus script and closes IT 4396.
    • Cleaned up the setNSEphemeris() method (non-sidereal target based upon a JPL ephemeris file) to make the routine properly binocular.
    • Created a new client command, enableTCSDemands(), for use by the IIF. This command allows the IIF to enable/disable all demands being made by other subsystems on the PCS, as well as enable/disable the PCS tip and tilt demands on the PSFL/R. This is to address the situation where a request could be activated due to an incoming Preset/Offset, and it is actually desired to stop all actions.
    • Fixed a bug in the display and underlying data dictionary item representing the sided angle for when the rotator is in the parallactic mode. The angle for the rotator in parallactic mode should be the requested angle found in the Preset, or an update to the Preset angle due to an Offset request. This angle stays fixed when the rotator is in parallactic mode; the position angle updates with time. This fix is for display/informational purposes only.

  • PCSGUI Version 1.4
    • Added a new form for status and control of the Optics information and removed any optics information from the mount form. The new form displays the PSF preference offloading (tips/tilts), the base tip/tilt compromise computed whenever both sides of the telescope are unlocked, and the PCS tip/tilt computed demands. The leak rate is also displayed, and leaking can be turned enabled/disabled in real-time. Finally, the master override on the use of preference offloading is also displayed on this form to enable or disable the offloading.

  • PCSGUI Version 1.3
    • Added the PCS tip/tilt demands and the PSF preference offload tip/tilt requests to a temporary panel on the "mount" form of the PCSGUI. The absolute difference of these values is also displayed. This temporary change was done to allow for more efficient evaluation of the binocular preference offloading algorithm. Further, enable and disable buttons are available as the manual override for enabling/disabling the ability of the PCS to perform the perference offloading. Two new data dictionary items have been created in support of this functionality: pcs.side[0|1].optics.diff[Tip|Tilt]RB.

Pointing Kernel / Pointing Kernel tools

  • none.

PMC - Primary Mirror Cell

  • PMC Version 5.26
    • Do not disable mirror ventilation control when the system is defrosting. This will make the temperature more stable on humid nights, instead of forcing the set point up and down as the defrosting turns off and on.

  • PMCGUI Version 6.2
    • Add mirror ventilation defrosting display.

PSF - Point Spread Function

  • PSF Version 6.2
    • Modify adjustPointing() with coll = false to do the complete collimation calculation so tip/tilts sent to PCS are correct. Save and restore global data around the calculation.
    • Change instrument names 'PEPSI' to 'PEPSIPOL' and 'PEPSIFIBER' to 'PEPSIPFU' at request if Ilya.

  • PSFGUI Version 6.2
    • Change primary mirror form button labels for clarity.
    • Add nanometer units label on Zernike coefficients in primary form (IssueTrak 4636).


  • none.

WX - Weather Station

  • none.

TCS Common Software

commandreturn - client command status returns

  • none.

commandsequencer - client/subsystem command handling

  • none.

core - foundation routines

  • Clean up SYSLOG messages in Configuration class.

datadictionary - reflective memory and event support

  • none.

eventhandler - event handling

  • none.

networkconfig - subsystem management

  • Stop writing TCSSYSLOG-lock file in syslogserver. Use System::isRunning() in netconfig to detect a running syslogserver.

reflectivememory - global shared memory

  • none.

rpc - communication protocol

  • none.

setvalue - reflective memory access

  • none

tcs_config - tcs configuration

  • none.

TCS Tools

DDEditor - Data Dictionary Editor

  • none.

DDBrowser - Data Dictionary Browser

  • none.

DDViewer - Data Dictionary Viewer

  • none.

Event Editor

  • none.



  • Since directory creation sometimes fails when it shouldn't, try the mkdir() twice with 0.1 sec delay before returning an error when making the hdf5 directory tree.
  • Add units centimeter, millisecond, fahrenheit, square foot, square inch, liter, milliliter, cubic foot, cubic inch, torr, kilogram meter, kilogram meter per second, foot pound.

Instruments and Environmental Sensors

DIMM - Differential Image Motion Monitor

  • DIMM software version 2.8
    • R0 value written to data dictionary and telemetry
    • Modified TCS errors to disconnect the mount because it doesn't reconnect to TCS anyway - has to be restarted.
    • print a message to the client when the 300 FITS images are dumped

IRTC - Infrared Test Camera

  • Add standard success response to IRC Remove command.
  • Make NSIGUI ephemeris and log files rw for everyone. This allows different users to get target data for the same target. Each access overwrites the last one, but since the targets are the same this is OK.
  • Improve font in NSIGUI.
  • Change instrument names 'PEPSI' to 'PEPSIPOL' and 'PEPSIFIBER' to 'PEPSIPFU' at the request of Ilya.

LBC - LBT Binocular Camera

  • none.

LBTO Weather Station - 3DWGUI

  • none.

MAT - Mount Axilliary Telescope

  • none.

All Sky Monitor

  • none.

-- MicheleDeLaPena - 29 Apr 2013
Topic revision: r16 - 21 Jun 2013, TarasGolota
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