Click or drag to resize

Version 6.4

Introduction

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.

Note Note

Driver and application developers: In order to maintain a healthy code base, some tidying up is planned for the next major update and details of the changes are given in the Deprecated Features section below. Please will you review this and update your applications and drivers as advised; these changes are not scheduled for introduction until Q1 2017 at the earliest. In the meantime service packs will be issued as required to correct bugs.

Platform Prerequisites

Platform 6.4 requires the following .NET framework version and library:

  • .NET Framework 4 Client or .NET Framework 4 Full Installation or later
  • For WIndows 8 and later the .NET Framework 3.5 option must be enabled in Control Panel / Programs and Features / Turn Windows Features On and Off
  • Visual C++ 14.0 libraries

While previous Platforms required .NET Framework 3.5, Platform 6.4 requires that .NET Framework 4 or later is installed on your PC. Framework 4 has been available for a number of years and is provided for all operating systems that the Platform supports (Windows XP onwards). This change is to enable Platform components to take advantage of the new features that Framework 4 provides.

The installer will advise you if your PC does not have the required support and will request that you install it before continuing with the installation. The framework can be downloaded from the Microsoft Download Centre please check under "Popular Downloads - Developer Tools" if Framework 4 is not otherwise listed.

The Platform setup will install the C++ 14 libraries if they are not already present on your PC.

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 automatic update can be triggered manually from the Diagnostics application.

    Please see Earth Rotation Parameters for further information.

  • 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 modeling 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 refactored 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 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.
  • 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.
  • Driver Templates - Not implemented exceptions have been removed from all Dispose methods and replaced with TODO: items.
  • A new section on Astronomical Coordinates has been added to the Developer Information section.
  • 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.
  • All Platform documentation references to "local topocentric" have been shortened to "topocentric". The rationale for this is documented in [72a95b28-bbe2-4c7d-bc03-2d6ab324b6f7]. In addition, the EquatorialCoordinateType.equLocalTopocentric enum member has been deprecated in favour of EquatorialCoordinateType.equTopocentric. This is a non-breaking change, but use of the equLocalTopocentric member will now give rise to a compiler warning and suggestion to use equTopocentric instead.
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.
  • A security change in Inno Installer, introduced in Inno v5.5.9, prevented ASCOM.Utilities from being used in Inno Pascal script code. This release contains a fix for the issue although it is of limited value. This is because the fix only makes Inno v5.5.9 installers work on Platform 6.4 or later, if users try to run 5.5.9 installers on earlier Platforms the issue will resurface and installers will fail. If you want to use any of the ASCOM support utilities in your Inno installer, your best course of action is to use Inno 5.5.8 or earlier.
  • The Driver Installer template has been updated so that the installers it creates can detect the installed Platform version without using the ASCOM.Utilities component. This ensures that these installers will work on all ASCOM Platforms and with Inno 5.5.9 and future Inno versions.
Known Limitations - Developers
  • The components in the Astrometry.NOVAS namespace are fully usable from .NET languages but are not fully accessible through COM from scripting languages because a number of parameters are passed by reference or use structures that do not pass across the COM interface. Two work rounds are available:
    1. Use the Transform component in the ASCOM.Astrometry.Transform namespace, it is fully COM compatible.
    2. Create your own COM presentation component that encapsulates the SOFA or NOVAS 3.1 functions that you require and presents them in a COM compatible fashion to suit your needs. This component can them be consumed by your scripting application.
Breaking Changes (For Developers)
  • None.
Deprecated Capabilities (For Developers)
  • The ASCOM.Astrometry namespace of the Platform has become overcrowded with components that have similar capabilities but that differ in small ways from each other (e.g. NOVAS2, NOVAS2COM, NOVAS3, NOVAS3.1). The recent realisation that some NOVAS routines use iterative algorithms that can fail, when in very close proximity to the poles, led to a search for an alternative and the SOFA Library was found to be an actively maintained and authoritative choice.

    The addition of a SOFA component brings the number of high precision astronomy libraries distributed within the Platform to 8! To reduce the maintenance burden, SOFA will become the primary high precision library for astronomical computing distributed with the ASCOM Platform and dependence of Platform components on NOVAS will be removed. However, the NOVAS routines provide functionality that is not present in SOFA e.g. major and minor planet ephemerides and consequently the NOVAS 3.1 component will continue to be distributed with the Platform.

    The following NOVAS components will be removed from the Platform installer at the next major update and moved into a separate installer:

    • Kepler
    • NOVASCOM
    • NOVAS2
    • NOVAS2COM
    • NOVAS3
  • The following VB6 based simulators will be removed from the Platform at the next major update. These drivers were moved to a "bug-fix only" maintenance mode when Platform 6 was released and are becoming increasingly out of step with their .NET counterparts, which are fully integrated into the Platform code base.

    Simulator

    ProgID

    Replacement

    Camera Simulator

    CCDSimulator.Camera

    Replace use of the CCDSimulator.Camera ProgID with ASCOM.Simulator.Camera, which will invoke the "Camera V2 simulator

    Dome Simulator

    DomeSim.Telescope

    Replace use of the DomeSim.Telescope ProgID with ASCOM.Simulator.Dome, which will invoke the "Dome Simulator .NET" driver.

    Filter Wheel Simulator

    FilterWheelSim.FilterWheel

    Replace use of the FilterWheelSim.FilterWheel ProgID with ASCOM.Simulator.FilterWheel, which will invoke the "Filter Wheel Simulator [.NET]" driver.

    Focuser Simulator

    FocuserSim.Focuser

    Replace use of the FocuserSim.Focuser ProgID with ASCOM.Simulator.Focuser, which will invoke the "ASCOM Simulator Focuser Driver" driver.

    Switch Simulator

    SwitchSim.Switch

    Replace use of the SwitchSim.Switch ProgID with ASCOM.Simulator.Switch, which will invoke the "ASCOM SwitchV2 Simulator Driver" driver.

    Telescope Simulator

    ScopeSim.Telescope

    Replace use of the ScopeSim.Telescope ProgID with ASCOM.Simulator.Telescope, which will invoke the "Telescope Simulator for .NET" driver.