ECS 2.26 inspects 12 instrument alarms from the ECS PLC. These originate at the instruments and cannot be cleared or reset in the ECS; they must be handled at the instrument. Note that shorting plugs must be installed for any instruments not using an alarm in the alarm panel located in the ULTH.
ECSGUI 1.35 has a new instrument alarm page that displays the alarm status of each instrument.
Clear extended status at the end of Presets and Offsets.
In Preset generate left rotator, right rotator, and AZ unwrap flags and pass them to the MCS in newpreset(). Clear the flags at the end of the Preset.
Add support in Preset for an embedded offset with a non-sidereal target.
Improve the ICE Factory interface with new methods to get proxy information, and force new proxy creation if the proxy definition has changed. This will allow an instrument to make (create) a new proxy with a slightly different definition (i.e., different side) without having to destroy the old proxy, or stop/start the IIF.
Check for valid side, instrument, and focal station in the IIF class constructor, instead of waiting for the first command to be issued.
Created the combination Preset/Offset command for non-sidereal targets, and updated the pcs client test program to accommate this new client function.
Further modified the locking algorithm again. While the previous fix addressed the glitches seen associated with a "move" (i.e., guide update, offset), the current modification removes any change to the locking state at the conclusion of a "move". This forces the tip/tilts on either side of the telescope to be equal and opposite when a combined move (both or synchronized) is requested. More work may need to be done here to accommodate binocular range balancing.
Modified the updateGuideOrigin() function to accommodate better one side of a synchronized pointing correction being aborted. GCS will invoke a PCS function to clear the semaphores under the condition that the GCS is unable to determine the actual guide star focal plane coordinates on a particular side. Aborting the semaphore will allow the pointing correction on the "other" side to continue to a successful completion. The command return to the GCS will be a warning due to the synchronized correction being aborted.
Modified telemetry events to be errors versus warnings and added the "sample_dropped" exception.
Implemented the proper fix to accommodate the rotator zeropoint AND scale factor when backcomputing the RA and Dec achieved coordinates as based upon the telescope encoder values. Reverse the computation to derive the proper solution.
Improved the locking algorithm in an effort to address race conditions which allowed certain actions to happen in the trajectory generation loop. These actions manifested themselves as discontinuities in the trajectories, and hence, as discontinuities in the data (LBC images). A mutex was added which is shared between the PCS mediator class which handles all client requests and the trajectory generation class which can unlock a telescope side to make small changes to the trajectories. The mutex ensures that only one entity is manipulating the locking at any instant, making the algorithm more predictable. Further, the logic which handles the locking/unlocking in every client request was modified.
Implemented the proper algorithm which creates a guide star for LBC in non-sidereal mode which is the sidereal equivalent of the target at a specific time. In particular, create the guide star on each guide update which is (0,0) and the instrument is LBC. This would be for each new dither position and each new exposure. This fix supersedes all previous patches implemented in BP14 to address this issue. The key to the proper fix was not only to update the autoGuider virtual telescopes, but to also invoke various methods on the autoGuiders to ensure all the pointing kernel processes are updated.
Let the system know the ephemeris file for the specified non-sidereal target has been read and the name of the file.
Modified the interface to applyRBTipTilt() which is the function that accommodates the PSF requested range balanced tip/tilt values, and their associated weights. The interface machinery is in place, but the full blown algorithm from Andrew's documentation on how to combine the information is not yet coded.