}

Documentation updates 2015-09-10

1.4.2 2020-10-20

  • tag made from lineTerminator branch (need to eventually merge 2.5m and 3.5m TCCs)
  • increase precision of axis position outputs
  • handle NaN values for reported temperatures
  • modified testLostFocusCommand unittest, it seemed to have been failing in previous tags?

1.4.0 2019-10-16

  • Change MCP port for Linux-based MCP. Remove SET.TIME in axis initialization. Increase initialization timeout.

1.2.4 2017-09-12

  • Fix unittests.

1.2.3 2017-09-12

  • Terminate axis controller strings with \r (new terminal servers installed in 2017)
  • Updated tpoint manual and updated inst data fit documentation.
  • Modernizing the instDataFit manual, bringing it up to date with the new tcc.
  • Update the TPOINT manual from Version 18.18, for Unix 2nd October 2011 to Version 18.20, for Unix 10th December 2011.
  • Added a direct link to the TPOINT manual from the main TCC documentation page.

1.2.2 2015-06-15

  • Bug fix: Eliminated a race condition in which an additional MOVE PVT would occasionally be queued after axes were commanded to stop.

1.2.1 2015-06-05

  • Bug fix: the final MOVE PVT command of a slew was incorrect for some axes (all but the last axis to arrive). This resulted in unwanted motion at the end of slews and is likely the main cause of "out of closed loop" errors on the SDSS 2.5m telescope. Thanks to Dan Long for discovering this bug.

1.2.0 2015-06-04

  • Guide probe data now uses the position of the center of the instrument rotator with respect to the guide probe, instead of the other way around (rot_gp_xy instead of gp_rot_xy). This makes it compatible with instrument position data (rot_inst_xy), which greatly simplifies fitting guider instrument data and eliminates a long-standing source of confusion. To convert from old gp_rot_xy to new rot_gp_xy do the following in Python:
                from coordConv import rot2D
                rot_gp_xy = rot2D(-gp_rot_xy[0], -gp_rot_xy[1], rot_gim_ang)
                
    and the inverse transformation is:
                gp_rot_xy = rot2D(-rot_gp_xy[0], -rot_gp_xy[1], -rot_gim_ang)
                
  • Tweak the way tracking, collimation, and UDP broadcasts are scheduled to make the code a bit more uniform and robust.
  • SDSS only: improve the log message that shows data sent to the SDSS MCP, so it includes the axis name.
  • Updated the links to the coordConv, twistedActor and tcc repositories.
  • Improved the Operator's Manual section on logs, including listing the locations of axis controller logs.

1.1.0 2015-04-14

  • Show collimation failures, rather than silence.
  • Output axis status before init command finishes.

1.0.9 2015-04-6

  • Removal of sdss multiplexor. That job is now handled in via sdssAxisDevice.
  • Bug Fix: Fixed occasional loss of focus commands due race condition in collimateTimer.

1.0.8 2015-03-11

  • Bug Fix: Fixed failing log statement in multiplexor

1.0.7 2015-03-10

  • Add logging of whole queue in multiplexor.
  • AxisDevice: Auto init callback added to all dev commands except init (statusinit was previously exempt).
  • AxisDevice: Reply buffer is now cleared before a new command is started.
  • Stop outputting message code "e" because the 3.5m hub cannot handle it.
  • Made axis initialization more robust and faster by handling replies in a better way and by improving the test for whether a non-INIT command has failed (and thus should trigger an automatic INIT).
  • Eliminated AxisDevice.startCmdList; call startCmd repeatedly, instead.
  • Bug fix: MirrorDevice.init was not returning the userCmd.
  • Added SET.TIME in axis initialization sequence (potentially necessary for MCP, eg after a hard reboot). Full sequence (for each axis): INIT-->SET.TIME-->STATUS.
  • Stop outputting message code "e" because the 3.5m hub cannot handle it.
  • Made axis initialization more robust and faster by handling replies in a better way and by improving the test for whether a non-INIT command has failed (and thus should trigger an automatic INIT).
  • Eliminated AxisDevice.startCmdList; call startCmd repeatedly, instead.
  • Bug fix: MirrorDevice.init was not returning the userCmd.

1.0.6 2015-02-17

  • An Axis DTime change of > 0.1 seconds is now required for triggering an axis status output.

1.0.5 2015-02-05

  • Bug fix: axis init timer cancelled when command finishes, this fixes a synchronization issue when an init kills a currently executing init.
  • Bug fix: AxisDeviceSet.startCmd ignored its userCmd argument.
  • Use message code "e" instead of "w" for bad axis status.
  • Modify the broadcast command to use "e" for error and "f" for fatal, instead of "f" for error and "!" for fatal.
  • Added a software license (BSD-3 in doc/license.txt).
  • Updated the Operator's Manual to improve information for the SDSS 2.5m.

1.0.4 2015-01-07

  • Use standard PVT formatting for TelMount, RotMount and RotPhys; only two digits after the decimal point were being shown.
  • Scale factor and various values from the AxeLim and Tune blocks are shown when one connects.
  • The "set weather" command no longer waits for the collimation update to finish before reporting completion. This matches the old TCC's behavior and should reduce the danger of timeouts for clients using the command.
  • Fixed two broken links to Mirror Controller Actor manual in the TCC Operator's Manual.
  • Bug fix: axis status would report failure if the axis controller status was bad.
  • Increased the chances of axis controller INIT succeeding when it interrupts another command, by waiting longer for the current command to finish.
  • For the axis controllers: do not automatically re-issue INIT if INIT fails.
  • Removed use of two callbacks in MirrorDeviceSet that were no-ops.
  • Bug fix: "axis stop" sent STOP instead of MOVE to the axis controllers, but STOP is nonstandard and not supported by the SDSS MCP.
  • Bug fix: the time limit for axis init was too short (due to a bug fixed in twistedActor 1.0.4b2) which caused problems for SDSS. Also simplified the default time limit code in the tcc.
  • Bug fix: AxisDevice would not clear its reply buffer if the current command was already done.
  • Improved logging from the MCP multiplexor.
  • Bug fix: some keywords were not being shown, incuding AxisBadStatusMask, AxisWarnStatusMask and AxisMaxDTime (though these were shown for the "set instrument" command, but using the wrong keyword names).
  • Bug fix: keywords for the AxeLim and Tune blocks were not shown when a block was loaded.
  • Bug fix: rotator guider correction was applied to physical rotator position instead of mount rotator position. For rotators with scale < 0 this applied the correction backwards.
  • Added extra logging to monitor the axis device reply buffer.
  • Bug fix: "set inst" would not report failure if the tcc could not connect to the rotator (due to a bug in the code that was trying to fail the command).
  • Bug fix: the automatic status process tried to get status from disconnected axes. (Explicit status commands still do, by design.)
  • Updated ChangesFromOldTCC.html to reflect the fact that the Broadcast keyword was restored (it was still listed as deleted).
  • Made connecting and disconnecting to the axis controllers more reliable with the following changes:
    • Improved the way status is queued.
    • Increased the default time limit for connection and disconnection to the axis controllers (it is very slow on the SDSS, likely due to using the multiplexor).
    • Modified the axis and mirror commands to use the default time limit if a time limit is not specified.

1.0.3 2014-12-16

  • The "talk" command now shows all replies.
  • Changed MCPMultiplexor to log to LOG_LOCAL4 instead of LOG_LOCAL1 (which is used by the tcc).
  • Bug fix: the mcp multiplexor was filtering a few printable characters from replies, due to a typo.
  • Increased default time limit for axis controller commands from 2 to 5 seconds. This may not be needed, but gives the SDSS 2.5m more margin.
  • Updated the main TCC documentation page to include links to the mirror controller manual, axis controller manual, etc.

1.0.2 2014-11-10

  • Bug fix: axis limits were not being properly enforced while tracking. Violations were flagged but the axis would keep tracking.
  • Improved limit checking while tracking: position, velocity and acceleration limits are all checked, and over the whole path segement.
  • Improved track/chebyshev to handle errors better. In particular:
    • Track/cheby fails with a useful error message if the current time is invalid for any of the three Chebyshev polynomials.
    • ChebyshevPolynomial raises an exception if maxX <= minX and returns nan if x is out of range.
    • If you track off the end of a Chebyshev polynomial, axes will halt because the position cannot be computed. A possible future enhancement is to give a clearer message and perhaps a warning as Chebyshev tracking is about to end.
  • Fleshed out support for the SDSS 2.5m telescope.

1.0.1 2014-10-31

  • Bug fix: mull rotator position and status when switching to an instrument with no rotator.
  • Bug fix: listen to mirror state keyword instead of nonexistent maxDuration keyword when setting time limit of mirror commands.

1.0.0 2014-10-30

  • Mirror controller keywords how are forwarded with the original message code (severity).

0.9.8 2014-10-24

  • Improved the help command:
    • help <cmd> <sub-command> did not work
    • help now allows command name (and sub-command name) abbreviations
    • Some help strings were not in valid message=keyword format
  • Improve documentation of Chebyshev polynomials in the TCC Command manual and the output of "show block obj".

0.9.7 2014-10-21

  • Fix PR 1547:
    • Set inst did not initialize the new rotator if changing rotators. (This was mostly fixed in twistedActor 0.9.4).
    • Set inst did not set rotType=None when changing rotators.
    • If an track, rotate or offset command specified an unreasonable velocity, the new value was accepted (but not applied). Now the command is rejected if abs(axis vel) > 0.80 * max vel.

2014-10-17 documentation update

  • Added missing information to the commands manual about Track/Chebyshev.

0.9.6 2014-10-08

  • Made compatible with more modern C++ compilers, while retaining backwards compatibility, by using boost::tr1 for array.

0.9.5 2014-10-08

  • Removed the tcc command "mirror reset", to reduce the danger of accidentally un-homing the mirrors.
  • Bug fix: the actMount entries in UDP packets reported the wrong position, due to unwarranted extrapolation.

0.9.4 2014-10-08

  • "axis initialize" now reconnects any axis controllers that were disconnected.
  • "mirror initialize" now reconnects any mirror controllers that were disconnected. A separate update to mirrorCtl is planned that will automatically reconnect a disconnected Galil to the mirror controller actor.
  • Bug fix: MoveItems showed values as Y that were unchanged if they were NaN or invalid PVTs before and after.

0.9.3 2014-09-24

  • Modernized the exception catching syntax.

0.9.2 2014-09-22

  • UDP packet version 2.4: added fields AxisErrCode, ActMount and AxisStatusWord.
  • Minor tweaks to fieldWrapper.py to eliminate warnings from the pyflakes linter and from Doxygen.

0.9.1 2014-09-09

  • Bug fix: ptCorr was mis-calling getCoordSys.

0.9.0 2014-09-03

  • Improve robustness of tracking unit tests by not checking actor state while a slew is starting. This avoids the problem that if the computer runs the test too slowly then the actor may think the slew has finished while the test is looking for a state indicating starting.

0.8.9 2014-09-02

  • Fix two unit tests that relied on port 3500 and thus would not run if the TCC was running.
  • Improved the robustness of testTrackFromSlew by lengthening the initial slew that gets superseded.
  • Document how to switch TCC versions in the Operator's Manual.

0.8.7.1 2014-08-29

  • Fixed the reported version (was 0.8.8).
  • Commands manual update: fixed incorrect description of date for several coordinate systems.

0.8.7 2014-08-29

  • Modified PosRefCatalog.findStar to warn and continue if it could not compute the position for a star (a problem seen in the 2014-08-18 log, reported as "Could not compute roll and pitch").
  • Updated the message keyword dictionary document.
  • Updated documentation links to coordConv, twistedActor and mirrorCtrl documentation.

0.8.6 2014-08-27

  • Added an extra collimation update shortly before each slew ends (unless collimation updates not wanted). The advance time is controlled by new tune block parameter collimateSlewEnd.
  • Added missing tpoint.pdf manual.

0.8.5 2014-08-27

  • Fixed a bug in the unit test testConvertCmd.py.

0.8.4 2014-08-27

  • Fixed lunar tracking by updating the code to use coordConv 0.9.8.
  • Bug fix: the "show object" command now shows all uncomputed values, and keywords are shown in the desired order.
  • Bug fix: "Moved" and "MoveItems" are now shown after an uncomputed offset.
  • Bug fix: removed an unwanted newline from the end of an error message.
  • Improved the robustness of tracking unit tests (testTrackFromSlew still has marginal timing, some of which is intrinsic).

0.8.3 2014-08-19

First version with version history.