Skip to content

Platform 6.4 features and Fixes

Peter Simpson edited this page Apr 30, 2018 · 2 revisions

In line with previous Platform installers, 6.4 is a cumulative release that contains all enhancements and fixes from previous Platform releases and service packs.

Key Changes in 6.4 - For Everyone

  • Leap second and DeltaUT1 Updates
    • The Platform can download current and announced future leap seconds from the Internet. Consequentially, the Platform doesn't need to be updated when new leap seconds are announced or come into effect.
    • The Platform can download DeltaUT1 predictions for the coming 90 days from the Internet.
    • The SOFA and Transform components will use the updated leap second and DeltaUT1 values to ensure the highest accuracy.
    • The current leap second and DeltaUT1 values can be entered manually if Internet access is not available.
    • Configuration of these updates is through the Diagnostics Tools / Earth Rotation Data menu.
    • Several pre-configured Internet data source URIs are provided and the application will accept a user provided URI if required.
    • A Windows schedule task is provided to automate the download process on a configurable daily, weekly or monthly basis.
    • An Internet update can also be triggered manually from the Diagnostics application.
  • Rotator Simulator - The relative Move command has been improved so that relative moves outside the range -360 to 360 are rejected while moves inside the range -360 to +360 are accepted with the target forced to the range 0 to 360. This matches the specification more accurately; thanks to Steve Barkes for finding this.
  • Focuser Simulator - Now has a short delay after a move before IsMoving returns false.
  • Focuser Simulator - Now has a logging function and check box to enable this.
  • DeltaT and DeltaUT prediction modelling was updated in April 2018 with the latest USNO data, which is considered good for at least 1 year.
  • Installer - Now names uninstall logs as such rather than naming them install logs, which was confusing.
  • Diagnostics - Now has an option to automatically open the log file at the end of the test sequence.
  • String comparison operations have been revised to best practice throughout the Platform to ensure expected operation in all locales.
  • Platform Documentation Changes
    • Telescope.DeclinationRate was updated to reference SI seconds as agreed on ASCOM Talk in March 2017.
    • Telescope.RightAscensionRate was updated to reference its units as seconds of RA per sidereal second as agreed on ASCOM Talk in March 2017.
    • Telescope Sidereal tracking rate was updated to angle per SI second as agreed on ASCOM Talk in March 2017.
    • Camera.CCDTemperature was updated to allow CCD temperature to be returned even if there is no cooler.
    • Corrected spelling of twilight throughout Platform help.
  • Platform Infrastructure and Maintainability Improvements
    • The ASCOM open source license text has been added to the Platform SubVersion repository to reflect Open Source norms.
    • All components are compiled with Visual Studio 2017 and built with the latest tool set.
    • The help compiler has been updated to the current version.
    • InstallAware has been updated to a much more recent version (InstallAware X6), removing some bugs and allowing additional features to be employed.
    • The installer now has a splash screen.
    • Except when an error occurs, the Platform and Developer installers no longer produce balloon messages. Messages now appear on the setup dialogue instead.
    • The progress bars have been re-implemented so that they move consistently from 0 to 100%
    • All C++ executables have been recompiled against the VS2017 C++ libraries.
    • The C++ v10.0 library installers have been removed and replaced with v14.0 library installers.
    • The SOFA implementation has been re-factored to improve maintainability and incorporated in the main Platform solution.

Key Changes in 6.4 - For Developers

  • The Focuser interface has been revised from IFocuserV2 to IFocuserV3.
    • The IFocuserV3.Move method is now required to work and not to throw an InvalidOperationException when a move is commanded while temperature compensation is enabled.
    • Any device specific operations required to effect the move should be hidden from the client application. e.g. if temperature compensation needs to be temporarily disabled while the move is made and subsequently re-enabled.
    • No method signatures have been changed in IFocuserV3.
    • To use the new interface in your driver: *Install the Platform 6.4 Developer's components. *Replace all references to IFocuserV2 with IFocuserV3 *Change the IFocuserV3.InterFaceVersion property to return 3 *Revise your IFocuserV3.Move code not to throw an ASCOM.InvalidOperationException exception if a move is requested when temperature compensation is enabled. *IFocuserV2 will remain available to support drivers built to this specification. *Conform has been updated to test IFocuserV3 drivers in line with the new requirement.
  • A gain control has been added to the Camera test application.
  • COM error numbers are now included in documentation so that these can be thrown directly if required, e.g. by a Delphi application.
  • The Template Wizard has been uplevelled to v6.4.
  • There is now an additional paragraph in the Time Relationships help section that clarifies how DeltaT, DeltaUT, UT and TT move relative to each other.
  • A new caching component (ASCOM.Utilities.Cache)has been added to make it easier for driver authors to build robust drivers that can handle the high polling rates that some applications utilise. The cache provides a time based expiry approach, where stale items are automatically removed after expiry. In addition the cache provides an easy to use throttling mechanic that can slow aggressive application polling to acceptable rates for the driver and hardware. Further information is provided in the remarks section of the Cache class and the property / method documentation.
  • Driver Templates - Not implemented exceptions have been removed from all Dispose methods and replaced with TODO: items.

Issues Fixed - Platform

  • Chooser no longer fails when selecting in-process COM drivers e.g. the ASCOM Focuser Simulator Driver, in locales such as Turkey which use dotted capital I characters (İ).
  • When queried, several components returned version number references to earlier Platforms rather than the current Platform.
  • The Diagnostics DeltaT test no longer throws false errors.
  • The SafetyMonitor simulator Dispose method no longer throws a NotImplementedException.
  • Calling Telescope.TrackingRates.Dispose() from one instance no longer destroys objects used by other TrackingRates instances.

Issues Fixed - Developers

  • The Developer components installer will now recognise a VS2017 install and offer to install the ASCOM driver templates.
  • TraceLogger.LogFileName now returns the full trace file path instead of an empty string when a specific log file name has been set.
  • In-process C# drivers created from ASCOM driver templates will now have fixed assembly version numbers (like C# local server, VB in-process and VB local server drivers) instead of "updated on each build" assembly version numbers). This supports a more productive development environment and avoids creating a proliferation of COM registry entries.