Software Release Notes for Build "Lucifer Com2 v3"

Release Date: Dec 3, 2008
Generic Release Name: B16
Public Release Name: Lucifer Com2 v3

Patches to the Release

January 02, 2009

  • PCS, Version 3.28e
    • Patch created before and exclusive of Version 3.28f. This is a PCS Patch to Support Mount Testing. The PCS has been modified to save values in the guider telemetry stream even under the circumstances when the guiding updates are disabled. These changes are considered an upgrade and will be incorporated in the next PCS build (Build 17) for the mountain.

December 21, 2008

  • PCS, Version 3.28f
    • The fix was done to ensure the is based on either the requested target RA and Dec coordinates as provided in the IIF PresetTarget command, or on the updated RA and Dec coordinates based upon the delta_RA and delta_Dec values as provided in the IIF OffsetPointing command (OFFSET_RADEC space). It is noted the delta values are actually provided in focal plane RA/Dec coordinates, but these values are converted into sky coordinates so the sky RA and Dec values are updated appropriately. This data dictionary variable will change during the slew as the LST is changing. However, the computation is based upon the target RA/Dec values and NOT the achieved RA/Dec values, the latter of which are computed off the encoder readings. This modification reverts the code back to the manner this data dictionary value was originally coded. If this is NOT what was wanted, we need to discuss a new algorithm.
    • It should be noted the instrument should be waiting for the command handle to return from any issued IIF command before reading critical data dictionary values. The PresetTelescope and OffsetPointing commands wait until the target is "onSource" before returning the command handle to the instrument. In this way, the instrument will not "see" any values changing due to a slew.

* Note PCS Version 3.28e is a special test patch to support mount testing. As such, code changed for Patch "e" is explicitly NOT part of Patch "f".

December 20, 2008

December 19, 2008

December 18, 2008

  • PCS, Version 3.28d
    • PCS was patched on the mountain tonight (18 December 2008) to PCS Version 3.28d. The problem resulted from an improvement done to handle sided commands. Since the PCS is not really sided at this time, the side thus far has been hardcoded to LEFT. The manner the hardcoding was handled was changed to be easier to remove in the future. However, the implementation was not quite correct, and it caused PCS to crash when LBC issue a Preset as side BOTH.

December 17, 2008

December 16, 2008

December 15, 2008

December 14, 2008

December 13, 2008

December 12, 2008

  • PCS, Version 3.28c
    • In the upgrade of how angles are managed between the various flavors of the OffsetPointing command (COORD_RADEC and COORD_DETXY), I neglected to ensure the trajectory generator which is responsible for maintaining the current position and parallactic angles was notified upon the setting of a new target via PresetTelescope. This has been fixed.

  • GCS, Version 2.0.1 B2
    • added some additional error messages to SysLog for the AzCam class for better understanding the recovery problem with lost AzCam images
    • fixed the bug that caused 2.0.0 to crash frequently when processing a preset. It was caused by a thread synchronization issue.
    • added proper error reporting to IIF (and to the instrument) if an AGw error occurs
    • implemented and tested recovery from lost AzCam images during acquisition and in the WFS loop. Let's see if this works under non-simulated conditions as well.
    • added a small precaution if GCS tries to determine a status from an incorrectly intialized AGw unit that would otherwise make it crash (issue of 2.0.1 B1)
    • added more syslog output and events to guide loop to analyze guide rate issues

  • GCS, Version 2.0.0
    • I've added the verification that a star is visible and guiding is stable before returning from acquisition and resumeGuiding. The parameters to define how many cycles the GS has to be inside the required circle is in LBT.conf (GCS.cyclesUntilStable). The maximum number of cycles until it would fail are also in LBT.conf (GCS.cycleLimit). The size of the cycle is in AIP_L.cfg (maxOffsetToHotspot).
    • changed isCollimated to behave as requested, so it will be false when offsetting and when WFS was stopped.
    • added GCS.cyclesUntilStable and GCS.cycleLimit to LBT.conf
    • changed maxOffsetToHotspot value in AIP_L.cfg from 0.75 to 0.54 arcsecs to define the maximum distance of the guide star to the hotspot for being considered good.

December 11, 2008

  • OSS
    A mutex has been added around the reads and writes which are done across threads in various string variables within the OSS. This patch will fix the occasional seg-faulting the subsystem experiences. Without the mutexes, it is possible that a read would occur in one thread while the string is being updated in the second thread. This could cause a seg-fault due to the fact that the string's internal data is being re-allocated, and the read would access a piece of recently freed memory. The mutexes will prevent this by only allowing an exclusive read or write at one time, not both.

December 10, 2008

If the 10 December 2008 PCS and/or PCS client must be rolled back, then the IIF must roll back also; This should only be done if the changes stop observing.

  • PCS, Version 3.28b
    1 The algorithm originally written to support OffsetPointing where the coordinate type is COORD_DETXY (PCS_Version-3-25, 02 October 2008) has been modified. The observer can change the pointing origin (i.e., the location in the focal plane where the target is imaged) with this command. The vital parameters are deltaX, deltaY, and deltaAngle. Formerly, there was no accommodation for a change in the angle. Further, the algorithm itself was modified in the manner it handles deltaX=deltaY=0.0. This is no longer a trigger to just go back to the base settings, regardless of the mode (MV_REL or MV_ABS). Finally, the associated reflective memory variables for the angle (dependent upon the requested rotator mode of POSITION or PARALLACTIC)
    are now properly updated when an offset is requested with OffsetPointing in either COORD_RADEC or COORD_DETXY.
    2 The maximum number of relative offsets has be increased to 1000.
    3 Since the method name was changed in the source code to conform to a trend set previously, new events were generated in support of this function. The new events (in textual format) will not be patched in this delivery; this would require a new build. However, events will be properly generated by this command as they will be generated dynamically.
    For those who search through the event logs...
    New method name: offsetTelescopeDETXY
    Old method name: updatePointingOrigin
    4 A description of the algorithm used for this method will be sent to "telescopework", as well as Marcus Jutte and Nancy Ageorges of LUCIFER.

  • IIF, Version 5.19
    Support PCS V 3.28b.
    Convert errors to warnings in OffsetPointing if probe cannot be moved.

December 3, 2008

  • PCS, Version 3.28a
    The XFLIP in the LUCIFER transform was put back to TRUE.

  • OSS
    Was updated to change a variable name mistype so the GUI could properly access shared memory for displaying the proper state of a swing arm.

  • GCS
    The Build 15 GCS AIP_L.cfg file was copied over the Build 16 file in order to use the latest values. The svn version will be replaced with the Build 15 value so the next build will have the proper values.

Release Overview

  1. ) instrastructure - fix to the get path code that is used during forking of TCS components used for networkserver, rpcserver, gshmserver and starting subsystems; fixing of the way shared memory is broadcast to newly joining gshmserver computers. Add error checking to reflective memory references using Gtype variables.
  2. ) mcspu - improved logging for trapping and understanding bad polynomials (installed nov. 19, 2008)
  3. ) GCS - improved acquisition algorithm to find faint stars and stars on gradient background; files will be copied to the /Repository; and better TCS LSS events, descriptions, and priorities.
  4. ) IRS - use the multi-client version of the IRS provided Lucifer software is updated.
  5. ) IIF - modification so LBC StepFocus and MoveFocus will not have complaints if the OSS is not available; preset mode was added to events; events added for authorization failures. The IIFGUI has a new look.
  6. ) PSF - modification so secondary control flags are correctly set when authorized instrument changes. Part of the above IIF modifications.
  7. ) telemetry - fix for supporting PCS
    • The new three telemetry streams were tested and verified to work properly on the programmer's computer with a personal copy of the MySQL server. The PCS prints to the SYSLOG whether or not the three streams have successfully registered with the database. Regardless of whether or not MySQL is running, the PCS should continue to run successfully. The programmer will take the responsibility to validate the collection of telemetry. Verified the "weather" stream to be working 16:09.
  8. ) PCS - radial correction scale factor
    • A radial correction scale factor has been incorporated for all coordinate interactions between the PCS and GCS; the scale factor generates "true" millimeters in the detector coordinate frame.
      • Values which are used to compute the corrected/scaled values, as well as the uncorrected and corrected values themselves, are written to the SYSLOG for validation purposes. The values have been verified to be correct from a mathematical standpoint on both the programmer's machine and on the Tucson Test cluster; the programmer manually verified the computation using a calculator. The on-sky validation of this change is to acquire a guide star at a radially distant location such that a comparatively large scale correction must be applied.
  9. ) PCS - affine transformation used for Lucifer.
    • The programmer modified the affine transformation used for LUCIFER. Previously, the transform temporarily incorporated an "xflip" to accommodate the manner the LUCIFER software reads out the detector. The TCS programmer was directed to remove this temporary fix as it is understood by the LUCIFER team that they need to make this correction in their code. The manifestation of a mismatch will be when a request to move East is indicated, the telescope will move West.

Specific Tests that need to be performed with the Telescope

  • Software Tests and Status Please note there is a test defined here which is an attempt to evaluate the "dawdle-snap" fix for the mount. It may be superceded by a better test as defined by the astronomer.

Patches to the Release

  • none.

Known Bugs

  • none.

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


  • none.

AGw control server

  • none.

AOS - Adaptive Optics

  • none.

ECS - Enclosure Control

  • none.

ENV - Environmental Sensors

  • none.

IIF / IRS - Instrument Interface

  • IIF Version 5.18
    • Make the default SysLog prefix on the client (instrument) include the instrument name and side. This will help with SysLog messages from IRS.
    • Add the preset mode to all the preset command events.
    • Correct the logic for requiring the OSS in MoveFocus and StepFocus.
    • Add failure events for the authorization process.
  • IIFGUI Version 1.16
    • The authorization functions have been moved to a sub GUI.
    • Displays for UTC, LST, RA, DEC, AZ, and EL have been added.
    • Colors for Mount related status indicators have been slightly modified: If the MCS is not running, red is used. If the MCS is running, but the mount is not onSource, yellow is used. Both conditions used to be red.

GCS - Guiding Control

  • GCS Version 1.9.50
    • added a 5x5 clipped mean count value instead of a single pixel to determine if there is a star in a centroid location as suggested by Dave
    • the configuration value countThreshold in AIP_l.cfg will be used if it is greater than 5 times the standard deviation of the background noise
    • added a new configuration value to AIP_L.cfg, threshMultiplier which defines the multiplication factor for the dynamically determined threshold. Set to 5.0 for now. This also affects when to use the static countThreshold as mentioned above.
    • added the additional clustered star search if standard approach fails to detect star in gradiented images. This increased detection time on empty images to about 10 seconds.
    • more details to error description when client calls failed.
    • added events for documenting delays in acquisition and probe positioning
    • added events for tracking error and warning conditions in acquisition, probe positioning and guide loop
    • fixed a bug that reported the wrong filter name and filter wavelength for the selected filter in the AGw system
    • added events for tracking warnings, errors and timing problems in WFS thread
    • Fixed memory leak in the flux and cut graphs.

LSS - Logging and Events

  • none.

MCS / mcstemp - Mount Control

  • Logging of the status of PCS polynomials has been enhanced. It should now log more useful information about whether polynomials are flowing and if so, exactly what may be wrong with them that would cause them to be ignored by MCSPU.

OSS - Optical Support

  • OSS version 1.29
    • Added code to handle the OSSDispatch report which will be retrieved from the MCSPU for the dynamic balance component.
    • Added separate update loop for reflective memory outside the component update threads. This should make the components more responsive to shutdowns and the like.
    • Added exception handling (with a syslog message) to better document any crashes which may occur.
    • Added exception handling to prevent such an event from crashing the GUI.
    • Fixed a bug with the wrong image displaying for the swing arms.

PCS - Pointing Control

  • PCS Version 3.28
    • Support routines have been added to the Guider class in order to incorporate a radial correction scale factor. The scale factor is applied (PCS->GCS) or removed (GCS->PCS) for any and all coordinate interactions between PCS and GCS. Any coordinates provided to the GCS or written to reflective memory and/or the SYSLOG have the scale factor incorporated, unless the information is written to validate specifically the radial correction (SYSLOG only). Only the PCS/pointing kernel uses the "uncorrected values"; these are for internal use only.
    • The "XFLIP" originally in the PCS LUCIFER transform has been REMOVED; this flip had been temporarily implemented to accommodate the manner in which the LUCIFER detector is read out by their control software. This has been discussed with the LUCIFER team, and it was understood they needed to make a change in their code to conform to the PCS coordinate space.
    • TELEMETRY ADDITION - Telemetry streams have been added to the PCS for the weather, Guider data, and Telescope data. The weather values are updated every 60 seconds; both the Guider and Telescope class data are changed sporadically and on-demand. The values been stored in telemetry are variables which affect the tracking trajectories. Please note that the current streams may incorporate more variables in the future. Also, additional streams remain to be implemented, but are pending a new "threaded" telemetry system as the PCS needs to generate certain data in a timely way and cannot be impeded by telemetry. New Events have also been added to the telemetry component of the PCS.
      • WEATHER The weather stream consists of temperature, pressure, and humidity which are used to compute the atmospheric refraction correction. Stream =>
      • GUIDER The stream currently contains: mjd (tai in seconds), the guide star RA and Dec, the effective wavelength, the PCS predicted position (X,Y) of the guide star, the GCS measured position (X,Y) of the guide star, the guide centroid position (X,Y), and the LBC/MAT guide centroid position (X,Y). The LBC/MAT centroids are stored as their own values as these instruments do not use the telescope AGW system, and they do not explicitly "set" a guide star. From the perspective of the PCS, these instruments Preset to a requested location, and then being issuing guide centroids. Stream => pcs.left_guider.
      • TELESCOPE This stream currently consists of: mjd (tai in seconds), the target RA and Dec, the pointing origin (X,Y), the pointing origin base coordinate (X,Y), the rotator mode and associated angle. Stream => pcs.left_telescope.
    • New reflective memory variables have been added, as well as some clean up of variable descriptions and units.
      LBC/MAT only
    • Event object has been removed from successful command return objects; it is sufficient and preferred to just return the SUCCESS indicator.
    • The reflective memory variables associated with the Guider class are now initialized on PCS startup, as well as when a new instrument is invoked.
    • The PCS was modified to include the TEL_LDFLAGS.

Preset GUI

  • PresetGUI Version 1.11
    • Removed the "stopTracking()" which was issued for every Preset issued from the GUI. It was a residual action from a previous handshaking between PCS and MCSPU; it is no longer needed.

Pointing Kernel / Pointing Kernel tools

  • none.

PMC - Primary Mirror Cell

  • Version 4.4
    • Protect against bad thermistor readings. The Agilent voltmeter reports -9.9E37 for disconnected thermistors; bad values are now set to zero.
    • Add 10000.0 to known bad thermal values before sending to telemetry. This flag can be used later to determine whether a reading is bad.

PSF - Point Spread Function

  • Version 4.25
    • Add logic to correctly set some of the secondary mirror control flags in the wavefront arbitrator depending on the currently authorized instrument. This is part of IssueTrak #1855 and ensures that the OSS is never a required subsystem if the LBC is authorized.

SDB - Star Database

  • none.


  • none.

WX - Weather Station

  • none.

TCS Common Software

Common Software

  • Add method getVarName() to RefMemDDS class to search the varOffsetTree map and return the variable name for a specified offset.
  • Add method getVarName() to SetValueInterface class to get the variable name from RefMemDDS.
  • Add the variable name as a property for all Gvariable objects. Check for errors after all accesses, and log them to SysLog with the variable name. This is to assist in diagnosing an occasional problem with reflective memory Gtype variables using invalid addresses.
  • Change the precision from 20 to 16 and use fixed width, left justified, zero fill for the string returned by getMJDString(). This is to (slightly) improve the event format in flat files.

gshmserver - global shared memory server

  • Make the SysLog prefix consistently lower case, and set the prefix early enough in the program that all messages use the correct prefix.
  • Analyze and fix method wait_and_transmit(). Correctly check for and log errors from recvfrom. Properly process any received packets. Generate log messages for inappropriate packets. This corrects the problem where when a computer joined a shared memory network, sometimes the master server would then continuously send all its memory blocks.

gshmmonitor - global shared memory monitor

  • Clean up a little, and make the analysis interval timing more accurate. List all blocks if anaylsis requested.

gshmconfig - global shared memory configuration

  • Make the SysLog prefix consistently lower case, and set the prefix early enough in the program that all messages use the correct prefix.

tcs_config - tcs configuration

  • none.

netconfig - network configuration

  • none.


  • Make the SysLog prefix consistently lower case, and set the prefix early enough in the program that all messages use the correct prefix.

networkserver - network server

  • Make the SysLog prefix consistently lower case, and set the prefix early enough in the program that all messages use the correct prefix.

rpcserver - remote procedure call server

  • Make the SysLog prefix consistently lower case, and set the prefix early enough in the program that all messages use the correct prefix.

rpcconfig - rpc configuration

  • Make the SysLog prefix consistently lower case, and set the prefix early enough in the program that all messages use the correct prefix.

TCS Tools

DDEditor - Data Dictionary Editor

  • none.

DDBrowser - Data Dictionary Browser

  • none.

DDViewer - Data Dictionary Viewer

  • none.

Event Editor

  • none.



  • none.

Instruments and Environmental Sensors

DIMM - Differential Image Monitor

  • none.


  • none.


  • none.

IRC - Infrared Test Camera Client

  • none.

LBC - LBT Binocular Camera

  • none.

LBTO Weather Station - 3DWGUI

  • none.

MAT - Mount Axillary Telescope

  • none.

Polaris Monitor

  • none.

-- NormCushing - 17 Nov 2008
Topic revision: r35 - 06 Oct 2009, NormCushing
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