IntroductionIn 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 |
---|
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 PrerequisitesPlatform 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
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 Astronomical Coordinates.
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.
- 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:
- Use the Transform component in the ASCOM.Astrometry.Transform namespace, it is fully COM compatible.
- 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)
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. |