diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6553964 --- /dev/null +++ b/.gitignore @@ -0,0 +1,221 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# nCrunch items +*.ncrunchsolution +*.DotSettings +*.ncrunchproject diff --git a/.vs/MeadeAutostar497/v15/Server/sqlite3/db.lock b/.vs/MeadeAutostar497/v15/Server/sqlite3/db.lock deleted file mode 100644 index e69de29..0000000 diff --git a/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide b/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide deleted file mode 100644 index 3bc8c08..0000000 Binary files a/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide and /dev/null differ diff --git a/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide-shm b/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide-shm deleted file mode 100644 index f4894a1..0000000 Binary files a/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide-shm and /dev/null differ diff --git a/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide-wal b/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide-wal deleted file mode 100644 index d24d8c8..0000000 Binary files a/.vs/MeadeAutostar497/v15/Server/sqlite3/storage.ide-wal and /dev/null differ diff --git a/MeadeAutostar497/bin/Debug/ASCOM.Astrometry.xml b/MeadeAutostar497/bin/Debug/ASCOM.Astrometry.xml deleted file mode 100644 index 9db5bbd..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.Astrometry.xml +++ /dev/null @@ -1,12201 +0,0 @@ - - - - -ASCOM.Astrometry - - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Exception thrown when an attempt is made to read from the transform component before it has had co-ordinates - set once by SetJ2000 or SetJNow. - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an incompatible component is encountered that prevents an Astrometric compoent - from functioning correctly. - correctly. - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an attempt is made to read a value that has not yet been set. - - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an attempt is made to read a value that has not yet been calculated. - - This probably occurs because another variable has not been set or a required method has not been called. - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when a NOVAS function returns a non-zero, error completion code. - - This probably occurs because another variable has not been set or a required method has not been called. - - - - Create a new exception with message, function name and error code - - Message to be reported by the exception - Name of the NOVAS function giving rise to the exception - Error code returned by the NOVAS function - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an iterative Transform function fails to converge. - - - - - - Create a new exception with the message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Class providing a suite of tested astronomy support functions to save develpment effort and provide consistant behaviour. - - - A number of these routines are provided to support migration from the Astro32.dll. Unlike Astro32, these routines will work in - both 32bit and 64bit applications. - - - - - Releases all resources owned by the AstroUtils component and readies it for disposal - - - - - - Flexible routine to range a number into a given range between a lower and an higher bound. - - Value to be ranged - Lowest value of the range - Boolean flag indicating whether the ranged value can have the lower bound value - Highest value of the range - Boolean flag indicating whether the ranged value can have the upper bound value - The ranged nunmber as a double - Thrown if the lower bound is greater than the upper bound. - Thrown if LowerEqual and UpperEqual are both false and the ranged value equals - one of these values. This is impossible to handle as the algorithm will always violate one of the rules! - - UpperEqual and LowerEqual switches control whether the ranged value can be equal to either the upper and lower bounds. So, - to range an hour angle into the range 0 to 23.999999.. hours, use this call: - RangedValue = Range(InputValue, 0.0, True, 24.0, False) - The input value will be returned in the range where 0.0 is an allowable value and 24.0 is not i.e. in the range 0..23.999999.. - It is not permissible for both LowerEqual and UpperEqual to be false because it will not be possible to return a value that is exactly equal - to either lower or upper bounds. An exception is thrown if this scenario is requested. - - - - - Conditions an hour angle to be in the range -12.0 to +12.0 by adding or subtracting 24.0 hours - - Hour angle to condition - Hour angle in the range -12.0 to +12.0 - - - - - Conditions a Right Ascension value to be in the range 0 to 23.999999.. hours - - Right ascension to be conditioned - Right ascension in the range 0 to 23.999999... - - - - - Returns the current DeltaT value in seconds - - DeltaT in seconds - DeltaT is the difference between terrestrial time and the UT1 variant of universal time. ie.e TT = UT1 + DeltaT - - - - Current Julian date based on the UTC time scale - - Julian day - - - - - - Current Julian date based on the terrestrial time (TT) time scale - - Current value for Delta-UT1, the difference between UTC and UT1; always in the range -0.9 to +0.9 seconds. - Use 0.0 to calculate TT through TAI. Delta-UT1 varies irregularly throughout the year. - Double - Julian date on the UT1 timescale. - When Delta-UT1 is provided, Terrestrial time is calculated as TT = UTC + DeltaUT1 + DeltaT. Otherwise, when Delta-UT1 is 0.0, - TT is calculated as TT = UTC + ΔAT + 32.184s, where ΔAT is the current number of leap seconds applied to UTC (34 at April 2012, with - the 35th being added at the end of June 2012). The resulting TT value is then converted to a Julian date and returned. - Forecast values of Delta-UT1 are published by IERS Bulletin A at http://maia.usno.navy.mil/ser7/ser7.dat - - - - - Current Julian date based on the UT1 time scale - - Current value for Delta-UT1, the difference between UTC and UT1; always in the range -0.9 to +0.9 seconds. - Use 0.0 if you do not know this value; it varies irregularly throughout the year. - Double - Julian date on the UT1 timescale. - UT1 time is calculated as UT1 = UTC + DeltaUT1 when DeltaUT1 is non zero. otherwise it is calaulcated through TAI and DeltaT. - This value is then converted to a Julian date and returned. - When Delta-UT1 is provided, UT1 is calculated as UT1 = UTC + DeltaUT1. Otherwise, when Delta-UT1 is 0.0, - DeltaUT1 is calculated as DeltaUT1 = TT - DeltaT = UTC + ΔAT + 32.184s - DeltaT, where ΔAT is the current number of leap seconds applied - to UTC (34 at April 2012, with the 35th being added at the end of June 2012). - Forecast values of DUT1 are published by IERS Bulletin A at http://maia.usno.navy.mil/ser7/ser7.dat - - - - - Computes atmospheric refraction in zenith distance. - - Structure containing observer's location. - 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric - parameters input in the 'Location' structure. - Observed zenith distance, in degrees. - Unrefracted zenith distance in degrees. - This version computes approximate refraction for optical wavelengths. This function - can be used for planning observations or telescope pointing, but should not be used for the - reduction of precise observations. - Note: Unlike the NOVAS Refract method, Unrefract returns the unrefracted zenith distance itself rather than - the difference between the refracted and unrefracted zenith distances. - - - - Converts a calendar day, month, year to a modified Julian date - - Integer day of ther month - Integer month of the year - Integer year - Double modified julian date - - - - - Translates a modified Julian date to a VB ole automation date, presented as a double - - Modified Julian date - Date as a VB ole automation date - - - - - Translates a modified Julian date to a date - - Modified Julian date - Date representing the modified Julian date - - - - - Returns a modified Julian date as a string formatted acording to the supplied presentation format - - Mofified julian date - Format representation - Date string - Thrown if the provided PresentationFormat is not valid. - This expects the standard Microsoft date and time formatting characters as described - in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx - - - - - Proivides an estimates of DeltaUT1, the difference between UTC and UT1. DeltaUT1 = UT1 - UTC - - Julian date when DeltaUT is required - Double DeltaUT in seconds - DeltaUT varies only slowly, so the Julian date can be based on UTC, UT1 or Terrestrial Time. - - - - Returns a Julian date as a string formatted according to the supplied presentation format - - Julian date - Format representation - Date as a string - This expects the standard Microsoft date and time formatting characters as described - in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx - - - - - Sets or returns the number of leap seconds used in ASCOM Astrometry functions - - Integer number of seconds - Current number of leap seconds - The property value is stored in the ASCOM Profile under the name \Astrometry\Leap Seconds. Any change made to this property - will be persisted to the ASCOM Profile store and will be immediately availble to this and all future instances of AstroUtils. - The current value and any announced but not yet actioned change are listed - here: ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat - - - - Function that returns a list of rise and set events of a particular type that occur on a particular day at a given latitude, longitude and time zone - - Type of event e.g. Sunrise or Astronomical twilight - Integer Day number - Integer Month number - Integer Year number - Site latitude - Site longitude (West of Greenwich is negative) - Site time zone offset (West of Greenwich is negative) - An arraylist of event information (see Remarks for arraylist structure). - - If the combination of day, month and year is invalid e.g. 31st September. - - The definitions of sunrise, sunset and the various twilights that are used in this method are taken from the - US Naval Observatory Definitions. - - The dynamics of the sun, Earth and Moon can result at some latitudes in days where there may be no, 1 or 2 rise or set events during - a 24 hour period; in consequence, results are returned in the flexible form of arraylist. - The returned zero based arraylist has the following values: - - Arraylist(0) - Boolean - True if the body is above the event limit at midnight (the beginning of the 24 hour day), false if it is below the event limit - Arraylist(1) - Integer - Number of rise events in this 24 hour period - Arraylist(2) - Integer - Number of set events in this 24 hour period - Arraylist(3) onwards - Double - Values of rise events in hours - Arraylist(3 + NumberOfRiseEvents) onwards - Double - Values of set events in hours - - If the number of rise events is zero the first double value will be the first set event. If the numbers of both rise and set events - are zero, there will be no double values and the arraylist will just contain elements 0, 1 and 2, the above/below horizon flag and the integer count values. - The algorithm employed in this method is taken from Astronomy on the Personal Computer (Montenbruck and Pfleger) pp 46..56, - Springer Fourth Edition 2000, Fourth Printing 2009. The day is divided into twelve two hour intervals and a quadratic equation is fitted - to the altitudes at the beginning, middle and end of each interval. The resulting equation coefficients are then processed to determine - the number of roots within the interval (each of which corresponds to a rise or set event) and their sense (rise or set). - These results are are then aggregated over the day and the resultant list of values returned as the function result. - - High precision ephemeredes for the Sun, Moon and Earth and other planets from the JPL DE421 series are employed as delivered by the - ASCOM NOVAS 3.1 component rather than using the lower precision ephemeredes employed by Montenbruck and Pfleger. - - Accuracy Whole year almanacs for Sunrise/Sunset, Moonrise/Moonset and the various twilights every 5 degrees from the - North pole to the South Pole at a variety of longitudes, timezones and dates have been compared to data from - the US Naval Observatory Astronomical Data web site. The RMS error has been found to be - better than 0.5 minute over the latitude range 80 degrees North to 80 degrees South and better than 5 minutes from 80 degrees to the relevant pole. - Most returned values are within 1 minute of the USNO values although some very infrequent grazing event times at lattiudes from 67 to 90 degrees North and South can be up to - 10 minutes different. - - An Almanac program that creates a year's worth of information for a given event, lattitude, longitude and timezone is included in the - developer code examples elsewhere in this help file. This creates an output file with an almost identical format to that used by the USNO web site - and allows comprehensive checking of acccuracy for a given set of parameters. - - - - - Returns the altitude of the body given the input parameters - - Type of event to be calaculated - UTC Julian date - Hour of Julian day - Site Latitude - Site Longitude - The altitude of the body (degrees) - - - - - Returns the fraction of the Moon's surface that is illuminated - - Julian day (UTC) for which the Moon illumination is required - Percentage illumination of the Moon - The algorithm used is that given in Astronomical Algorithms (Second Edition, Corrected to August 2009) - Chapter 48 p345 by Jean Meeus (Willmann-Bell 1991). The Sun and Moon positions are calculated by high precision NOVAS 3.1 library using JPL DE 421 ephemeredes. - - - - - Returns the Moon phase as an angle - - Julian day (UTC) for which the Moon phase is required - Moon phase as an angle between -180.0 amd +180.0 (see Remarks for further description) - To allow maximum freedom in displaying the Moon phase, this function returns the excess of the apparent geocentric longitude - of the Moon over the apparent geocentric longitude of the Sun, expressed as an angle in the range -180.0 to +180.0 degrees. - This definition is taken from Astronomical Algorithms (Second Edition, Corrected to August 2009) Chapter 49 p349 - by Jean Meeus (Willmann-Bell 1991). - The frequently used eight phase description for phases of the Moon can be easily constructed from the results of this function - using logic similar to the following: - -Select Case MoonPhase - Case -180.0 To -135.0 - Phase = "Full Moon" - Case -135.0 To -90.0 - Phase = "Waning Gibbous" - Case -90.0 To -45.0 - Phase = "Last Quarter" - Case -45.0 To 0.0 - Phase = "Waning Crescent" - Case 0.0 To 45.0 - Phase = "New Moon" - Case 45.0 To 90.0 - Phase = "Waxing Crescent" - Case 90.0 To 135.0 - Phase = "First Quarter" - Case 135.0 To 180.0 - Phase = "Waxing Gibbous" -End Select - - Other representations can be easily constructed by changing the angle ranges and text descriptors as desired. The result range -180 to +180 - was chosen so that negative values represent the Moon waning and positive values represent the Moon waxing. - - - - - Refresh to parameter values and invalidate caches in the parameters object so that any new values wil be used - - - - - Flexible routine to range a number between a lower and an higher bound. Switches control whether the ranged value can be equal to either the - lower or upper bounds. - - Value to be ranged - Lowest value of the range - Boolean flag indicating whether the ranged value can have the lower bound value - Highest value of the range - Boolean flag indicating whether the ranged value can have the upper bound value - The ranged nunmber as a double - Thrown if the lower bound is greater than the upper bound. - Thrown if LowerEqual and UpperEqual are both false and the ranged value equals - one of these values. This is impossible to handle as the algorithm will always violate one of the rules! - - - - - Converts a calendar day, month, year to a modified Julian date - - Integer day of ther month - Integer month of the year - Integer year - Double modified julian date - - - - - Translates a modified Julian date to a VB ole automation date, presented as a double - - Modified Julian date - Date as a VB ole automation date - - - - - Translates a modified Julian date to a date - - Modified Julian date - Date representing the modified Julian date - - - - - Returns a modified Julian date as a string formatted according to the supplied presentation format - - Mofified julian date - Format representation - Date string - Thrown if the provided PresentationFormat is not valid. - This expects the standard Microsoft date and time formatting characters as described - in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx - - - - - Proivides an estimates of DeltaUT1, the difference between UTC and UT1. DeltaUT1 = UT1 - UTC - - Julian date when DeltaUT is required - Double DeltaUT in seconds - DeltaUT varies only slowly, so the Julian date can be based on UTC, UT1 or Terrestrial Time. - - - - Returns a Julian date as a string formatted according to the supplied presentation format - - Julian date - Format representation - Date as a string - This expects the standard Microsoft date and time formatting characters as described - in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx - - - - - Sets or returns the number of leap seconds used in ASCOM Astrometry functions - - Integer number of seconds - Current number of leap seconds - The property value is stored in the ASCOM Profile under the name \Astrometry\Leap Seconds. Any change made to this property - will be persisted to the ASCOM Profile store and will be immediately availble to this and all future instances of AstroUtils. - The current value and any announced but not yet actioned change are listed - here: ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat - - - - Function that returns a list of rise and set events of a particular type that occur on a particular day at a given latitude, longitude and time zone - - Type of event e.g. Sunrise or Astronomical twilight - Integer Day number - Integer Month number - Integer Year number - Site latitude - Site longitude (West of Greenwich is negative) - Site time zone offset (West of Greenwich is negative) - An arraylist of event information (see Remarks for arraylist structure). - - If the combination of day, month and year is invalid e.g. 31st September. - - The definitions of sunrise, sunset and the various twilights that are used in this method are taken from the - US Naval Observatory Definitions. - - The dynamics of the sun, Earth and Moon can result at some latitudes in days where there may be no, 1 or 2 rise or set events during - a 24 hour period; in consequence, results are returned in the flexible form of arraylist. - The returned zero based arraylist has the following values: - - Arraylist(0) - Boolean - True if the body is above the event limit at midnight (the beginning of the 24 hour day), false if it is below the event limit - Arraylist(1) - Integer - Number of rise events in this 24 hour period - Arraylist(2) - Integer - Number of set events in this 24 hour period - Arraylist(3) onwards - Double - Values of rise events in hours - Arraylist(3 + NumberOfRiseEvents) onwards - Double - Values of set events in hours - - If the number of rise events is zero the first double value will be the first set event. If the numbers of both rise and set events - are zero, there will be no double values and the arraylist will just contain elements 0, 1 and 2, the above/below horizon flag and the integer count values. - The algorithm employed in this method is taken from Astronomy on the Personal Computer (Montenbruck and Pfleger) pp 46..56, - Springer Fourth Edition 2000, Fourth Printing 2009. The day is divided into twelve two hour intervals and a quadratic equation is fitted - to the altitudes at the beginning, middle and end of each interval. The resulting equation coefficients are then processed to determine - the number of roots within the interval (each of which corresponds to a rise or set event) and their sense (rise or set). - These results are are then aggregated over the day and the resultant list of values returned as the function result. - - High precision ephemeredes for the Sun, Moon and Earth and other planets from the JPL DE421 series are employed as delivered by the - ASCOM NOVAS 3.1 component rather than using the lower precision ephemeredes employed by Montenbruck and Pfleger. - - Accuracy Whole year almanacs for Sunrise/Sunset, Moonrise/Moonset and the various twilights every 5 degrees from the - North pole to the South Pole at a variety of longitudes, timezones and dates have been compared to data from - the US Naval Observatory Astronomical Data web site. The RMS error has been found to be - better than 0.5 minute over the latitude range 80 degrees North to 80 degrees South and better than 5 minutes from 80 degrees to the relevant pole. - Most returned values are within 1 minute of the USNO values although some very infrequent grazing event times at lattiudes from 67 to 90 degrees North and South can be up to - 10 minutes different. - - An Almanac program that creates a year's worth of information for a given event, lattitude, longitude and timezone is included in the - developer code examples elsewhere in this help file. This creates an output file with an almost identical format to that used by the USNO web site - and allows comprehensive checking of acccuracy for a given set of parameters. - - - - - Returns the fraction of the Moon's surface that is illuminated - - Julian day (UTC) for which the Moon illumination is required - Percentage illumination of the Moon - The algorithm used is that given in Astronomical Algorithms (Second Edition, Corrected to August 2009) - Chapter 48 p345 by Jean Meeus (Willmann-Bell 1991). The Sun and Moon positions are calculated by high precision NOVAS 3.1 library using JPL DE 421 ephemeredes. - - - - - Returns the Moon phase as an angle - - Julian day (UTC) for which the Moon phase is required - Moon phase as an angle between -180.0 amd +180.0 (see Remarks for further description) - To allow maximum freedom in displaying the Moon phase, this function returns the excess of the apparent geocentric longitude - of the Moon over the apparent geocentric longitude of the Sun, expressed as an angle in the range -180.0 to +180.0 degrees. - This definition is taken from Astronomical Algorithms (Second Edition, Corrected to August 2009) Chapter 49 p349 - by Jean Meeus (Willmann-Bell 1991). - The frequently used eight phase description for phases of the Moon can be easily constructed from the results of this function - using logic similar to the following: - -Select Case MoonPhase - Case -180.0 To -135.0 - Phase = "Full Moon" - Case -135.0 To -90.0 - Phase = "Waning Gibbous" - Case -90.0 To -45.0 - Phase = "Last Quarter" - Case -45.0 To 0.0 - Phase = "Waning Crescent" - Case 0.0 To 45.0 - Phase = "New Moon" - Case 45.0 To 90.0 - Phase = "Waxing Crescent" - Case 90.0 To 135.0 - Phase = "First Quarter" - Case 135.0 To 180.0 - Phase = "Waxing Gibbous" -End Select - - Other representations can be easily constructed by changing the angle ranges and text descriptors as desired. The result range -180 to +180 - was chosen so that negative values represent the Moon waning and positive values represent the Moon waxing. - - - - - Return today's number of leap seconds - - Current leap seconds as a double - - - - Return the specified Julian day's number of leap seconds - - - Leap seconds as a double - - - - Return today's DeltaT value - - DeltaT value as a double - - - - Return the specified Julian day's DeltaT value - - - DeltaT value as a double - - - - Return today's DeltaUT1 value - - DeltaUT1 value as a double - - - - Return the specified Julian day'DeltaUT1 value - - - DeltaUT1 value as a double - - - - Type of event for which an ephemeris is required - - - - - - Type of body, Major Planet, Moon, Sun or Minor Planet - - - - - - Luna - - - - - - The Sun - - - - - - Major planet - - - - - - Minor planet - - - - - - Comet - - - - - - Co-ordinate origin: centre of Sun or solar system barycentre - - - - - - Centre of mass of the solar system - - - - - - Centre of mass of the Sun - - - - - - Body number starting with Mercury = 1 - - - - - - Mercury - - - - - - Venus - - - - - - Earth - - - - - - Mars - - - - - - Jupiter - - - - - - Saturn - - - - - - Uranus - - - - - - Neptune - - - - - - Pluto - - - - - - Sun - - - - - - Moon - - - - - - Type of refraction correction - - - - - - No refraction correction will be applied - - - - - - Refraction will be applied based on "standard" weather values of temperature = 10.0C and sea level pressure = 1010 millibar - - - - - - Refraction will be applied based on the temperature and pressure supplied in the site location structure - - - - - - Type of transformation: Epoch, Equator and Equinox or all three - - - - - - Change epoch only - - - - - - Change equator and equinox - - - - - - Change equator, equinox and epoch - - - - - - Direction of nutation correction - - - - - - Convert mean equator and equinox to true equator and equinox - - - - - - Convert true equator and equinox to mean equator and equinox - - - - - - Direction of transformation: ITRS to Terrestrial Intermediate or vice versa - - - - - - Location of observer - - - - - - Observer at centre of the earth - - - - - - Observer on earth's surface - - - - - - Observer in near-earth spacecraft - - - - - - Calculation accuracy - - - In full-accuracy mode, - -nutation calculations use the IAU 2000A model [iau2000a, nutation_angles]; -gravitational deflection is calculated using three bodies: Sun, Jupiter, and Saturn [grav_def]; -the equation of the equinoxes includes the entire series when computing the “complementary terms" [ee_ct]; -geocentric positions of solar system bodies are adjusted for light travel time using split, or two-part, - Julian dates in calls to ephemeris and iterate with a convergence tolerance of 10-12 days [light_time, ephemeris]; -ephemeris calls the appropriate solar system ephemeris using split, or two-part, Julian dates primarily to support - light-time calculations [ephemeris, solarsystem_hp, light_time]. - -In reduced-accuracy mode, - - nutation calculations use the 2000K model, which is the default for this mode; - gravitational deflection is calculated using only one body, the Sun [grav_def]; - the equation of the equinoxes excludes terms smaller than 2 microarcseconds when computing the "complementary terms" [ee_ct]; - geocentric positions of solar system bodies are adjusted for light travel time using single-value Julian dates - in calls to ephemeris and iterate with a convergence tolerance of 10-9 days [light-time, ephemeris, solarsystem]; - ephemeris calls the appropriate solar system ephemeris using single-value Julian dates [ephemeris, solarsystem]. - - In full-accuracy mode, the IAU 2000A nutation series (1,365 terms) is used [iau2000a]. Evaluating the series for nutation is - usually the main computational burden in NOVAS, so using reduced-accuracy mode improves execution time, often noticeably. - In reduced-accuracy mode, the NOVAS 2000K nutation series (488 terms) is used by default [nu2000k]. This mode can be used - when the accuracy requirements are not better than 0.1 milliarcsecond for stars or 3.5 milliarcseconds for solar system bodies. - Selecting this approach can reduce the time required for Earth-rotation computations by about two-thirds. - - - - - Full accuracy - - Suitable when precision of better than 0.1 milliarcsecond for stars or 3.5 milliarcseconds for solar system bodies is required. - - - - Reduced accuracy - - Suitable when precision of less than 0.1 milliarcsecond for stars or 3.5 milliarcseconds for solar system bodies is required. - - - - Coordinate system of the output position - - Used by function Place - - - - GCRS or "local GCRS" - - - - - - True equator and equinox of date - - - - - - True equator and CIO of date - - - - - - Astrometric coordinates, i.e., without light deflection or aberration. - - - - - - Type of sidereal time - - - - - - Greenwich mean sidereal time - - - - - - Greenwich apparent sidereal time - - - - - - Computation method - - - - - - Based on CIO - - - - - - Based on equinox - - - - - - Output vector reference system - - - - - - Referred to GCRS axes - - - - - - Referred to the equator and equinox of date - - - - - - Type of pole ofset - - Used by CelPole. - - - - For corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi - and delta-delta-epsilon. - - - - - - For corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. - - - - - - Direction of frame conversion - - Used by FrameTie method. - - - - Dynamical to ICRS transformation. - - - - - - ICRS to dynamical transformation. - - - - - - Location of observer, determining whether the gravitational deflection due to the earth itself is applied. - - Used by GravDef method. - - - - No earth deflection (normally means observer is at geocenter) - - - - - - Add in earth deflection (normally means observer is on or above surface of earth, including earth orbit) - - - - - - Reference system in which right ascension is given - - - - - - GCRS - - - - - - True equator and equinox of date - - - - - - Type of equinox - - - - - - Mean equinox - - - - - - True equinox - - - - - - Type of transformation - - - - - - Change epoch only - - - - - - Change equator and equinox; sane epoch - - - - - - Change equator, equinox and epoch - - - - - - change equator and equinox J2000.0 to ICRS - - - - - - change ICRS to equator and equinox of J2000.0 - - - - - - Type of object - - - - - - Major planet, sun or moon - - - - - - Minor planet - - - - - - Object located outside the solar system - - - - - - Body or location - - This numbering convention is used by ephemeris routines; do not confuse with the Body enum, which is used in most - other places within NOVAS3. - - The numbering convention for 'target' and'center' is: -
-             0  =  Mercury           7 = Neptune
-             1  =  Venus             8 = Pluto
-             2  =  Earth             9 = Moon
-             3  =  Mars             10 = Sun
-             4  =  Jupiter          11 = Solar system bary.
-             5  =  Saturn           12 = Earth-Moon bary.
-             6  =  Uranus           13 = Nutations (long. and obliq.)
-
- - If nutations are desired, set 'target' = 14; 'center' will be ignored on that call. - -
-
- - - Mercury - - - - - - Venus - - - - - - Earth - - - - - - Mars - - - - - - Jupiter - - - - - - Saturn - - - - - - Uranus - - - - - - Neptune - - - - - - Pluto - - - - - - Moon - - - - - - Sun - - - - - - Solar system barycentre - - - - - - Earth moon barycentre - - - - - - Nutations - - - - - - Structure to hold body type, number and name - - Designates a celestial object. - - - - - Type of body - - - 0 = Major planet, Sun, or Moon - 1 = Minor planet - - - - - body number - -
- For 'type' = 0: Mercury = 1, ..., Pluto = 9, Sun = 10, Moon = 11
- For 'type' = 1: minor planet number
- 
-
- - - Name of the body (limited to 99 characters) - - - - - - Structure to hold astrometric catalogue data - - - The astrometric catalog data for a star; equator and equinox and units will depend on the catalog. - While this structure can be used as a generic container for catalog data, all high-level - NOVAS-C functions require J2000.0 catalog data with FK5-type units (shown in square brackets below). - - - - - 3-character catalog designator. - - - - - - Name of star. - - - - - - Integer identifier assigned to star. - - - - - - Mean right ascension [hours]. - - - - - - Mean declination [degrees]. - - - - - - Proper motion in RA [seconds of time per century]. - - - - - - Proper motion in declination [arcseconds per century]. - - - - - - Parallax [arcseconds]. - - - - - - Radial velocity [kilometers per second] - - - - - - Structure to hold site information - - - Data for the observer's location. The atmospheric parameters are used only by the refraction - function called from function 'equ_to_hor'. Additional parameters can be added to this - structure if a more sophisticated refraction model is employed. - - - - - Geodetic latitude in degrees; north positive. - - - - - - Geodetic longitude in degrees; east positive. - - - - - - Height of the observer in meters. - - - - - - Temperature (degrees Celsius). - - - - - - Atmospheric pressure (millibars) - - - - - - Structure to hold a position vector - - Object position vector - - - - - x co-ordinate - - - - - - y co-ordinate - - - - - - z co-ordinate - - - - - - Structure to hold a velocity vector - - Object velocity vector - - - - - x velocity component - - - - - - y velocity component - - - - - - z velocity component - - - - - - Structure to hold Sun and Moon fundamental arguments - - Fundamental arguments, in radians - - - - - l (mean anomaly of the Moon) - - - - - - l' (mean anomaly of the Sun) - - - - - - F (L - omega; L = mean longitude of the Moon) - - - - - - D (mean elongation of the Moon from the Sun) - - - - - - Omega (mean longitude of the Moon's ascending node) - - - - - - Catalogue entry structure - - Basic astrometric data for any celestial object located outside the solar system; the catalog data for a star. - This structure is identical to the NOVAS2 CatEntry structure expect that, for some reason, the StarName and Catalog fields - have been swapped in the NOVAS3 structure. - - Please note that some units have changed from those used in NOVAS2 as follows: - - proper motion in right ascension: from seconds per century to milliarcseconds per year - proper motion in declination: from arcseconds per century to milliarcseconds per year - parallax: from arcseconds to milliarcseconds - - - - - - - Name of celestial object. (maximum 50 characters) - - - - - - 3-character catalog designator. - - - - - - Integer identifier assigned to object. - - - - - - ICRS right ascension (hours) - - - - - - ICRS declination (degrees) - - - - - - ICRS proper motion in right ascension (milliarcseconds/year) - - - - - - ICRS proper motion in declination (milliarcseconds/year) - - - - - - Parallax (milli-arcseconds) - - - - - - Radial velocity (km/s) - - - - - - Celestial object structure - - Designates a celestial object - - - - Type of object - - - - - - Object identification number - - - - - - Name of object(maximum 50 characters) - - - - - - Catalogue entry for the object - - - - - - Celestial object's place in the sky - - - - - - Unit vector toward object (dimensionless) - - - - - - Apparent, topocentric, or astrometric right ascension (hours) - - - - - - Apparent, topocentric, or astrometric declination (degrees) - - - - - - True (geometric, Euclidian) distance to solar system body or 0.0 for star (AU) - - - - - - Radial velocity (km/s) - - - - - - Observer’s position and velocity in a near-Earth spacecraft. - - - - - - Geocentric position vector (x, y, z), components in km with respect to true equator and equinox of date - - - - - - Geocentric velocity vector (x_dot, y_dot, z_dot), components in km/s with respect to true equator and equinox of date - - - - - - Right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS. - - - - - - TDB Julian date - - - - - - Right ascension of the CIO with respect to the GCRS (arcseconds) - - - - - - Parameters of observer's location - - This structure is identical to the NOVAS2 SiteInfo structure but is included so that NOVAS3 naming - conventions are maintained, making it easier to relate this code to the NOVAS3 documentation and C code. - - - - Geodetic (ITRS) latitude; north positive (degrees) - - - - - - Geodetic (ITRS) longitude; east positive (degrees) - - - - - - Observer's height above sea level - - - - - - Observer's location's ambient temperature (degrees Celsius) - - - - - - Observer's location's atmospheric pressure (millibars) - - - - - - General specification for the observer's location - - - - - - Code specifying the location of the observer: 0=at geocenter; 1=surface of earth; 2=near-earth spacecraft - - - - - - Data for an observer's location on the surface of the Earth (where = 1) - - - - - - Data for an observer's location on a near-Earth spacecraft (where = 2) - - - - - - Interface to the coordinate transform component; J2000 - apparent - topocentric - - Use this component to transform between J2000, apparent and topocentric coordinates or - vice versa. To use the component, instantiate it, then use one of SetJ2000 or SetJNow or SetApparent to - initialise with known values. Now use the RAJ2000, DECJ200, RAJNow, DECJNow, RAApparent and DECApparent - properties to read off the required transformed values. -The component can be reused simply by setting new co-ordinates with a Set command, there - is no need to create a new component each time a transform is required. - Transforms are effected through the ASCOM NOVAS-COM engine that encapsulates the USNO NOVAS2 library. - The USNO NOVAS reference web page is: - http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas/novas-fortran/novas-fortran - - - - - - Gets or sets the site latitude - - Site latitude - Latitude in degrees - Positive numbers north of the equator, negative numbers south. - - - - Gets or sets the site longitude - - Site longitude - Longitude in degrees - Positive numbers east of the Greenwich meridian, negative numbes west of the Greenwich meridian. - - - - Gets or sets the site elevation above sea level - - Site elevation - Elevation in metres - - - - - Gets or sets the site ambient temperature - - Site ambient temperature - Temperature in degrees Celsius - - - - - Gets or sets a flag indicating whether refraction is calculated for topocentric co-ordinates - - True / false flag indicating refaction is included / omitted from topocentric co-ordinates - Boolean flag - - - - - Causes the transform component to recalculate values derrived from the last Set command - - Use this when you have set J2000 co-ordinates and wish to ensure that the mount points to the same - co-ordinates allowing for local effects that change with time such as refraction. - - - - Sets the known J2000 Right Ascension and Declination coordinates that are to be transformed - - RA in J2000 co-ordinates - DEC in J2000 co-ordinates - - - - - Sets the known apparent Right Ascension and Declination coordinates that are to be transformed - - RA in apparent co-ordinates - DEC in apparent co-ordinates - - - - - Sets the known topocentric Right Ascension and Declination coordinates that are to be transformed - - RA in topocentric co-ordinates - DEC in topocentric co-ordinates - - - - - Returns the Right Ascension in J2000 co-ordinates - - J2000 Right Ascension - Right Ascension in hours - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Declination in J2000 co-ordinates - - J2000 Declination - J2000 Declination - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Right Ascension in topocentric co-ordinates - - Topocentric Right Ascension - Topocentric Right Ascension - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Declination in topocentric co-ordinates - - Topocentric Declination - Topocentric Declination - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Right Ascension in apparent co-ordinates - - Apparent Right Ascension - Right Ascension in hours - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Declination in apparent co-ordinates - - Apparent Declination - Declination in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the topocentric azimth angle of the target - - Topocentric azimuth angle - Azimuth angle in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the topocentric elevation of the target - - Topocentric elevation angle - Elevation angle in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Sets known Altitude and Azimuth values which are to be transformed - - Object's azimuth in degrees - Object's Elevation in degrees - - - - - Sets or return the Julian date (terrestrial time) for which the transform will be made - - Julian date (terrestrial time) of the transform - Terrestrial time Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate - the Julian date. - This method was introduced in May 2012. Previously, Transform used the current date-time of the PC when calculating transforms; - this remains the default behaviour for backward compatibility. - The inital value of this parameter is 0 which is a special value that forces Transform to replicate original behaviour by determining the - Julian date from the PC's current date and time. If this property is non zero, that terrestrial time Julian date is used in preference - to the value derrived from the PC's clock. - - - - Sets or return the Julian date (UTC) for which the transform will be made - - Julian date (UTC) of the transform - UTC Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate - the Julian date. - The inital value of this parameter is 0 which is a special value that forces Transform to replicate original behaviour by determining the - Julian date from the PC's current date and time. If this property is non zero, that UTC Julian date is used in preference - to the value derrived from the PC's clock. - - - - Coordinate transform component; J2000 - apparent - topocentric - - Use this component to transform between J2000, apparent and topocentric (JNow) coordinates or - vice versa. To use the component, instantiate it, then use one of SetJ2000 or SetJNow or SetApparent to - initialise with known values. Now use the RAJ2000, DECJ200, RAJNow, DECJNow, RAApparent and DECApparent etc. - properties to read off the required transformed values. -The component can be reused simply by setting new co-ordinates with a Set command, there - is no need to create a new component each time a transform is required. - Transforms are effected through the ASCOM NOVAS.Net engine that encapsulates the USNO NOVAS 3.1 library. - The USNO NOVAS reference web page is: - http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas - and the NOVAS 3.1 user guide is included in the ASCOM Developer Components install. - - - - - - Cleans up resources used by the Transform component - - - - - - Gets or sets the site latitude - - Site latitude - Latitude in degrees - Positive numbers north of the equator, negative numbers south. - - - - Gets or sets the site longitude - - Site longitude - Longitude in degrees - Positive numbers east of the Greenwich meridian, negative numbes west of the Greenwich meridian. - - - - Gets or sets the site elevation above sea level - - Site elevation - Elevation in metres - - - - - Gets or sets the site ambient temperature - - Site ambient temperature - Temperature in degrees Celsius - - - - - Gets or sets a flag indicating whether refraction is calculated for topocentric co-ordinates - - True / false flag indicating refaction is included / omitted from topocentric co-ordinates - Boolean flag - - - - - Causes the transform component to recalculate values derrived from the last Set command - - Use this when you have set J2000 co-ordinates and wish to ensure that the mount points to the same - co-ordinates allowing for local effects that change with time such as refraction. - Note: As of Platform 6 SP2 use of this method is not required, refresh is always performed automatically when required. - - - - Sets the known J2000 Right Ascension and Declination coordinates that are to be transformed - - RA in J2000 co-ordinates - DEC in J2000 co-ordinates - - - - - Sets the known apparent Right Ascension and Declination coordinates that are to be transformed - - RA in apparent co-ordinates - DEC in apparent co-ordinates - - - - - Sets the known topocentric Right Ascension and Declination coordinates that are to be transformed - - RA in topocentric co-ordinates - DEC in topocentric co-ordinates - - - - - Sets the topocentric azimuth and elevation - - Topocentric Azimuth in degrees - Topocentric elevation in degrees - - - - - Returns the Right Ascension in J2000 co-ordinates - - J2000 Right Ascension - Right Ascension in hours - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - - Returns the Declination in J2000 co-ordinates - - J2000 Declination - Declination in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Right Ascension in topocentric co-ordinates - - Topocentric Right Ascension - Topocentric Right Ascension in hours - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Declination in topocentric co-ordinates - - Topocentric Declination - Declination in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Right Ascension in apparent co-ordinates - - Apparent Right Ascension - Right Ascension in hours - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the Declination in apparent co-ordinates - - Apparent Declination - Declination in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the topocentric azimth angle of the target - - Topocentric azimuth angle - Azimuth angle in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Returns the topocentric elevation of the target - - Topocentric elevation angle - Elevation angle in degrees - Exception thrown if an attempt is made - to read a value before any of the Set methods has been used or if the value can not be derived from the - information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was - a SetApparent and one of the Site properties has not been set. - - - - - Sets or returns the Julian date on the Terrestrial Time timescale for which the transform will be made - - Julian date (Terrestrial Time) of the transform - Terrestrial Time Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate the Julian date. - This method was introduced in May 2012. Previously, Transform used the current date-time of the PC when calculating transforms; - this remains the default behaviour for backward compatibility. - The inital value of this parameter is 0.0, which is a special value that forces Transform to replicate original behaviour by determining the - Julian date from the PC's current date and time. If this property is non zero, that particular terrestrial time Julian date is used in preference - to the value derrived from the PC's clock. - Only one of JulianDateTT or JulianDateUTC needs to be set. Use whichever is more readily available, there is no - need to set both values. Transform will use the last set value of either JulianDateTT or JulianDateUTC as the basis for its calculations. - - - - Sets or returns the Julian date on the UTC timescale for which the transform will be made - - Julian date (UTC) of the transform - UTC Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate the Julian date. - Introduced in April 2014 as an alternative to JulianDateTT. Only one of JulianDateTT or JulianDateUTC needs to be set. Use whichever is more readily available, there is no - need to set both values. Transform will use the last set value of either JulianDateTT or JulianDateUTC as the basis for its calculations. - - - - Interface to the Kepler Ephemeris component - - - The Ephemeris object contains an orbit engine which takes the orbital parameters of a solar system - body, plus a a terrestrial date/time, and produces the heliocentric equatorial position and - velocity vectors of the body in Cartesian coordinates. Orbital parameters are not required for - the major planets, Kepler contains an ephemeris generator for these bodies that is within 0.05 - arc seconds of the JPL DE404 over a wide range of times, Perturbations from major planets are applied - to ephemerides for minor planets. - The results are passed back as an array containing the two vectors. - Note that this is the format expected for the ephemeris generator used by the NOVAS-COM vector - astrometry engine. For more information see the description of Ephemeris.GetPositionAndVelocity(). - - Ephemeris Calculations
- The ephemeris calculations in Kepler draw heavily from the work of - Stephen Moshier moshier@world.std.com. kepler is released as a free software package, further - extending the work of Mr. Moshier.
- Kepler does not integrate orbits to the current epoch. If you want the accuracy resulting from - an integrated orbit, you must integrate separately and supply Kepler with elements of the current - epoch. Orbit integration is on the list of things for the next major version. - Kepler uses polynomial approximations for the major planet ephemerides. The tables - of coefficients were derived by a least squares fit of periodic terms to JPL's DE404 ephemerides. - The periodic frequencies used were determined by spectral analysis and comparison with VSOP87 and - other analytical planetary theories. The least squares fit to DE404 covers the interval from -3000 - to +3000 for the outer planets, and -1350 to +3000 for the inner planets. For details on the - accuracy of the major planet ephemerides, see the Accuracy Tables page. - - Date and Time Systems

- For a detailed explanation of astronomical timekeeping systems, see A Time Tutorial on the NASA - Goddard Spaceflight Center site, and the USNO Systems of Time site. -

ActiveX Date values
- These are the Windows standard "date serial" numbers, and are expressed in local time or - UTC (see below). The fractional part of these numbers represents time within a day. - They are used throughout applications such as Excel, Visual Basic, VBScript, and other - ActiveX capable environments. -

Julian dates
- These are standard Julian "date serial" numbers, and are expressed in UTC time or Terrestrial - time. The fractional part of these numbers represents time within a day. The standard ActiveX - "Double" precision of 15 digits gives a resolution of about one millisecond in a full Julian date. - This is sufficient for the purposes of this program. -

Hourly Time Values
- These are typically used to represent sidereal time and right ascension. They are simple real - numbers in units of hours. -

UTC Time Scale
- Most of the ASCOM methods and properties that accept date/time values (either Date or Julian) - assume that the date/time is in Coordinated Universal Time (UTC). Where necessary, this time - is converted internally to other scales. Note that UTC seconds are based on the Cesium atom, - not planetary motions. In order to keep UTC in sync with planetary motion, leap seconds are - inserted periodically. The error is at most 900 milliseconds. -

UT1 Time Scale
- The UT1 time scale is the planetary equivalent of UTC. It it runs smoothly and varies a bit - with time, but it is never more than 900 milliseconds different from UTC. -

TT Time Scale
- The Terrestrial Dynamical Time (TT) scale is used in solar system orbital calculations. - It is based completely on planetary motions; you can think of the solar system as a giant - TT clock. It differs from UT1 by an amount called "delta-t", which slowly increases with time, - and is about 60 seconds right now (2001).
-
-
- - - Compute rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and - velocity (KM/sec.). - - Terrestrial Julian date/time for which position and velocity is to be computed - Array of 6 values containing rectangular (x/y/z) heliocentric J2000 equatorial - coordinates of position (AU) and velocity (KM/sec.) for the body. - The TJD parameter is the date/time as a Terrestrial Time Julian date. See below for - more info. If you are using ACP, there are functions available to convert between UTC and - Terrestrial time, and for estimating the current value of delta-T. See the Overview page for - the Kepler.Ephemeris class for more information on time keeping systems. - - - - Semi-major axis (AU) - - Semi-major axis in AU - Semi-major axis in AU - - - - - The type of solar system body represented by this instance of the ephemeris engine (enum) - - The type of solar system body represented by this instance of the ephemeris engine (enum) - 0 for major planet, 1 for minot planet and 2 for comet - - - - - Orbital eccentricity - - Orbital eccentricity - Orbital eccentricity - - - - - Epoch of osculation of the orbital elements (terrestrial Julian date) - - Epoch of osculation of the orbital elements - Terrestrial Julian date - - - - - Slope parameter for magnitude - - Slope parameter for magnitude - Slope parameter for magnitude - - - - - Absolute visual magnitude - - Absolute visual magnitude - Absolute visual magnitude - - - - - The J2000.0 inclination (deg.) - - The J2000.0 inclination - Degrees - - - - - Mean anomaly at the epoch - - Mean anomaly at the epoch - Mean anomaly at the epoch - - - - - Mean daily motion (deg/day) - - Mean daily motion - Degrees per day - - - - - The name of the body. - - The name of the body or packed MPC designation - The name of the body or packed MPC designation - If this instance represents an unnumbered minor planet, Ephemeris.Name must be the - packed MPC designation. For other types, this is for display only. - - - - The J2000.0 longitude of the ascending node (deg.) - - The J2000.0 longitude of the ascending node - Degrees - - - - - The major or minor planet number - - The major or minor planet number - Number or zero if not numbered - - - - - Orbital period (years) - - Orbital period - Years - - - - - The J2000.0 argument of perihelion (deg.) - - The J2000.0 argument of perihelion - Degrees - - - - - Perihelion distance (AU) - - Perihelion distance - AU - - - - - Reciprocal semi-major axis (1/AU) - - Reciprocal semi-major axis - 1/AU - - - - - KEPLER: Ephemeris Object - - - The Kepler Ephemeris object contains an orbit engine which takes the orbital parameters of a solar system - body, plus a a terrestrial date/time, and produces the heliocentric equatorial position and - velocity vectors of the body in Cartesian coordinates. Orbital parameters are not required for - the major planets, Kepler contains an ephemeris generator for these bodies that is within 0.05 - arc seconds of the JPL DE404 over a wide range of times, Perturbations from major planets are applied - to ephemerides for minor planets. - The results are passed back as an array containing the two vectors. - Note that this is the format expected for the ephemeris generator used by the NOVAS-COM vector - astrometry engine. For more information see the description of Ephemeris.GetPositionAndVelocity(). - - Ephemeris Calculations
- The ephemeris calculations in Kepler draw heavily from the work of - Stephen Moshier moshier@world.std.com. kepler is released as a free software package, further - extending the work of Mr. Moshier.
- Kepler does not integrate orbits to the current epoch. If you want the accuracy resulting from - an integrated orbit, you must integrate separately and supply Kepler with elements of the current - epoch. Orbit integration is on the list of things for the next major version. - Kepler uses polynomial approximations for the major planet ephemerides. The tables - of coefficients were derived by a least squares fit of periodic terms to JPL's DE404 ephemerides. - The periodic frequencies used were determined by spectral analysis and comparison with VSOP87 and - other analytical planetary theories. The least squares fit to DE404 covers the interval from -3000 - to +3000 for the outer planets, and -1350 to +3000 for the inner planets. For details on the - accuracy of the major planet ephemerides, see the Accuracy Tables page. - - Date and Time Systems

- For a detailed explanation of astronomical timekeeping systems, see A Time Tutorial on the NASA - Goddard Spaceflight Center site, and the USNO Systems of Time site. -

ActiveX Date values
- These are the Windows standard "date serial" numbers, and are expressed in local time or - UTC (see below). The fractional part of these numbers represents time within a day. - They are used throughout applications such as Excel, Visual Basic, VBScript, and other - ActiveX capable environments. -

Julian dates
- These are standard Julian "date serial" numbers, and are expressed in UTC time or Terrestrial - time. The fractional part of these numbers represents time within a day. The standard ActiveX - "Double" precision of 15 digits gives a resolution of about one millisecond in a full Julian date. - This is sufficient for the purposes of this program. -

Hourly Time Values
- These are typically used to represent sidereal time and right ascension. They are simple real - numbers in units of hours. -

UTC Time Scale
- Most of the ASCOM methods and properties that accept date/time values (either Date or Julian) - assume that the date/time is in Coordinated Universal Time (UTC). Where necessary, this time - is converted internally to other scales. Note that UTC seconds are based on the Cesium atom, - not planetary motions. In order to keep UTC in sync with planetary motion, leap seconds are - inserted periodically. The error is at most 900 milliseconds. -

UT1 Time Scale
- The UT1 time scale is the planetary equivalent of UTC. It it runs smoothly and varies a bit - with time, but it is never more than 900 milliseconds different from UTC. -

TT Time Scale
- The Terrestrial Dynamical Time (TT) scale is used in solar system orbital calculations. - It is based completely on planetary motions; you can think of the solar system as a giant - TT clock. It differs from UT1 by an amount called "delta-t", which slowly increases with time, - and is about 60 seconds right now (2001).
-
-
- - - Create a new Ephemeris component and initialise it - - - - - - Semi-major axis (AU) - - Semi-major axis in AU - Semi-major axis in AU - - - - - The type of solar system body represented by this instance of the ephemeris engine (enum) - - The type of solar system body represented by this instance of the ephemeris engine (enum) - 0 for major planet, 1 for minot planet and 2 for comet - - - - - Orbital eccentricity - - Orbital eccentricity - Orbital eccentricity - - - - - Epoch of osculation of the orbital elements (terrestrial Julian date) - - Epoch of osculation of the orbital elements - Terrestrial Julian date - - - - - Slope parameter for magnitude - - Slope parameter for magnitude - Slope parameter for magnitude - - - - - Compute rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and - velocity (KM/sec.). - - Terrestrial Julian date/time for which position and velocity is to be computed - Array of 6 values containing rectangular (x/y/z) heliocentric J2000 equatorial - coordinates of position (AU) and velocity (KM/sec.) for the body. - The TJD parameter is the date/time as a Terrestrial Time Julian date. See below for - more info. If you are using ACP, there are functions available to convert between UTC and - Terrestrial time, and for estimating the current value of delta-T. See the Overview page for - the Kepler.Ephemeris class for more information on time keeping systems. - - - - Absolute visual magnitude - - Absolute visual magnitude - Absolute visual magnitude - - - - - The J2000.0 inclination (deg.) - - The J2000.0 inclination - Degrees - - - - - Mean anomaly at the epoch - - Mean anomaly at the epoch - Mean anomaly at the epoch - - - - - Mean daily motion (deg/day) - - Mean daily motion - Degrees per day - - - - - The name of the body. - - The name of the body or packed MPC designation - The name of the body or packed MPC designation - If this instance represents an unnumbered minor planet, Ephemeris.Name must be the - packed MPC designation. For other types, this is for display only. - - - - The J2000.0 longitude of the ascending node (deg.) - - The J2000.0 longitude of the ascending node - Degrees - - - - - The major or minor planet number - - The major or minor planet number - Number or zero if not numbered - - - - - Orbital period (years) - - Orbital period - Years - - - - - The J2000.0 argument of perihelion (deg.) - - The J2000.0 argument of perihelion - Degrees - - - - - Perihelion distance (AU) - - Perihelion distance - AU - - - - - Reciprocal semi-major axis (1/AU) - - Reciprocal semi-major axis - 1/AU - - - - - Interface to an Earth object that represents the "state" of the Earth at a given Terrestrial Julian date - - Objects of class Earth represent the "state" of the Earth at a given Terrestrial Julian date. - The state includes barycentric and heliocentric position vectors for the earth, plus obliquity, - nutation and the equation of the equinoxes. Unless set by the client, the Earth ephemeris used is - computed using an internal approximation. The client may optionally attach an ephemeris object for - increased accuracy. - Ephemeris Generator
- The ephemeris generator object used with NOVAS-COM must support a single - method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the - NOVAS-COM methods) as its single parameter, and return an array of Double - containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity - (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, - which correspond to the Type, Name, and Number properties of Novas.Planet. -
-
- - - Initialize the Earth object for given terrestrial Julian date - - Terrestrial Julian date - True if successful, else throws an exception - - - - - Earth barycentric position - - Barycentric position vector - AU (Ref J2000) - - - - - Earth barycentric time - - Barycentric dynamical time for given Terrestrial Julian Date - Julian date - - - - - Earth barycentric velocity - - Barycentric velocity vector - AU/day (ref J2000) - - - - - Ephemeris object used to provide the position of the Earth. - - Earth ephemeris object - Earth ephemeris object - - Setting this is optional, if not set, the internal Kepler engine will be used. - - - - Earth equation of equinoxes - - Equation of the equinoxes - Seconds - - - - - Earth heliocentric position - - Heliocentric position vector - AU (ref J2000) - - - - - Earth heliocentric velocity - - Heliocentric velocity - Velocity vector, AU/day (ref J2000) - - - - - Earth mean objiquity - - Mean obliquity of the ecliptic - Degrees - - - - - Earth nutation in longitude - - Nutation in longitude - Degrees - - - - - Earth nutation in obliquity - - Nutation in obliquity - Degrees - - - - - Earth true obliquity - - True obliquity of the ecliptic - Degrees - - - - - Interface to a Planet component that provides characteristics of a solar system body - - Objects of class Planet hold the characteristics of a solar system body. Properties are - type (major or minor planet), number (for major and numbered minor planets), name (for unnumbered - minor planets and comets), the ephemeris object to be used for orbital calculations, an optional - ephemeris object to use for barycenter calculations, and an optional value for delta-T. - The high-level NOVAS astrometric functions are implemented as methods of Planet: - GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), - and GetAstrometricPosition(). These methods operate on the properties of the Planet, and produce - a PositionVector object. For example, to get the topocentric coordinates of a planet, create and - initialize a planet, create initialize and attach an ephemeris object, then call - Planet.GetTopocentricPosition(). The resulting PositionVector's right ascension and declination - properties are the topocentric equatorial coordinates, at the same time, the (optionally - refracted) alt-az coordinates are calculated, and are also contained within the returned - PositionVector. Note that Alt/Az is available in PositionVectors returned from calling - GetTopocentricPosition(). The accuracy of these calculations is typically dominated by the accuracy - of the attached ephemeris generator. - Ephemeris Generator
- By default, Kepler instances are attached for both Earth and Planet objects so it is - not necessary to create and attach these in order to get Kepler accuracy from this - component
- The ephemeris generator object used with NOVAS-COM must support a single - method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the - NOVAS-COM methods) as its single parameter, and return an array of Double - containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity - (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, - which correspond to the Type, Name, and Number properties of Novas.Planet. - -
-
- - - Get an apparent position for given time - - Terrestrial Julian Date for the position - PositionVector for the apparent place. - - - - - Get an astrometric position for given time - - Terrestrial Julian Date for the position - PositionVector for the astrometric place. - - - - - Get an local position for given time - - Terrestrial Julian Date for the position - The observing site - PositionVector for the local place. - - - - - Get a topocentric position for given time - - Terrestrial Julian Date for the position - The observing site - Apply refraction correction - PositionVector for the topocentric place. - - - - - Get a virtual position for given time - - Terrestrial Julian Date for the position - PositionVector for the virtual place. - - - - - Planet delta-T - - The value of delta-T (TT - UT1) to use for reductions - Seconds - Setting this value is optional. If no value is set, an internal delta-T generator is used. - - - - Ephemeris object used to provide the position of the Earth. - - Earth ephemeris object - Earth ephemeris object - - Setting this is optional, if not set, the internal Kepler engine will be used. - - - - The Ephemeris object used to provide positions of solar system bodies. - - Body ephemeris object - Body ephemeris object - - Setting this is optional, if not set, the internal Kepler engine will be used. - - - - - Planet name - - For unnumbered minor planets, (Type=nvMinorPlanet and Number=0), the packed designation - for the minor planet. For other types, this is not significant, but may be used to store - a name. - Name of planet - - - - - Planet number - - For major planets (Type=nvMajorPlanet), a PlanetNumber value. For minor planets - (Type=nvMinorPlanet), the number of the minor planet or 0 for unnumbered minor planet. - Planet number - The major planet number is its number out from the sun starting with Mercury = 1 - - - - The type of solar system body - - The type of solar system body - Value from the BodyType enum - - - - - Interface to the NOVAS-COM PositionVector Class - - Objects of class PositionVector contain vectors used for positions (earth, sites, - stars and planets) throughout NOVAS-COM. Of course, its properties include the x, y, and z - components of the position. Additional properties are right ascension and declination, distance, - and light time (applicable to star positions), and Alt/Az (available only in PositionVectors - returned by Star or Planet methods GetTopocentricPosition()). You can initialize a PositionVector - from a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). - PositionVector has methods that can adjust the coordinates for precession, aberration and - proper motion. Thus, a PositionVector object gives access to some of the lower-level NOVAS functions. - Note: The equatorial coordinate properties of this object are dependent variables, and thus are read-only. Changing any cartesian coordinate will cause the equatorial coordinates to be recalculated. - - - - - Adjust the position vector of an object for aberration of light - - The velocity vector of the observer - The algorithm includes relativistic terms - - - - Adjust the position vector for precession of equinoxes between two given epochs - - The first epoch (Terrestrial Julian Date) - The second epoch (Terrestrial Julian Date) - The coordinates are referred to the mean equator and equinox of the two respective epochs. - - - - Adjust the position vector for proper motion (including foreshortening effects) - - The velocity vector of the object - The first epoch (Terrestrial Julian Date) - The second epoch (Terrestrial Julian Date) - True if successful or throws an exception. - - If the position vector x, y or z values has not been set - If the supplied velocity vector does not have valid x, y and z components - - - - Initialize the PositionVector from a Site object and Greenwich apparent sidereal time. - - The Site object from which to initialize - Greenwich Apparent Sidereal Time - True if successful or throws an exception - The GAST parameter must be for Greenwich, not local. The time is rotated through the - site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian Date and - Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). - - - - Initialize the PositionVector from a Site object using UTC Julian date and Delta-T - - The Site object from which to initialize - UTC Julian Date - The value of Delta-T (TT - UT1) to use for reductions (seconds) - True if successful or throws an exception - The Julian date must be UTC Julian date, not terrestrial. - - - - - Initialize the PositionVector from a Star object. - - The Star object from which to initialize - True if successful or throws an exception - - If Parallax, RightAScension or Declination is not available in the supplied star object. - - - - The azimuth coordinate (degrees, + east) - - The azimuth coordinate - Degrees, + East - - - - - Declination coordinate - - Declination coordinate - Degrees - - - - - Distance/Radius coordinate - - Distance/Radius coordinate - AU - - - - - The elevation (altitude) coordinate (degrees, + up) - - The elevation (altitude) coordinate (degrees, + up) - (Degrees, + up - Elevation is available only in PositionVectors returned from calls to - Star.GetTopocentricPosition() and/or Planet.GetTopocentricPosition(). - When the position vector has not been - initialised from Star.GetTopoCentricPosition and Planet.GetTopocentricPosition - - - - Light time from body to origin, days. - - Light time from body to origin - Days - - - - - RightAscension coordinate, hours - - RightAscension coordinate - Hours - - - - - Position cartesian x component - - Cartesian x component - Cartesian x component - - - - - Position cartesian y component - - Cartesian y component - Cartesian y component - - - - - Position cartesian z component - - Cartesian z component - Cartesian z component - - - - - Interface for PositionVector methods that are only accessible through .NET and not through COM - - - - - - Initialize the PositionVector from a Site object using UTC Julian date - - The Site object from which to initialize - UTC Julian Date - True if successful or throws an exception - The Julian date must be UTC Julian date, not terrestrial. Calculations will use the internal delta-T tables and estimator to get - delta-T. - This overload is not available through COM, please use - "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" - with delta_t set to 0.0 to achieve this effect. - - - - - Interface to the NOVAS-COM Site Class - - Objects of class Site contain the specifications for an observer's location on the Earth - ellipsoid. Properties are latitude, longitude, height above mean sea level, the ambient temperature - and the sea-level barmetric pressure. The latter two are used only for optional refraction corrections. - Latitude and longitude are (common) geodetic, not geocentric. - - - - Set all site properties in one method call - - The geodetic latitude (degrees, + north) - The geodetic longitude (degrees, +east) - Height above sea level (meters) - - - - - Height above mean sea level - - Height above mean sea level - Meters - - - - - Geodetic latitude (degrees, + north) - - Geodetic latitude - Degrees, + north - - - - - Geodetic longitude (degrees, + east) - - Geodetic longitude - Degrees, + east - - - - - Barometric pressure (millibars) - - Barometric pressure - Millibars - - - - - Ambient temperature (deg. Celsius) - - Ambient temperature - Degrees Celsius) - - - - - Interface to the NOVAS-COM Star Class - - Objects of class Site contain the specifications for a star's catalog position in either FK5 or Hipparcos units (both must be J2000). Properties are right ascension and declination, proper motions, parallax, radial velocity, catalog type (FK5 or HIP), catalog number, optional ephemeris engine to use for barycenter calculations, and an optional value for delta-T. Unless you specifically set the DeltaT property, calculations performed by this class which require the value of delta-T (TT - UT1) rely on an internal function to estimate delta-T. -The high-level NOVAS astrometric functions are implemented as methods of Star: - GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), - and GetAstrometricPosition(). These methods operate on the properties of the Star, and produce - a PositionVector object. For example, to get the topocentric coordinates of a star, simply create - and initialize a Star, then call Star.GetTopocentricPosition(). The resulting vaPositionVector's - right ascension and declination properties are the topocentric equatorial coordinates, at the same - time, the (optionally refracted) alt-az coordinates are calculated, and are also contained within - the returned PositionVector. Note that Alt/Az is available in PositionVectors returned from calling - GetTopocentricPosition(). - - - - Initialize all star properties with one call - - Catalog mean right ascension (hours) - Catalog mean declination (degrees) - Catalog mean J2000 proper motion in right ascension (sec/century) - Catalog mean J2000 proper motion in declination (arcsec/century) - Catalog mean J2000 parallax (arcsec) - Catalog mean J2000 radial velocity (km/sec) - Assumes positions are FK5. If Parallax is set to zero, NOVAS-COM assumes the object - is on the "celestial sphere", which has a distance of 10 megaparsecs. - - - - Initialise all star properties in one call using Hipparcos data. Transforms to FK5 standard used by NOVAS. - - Catalog mean right ascension (hours) - Catalog mean declination (degrees) - Catalog mean J2000 proper motion in right ascension (sec/century) - Catalog mean J2000 proper motion in declination (arcsec/century) - Catalog mean J2000 parallax (arcsec) - Catalog mean J2000 radial velocity (km/sec) - Assumes positions are Hipparcos standard and transforms to FK5 standard used by NOVAS. - If Parallax is set to zero, NOVAS-COM assumes the object is on the "celestial sphere", - which has a distance of 10 megaparsecs. - - - - - Get an apparent position for a given time - - Terrestrial Julian Date for the position - PositionVector for the apparent place. - - - - - Get an astrometric position for a given time - - Terrestrial Julian Date for the position - PositionVector for the astrometric place. - - - - - Get a local position for a given site and time - - Terrestrial Julian Date for the position - A Site object representing the observing site - PositionVector for the local place. - - - - - Get a topocentric position for a given site and time - - Terrestrial Julian Date for the position - A Site object representing the observing site - True to apply atmospheric refraction corrections - PositionVector for the topocentric place. - - - - - Get a virtual position at a given time - - Terrestrial Julian Date for the position - PositionVector for the virtual place. - - - - - Three character catalog code for the star's data - - Three character catalog code for the star's data - Three character catalog code for the star's data - Typically "FK5" but may be "HIP". For information only. - - - - Mean catalog J2000 declination coordinate (degrees) - - Mean catalog J2000 declination coordinate - Degrees - - - - - The value of delta-T (TT - UT1) to use for reductions. - - The value of delta-T (TT - UT1) to use for reductions. - Seconds - If this property is not set, calculations will use an internal function to estimate delta-T. - - - - Ephemeris object used to provide the position of the Earth. - - Ephemeris object used to provide the position of the Earth. - Ephemeris object - If this value is not set, an internal Kepler object will be used to determine - Earth ephemeris - - - - The catalog name of the star (50 char max) - - The catalog name of the star - Name (50 char max) - - - - - The catalog number of the star - - The catalog number of the star - The catalog number of the star - - - - - Catalog mean J2000 parallax (arcsec) - - Catalog mean J2000 parallax - Arc seconds - - - - - Catalog mean J2000 proper motion in declination (arcsec/century) - - Catalog mean J2000 proper motion in declination - Arc seconds per century - - - - - Catalog mean J2000 proper motion in right ascension (sec/century) - - Catalog mean J2000 proper motion in right ascension - Seconds per century - - - - - Catalog mean J2000 radial velocity (km/sec) - - Catalog mean J2000 radial velocity - Kilometers per second - - - - - Catalog mean J2000 right ascension coordinate (hours) - - Catalog mean J2000 right ascension coordinate - Hours - - - - - interface to the NOVAS_COM VelocityVector Class - - Objects of class VelocityVector contain vectors used for velocities (earth, sites, - planets, and stars) throughout NOVAS-COM. Of course, its properties include the x, y, and z - components of the velocity. Additional properties are the velocity in equatorial coordinates of - right ascension dot, declination dot and radial velocity. You can initialize a PositionVector from - a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). For the star - object the proper motions, distance and radial velocity are used, for a site, the velocity is that - of the observer with respect to the Earth's center of mass. - - - - Initialize the VelocityVector from a Site object and Greenwich Apparent Sdereal Time. - - The Site object from which to initialize - Greenwich Apparent Sidereal Time - True if OK or throws an exception - The velocity vector is that of the observer with respect to the Earth's center - of mass. The GAST parameter must be for Greenwich, not local. The time is rotated through - the site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian - Date and optionally Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). - - - - Initialize the VelocityVector from a Site object using UTC Julian Date and Delta-T - - The Site object from which to initialize - UTC Julian Date - The optional value of Delta-T (TT - UT1) to use for reductions (seconds) - True if OK otherwise throws an exception - The velocity vector is that of the observer with respect to the Earth's center - of mass. The Julian date must be UTC Julian date, not terrestrial. - - - - Initialize the VelocityVector from a Star object. - - The Star object from which to initialize - True if OK otherwise throws an exception - The proper motions, distance and radial velocity are used in the velocity calculation. - If any of: Parallax, RightAscension, Declination, - ProperMotionRA, ProperMotionDec or RadialVelocity are not available in the star object - - - - Linear velocity along the declination direction (AU/day) - - Linear velocity along the declination direction - AU/day - This is not the proper motion (which is an angular rate and is dependent on the distance to the object). - - - - Linear velocity along the radial direction (AU/day) - - Linear velocity along the radial direction - AU/day - - - - - Linear velocity along the right ascension direction (AU/day) - - Linear velocity along the right ascension direction - AU/day - - - - - Cartesian x component of velocity (AU/day) - - Cartesian x component of velocity - AU/day - - - - - Cartesian y component of velocity (AU/day) - - Cartesian y component of velocity - AU/day - - - - - Cartesian z component of velocity (AU/day) - - Cartesian z component of velocity - AU/day - - - - - Interface for VelocityVector methods that are only accessible through .NET and not through COM - - - - - - Initialize the VelocityVector from a Site object using UTC Julian Date - - The Site object from which to initialize - UTC Julian Date - True if OK otherwise throws an exception - The velocity vector is that of the observer with respect to the Earth's center - of mass. The Julian date must be UTC Julian date, not terrestrial. This call will use - the internal tables and estimator to get delta-T. - This overload is not available through COM, please use - "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" - with delta_t set to 0.0 to achieve this effect. - - - - - NOVAS-COM: Represents the "state" of the Earth at a given Terrestrial Julian date - - NOVAS-COM objects of class Earth represent the "state" of the Earth at a given Terrestrial Julian date. - The state includes barycentric and heliocentric position vectors for the earth, plus obliquity, - nutation and the equation of the equinoxes. Unless set by the client, the Earth ephemeris used is - computed using an internal approximation. The client may optionally attach an ephemeris object for - increased accuracy. - Ephemeris Generator
- The ephemeris generator object used with NOVAS-COM must support a single - method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the - NOVAS-COM methods) as its single parameter, and return an array of Double - containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity - (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, - which correspond to the Type, Name, and Number properties of Novas.Planet. -
-
- - - Create a new instance of the Earth object - - - - - - Earth barycentric position - - Barycentric position vector - AU (Ref J2000) - - - - - Earth barycentric time - - Barycentric dynamical time for given Terrestrial Julian Date - Julian date - - - - - Earth barycentric velocity - - Barycentric velocity vector - AU/day (ref J2000) - - - - - Ephemeris object used to provide the position of the Earth. - - Earth ephemeris object - Earth ephemeris object - - Setting this is optional, if not set, the internal Kepler engine will be used. - - - - Earth equation of equinoxes - - Equation of the equinoxes - Seconds - - - - - Earth heliocentric position - - Heliocentric position vector - AU (ref J2000) - - - - - Earth heliocentric velocity - - Heliocentric velocity - Velocity vector, AU/day (ref J2000) - - - - - Earth mean objiquity - - Mean obliquity of the ecliptic - Degrees - - - - - Earth nutation in longitude - - Nutation in longitude - Degrees - - - - - Earth nutation in obliquity - - Nutation in obliquity - Degrees - - - - - Initialize the Earth object for given terrestrial Julian date - - Terrestrial Julian date - True if successful, else throws an exception - - - - - Earth true obliquity - - True obliquity of the ecliptic - Degrees - - - - - NOVAS-COM: Provide characteristics of a solar system body - - NOVAS-COM objects of class Planet hold the characteristics of a solar system body. Properties are - type (major or minor planet), number (for major and numbered minor planets), name (for unnumbered - minor planets and comets), the ephemeris object to be used for orbital calculations, an optional - ephemeris object to use for barycenter calculations, and an optional value for delta-T. - The number values for major planets are 1 to 9 for Mercury to Pluto, 10 for Sun and 11 for Moon. The last two obviously - aren't planets, but this numbering is a NOVAS convention that enables us to retrieve useful information about these bodies. - - The high-level NOVAS astrometric functions are implemented as methods of Planet: - GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), - and GetAstrometricPosition(). These methods operate on the properties of the Planet, and produce - a PositionVector object. For example, to get the topocentric coordinates of a planet, create and - initialize a planet then call - Planet.GetTopocentricPosition(). The resulting PositionVector's right ascension and declination - properties are the topocentric equatorial coordinates, at the same time, the (optionally - refracted) alt-az coordinates are calculated, and are also contained within the returned - PositionVector. Note that Alt/Az is available in PositionVectors returned from calling - GetTopocentricPosition(). The accuracy of these calculations is typically dominated by the accuracy - of the attached ephemeris generator. - Ephemeris Generator
- By default, Kepler instances are attached for both Earth and Planet objects so it is - not necessary to create and attach these in order to get Kepler accuracy from this - component
- The ephemeris generator object used with NOVAS-COM must support a single - method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the - NOVAS-COM methods) as its single parameter, and return an array of Double - containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity - (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, - which correspond to the Type, Name, and Number properties of Novas.Planet. - -
-
- - - Create a new instance of the Plant class - - This assigns default Kepler instances for the Earth and Planet objects so it is - not necessary to create and attach Kepler objects in order to get Kepler accuracy from this - component - - - - Planet delta-T - - The value of delta-T (TT - UT1) to use for reductions - Seconds - Setting this value is optional. If no value is set, an internal delta-T generator is used. - - - - Ephemeris object used to provide the position of the Earth. - - Earth ephemeris object - Earth ephemeris object - - Setting this is optional, if not set, the internal Kepler engine will be used. - - - - The Ephemeris object used to provide positions of solar system bodies. - - Body ephemeris object - Body ephemeris object - - Setting this is optional, if not set, the internal Kepler engine will be used. - - - - - Get an apparent position for given time - - Terrestrial Julian Date for the position - PositionVector for the apparent place. - - - - - Get an astrometric position for given time - - Terrestrial Julian Date for the position - PositionVector for the astrometric place. - - - - - Get an local position for given time - - Terrestrial Julian Date for the position - The observing site - PositionVector for the local place. - - - - - Get a topocentric position for given time - - Terrestrial Julian Date for the position - The observing site - Apply refraction correction - PositionVector for the topocentric place. - - - - - Get a virtual position for given time - - Terrestrial Julian Date for the position - PositionVector for the virtual place. - - - - - Planet name - - For unnumbered minor planets, (Type=nvMinorPlanet and Number=0), the packed designation - for the minor planet. For other types, this is not significant, but may be used to store - a name. - Name of planet - - - - - Planet number - - For major planets (Type = , a PlanetNumber value from 1 to 11. For minor planets - (Type = , the number of the minor planet or 0 for unnumbered minor planet. - Planet number - The major planet number is its number out from the sun starting with Mercury = 1, ending at Pluto = 9. Planet 10 gives - values for the Sun and planet 11 gives values for the Moon - - - - The type of solar system body - - The type of solar system body - Value from the BodyType enum - - - - - NOVAS-COM: PositionVector Class - - NOVAS-COM objects of class PositionVector contain vectors used for positions (earth, sites, - stars and planets) throughout NOVAS-COM. Of course, its properties include the x, y, and z - components of the position. Additional properties are right ascension and declination, distance, - and light time (applicable to star positions), and Alt/Az (available only in PositionVectors - returned by Star or Planet methods GetTopocentricPosition()). You can initialize a PositionVector - from a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). - PositionVector has methods that can adjust the coordinates for precession, aberration and - proper motion. Thus, a PositionVector object gives access to some of the lower-level NOVAS functions. - Note: The equatorial coordinate properties of this object are dependent variables, and thus are read-only. Changing any cartesian coordinate will cause the equatorial coordinates to be recalculated. - - - - - Create a new, uninitialised position vector - - - - - - Create a new position vector with supplied initial values - - Position vector x co-ordinate - Position vector y co-ordinate - Position vector z co-ordinate - Right ascension (hours) - Declination (degrees) - Distance to object - Light-time to object - Object azimuth - Object altitude - - - - - Create a new position vector with supplied initial values - - Position vector x co-ordinate - Position vector y co-ordinate - Position vector z co-ordinate - Right ascension (hours) - Declination (degrees) - Distance to object - Light-time to object - - - - - Adjust the position vector of an object for aberration of light - - The velocity vector of the observer - The algorithm includes relativistic terms - - - - The azimuth coordinate (degrees, + east) - - The azimuth coordinate - Degrees, + East - - - - - Declination coordinate - - Declination coordinate - Degrees - - - - - Distance/Radius coordinate - - Distance/Radius coordinate - AU - - - - - The elevation (altitude) coordinate (degrees, + up) - - The elevation (altitude) coordinate (degrees, + up) - (Degrees, + up - Elevation is available only in PositionVectors returned from calls to - Star.GetTopocentricPosition() and/or Planet.GetTopocentricPosition(). - When the position vector has not been - initialised from Star.GetTopoCentricPosition and Planet.GetTopocentricPosition - - - - Light time from body to origin, days. - - Light time from body to origin - Days - - - - - Adjust the position vector for precession of equinoxes between two given epochs - - The first epoch (Terrestrial Julian Date) - The second epoch (Terrestrial Julian Date) - The coordinates are referred to the mean equator and equinox of the two respective epochs. - - - - Adjust the position vector for proper motion (including foreshortening effects) - - The velocity vector of the object - The first epoch (Terrestrial Julian Date) - The second epoch (Terrestrial Julian Date) - True if successful or throws an exception. - - If the position vector x, y or z values has not been set - If the supplied velocity vector does not have valid x, y and z components - - - - RightAscension coordinate, hours - - RightAscension coordinate - Hours - - - - - Initialize the PositionVector from a Site object and Greenwich apparent sidereal time. - - The Site object from which to initialize - Greenwich Apparent Sidereal Time - True if successful or throws an exception - The GAST parameter must be for Greenwich, not local. The time is rotated through the - site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian Date and - Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). - - - - Initialize the PositionVector from a Site object using UTC Julian date - - The Site object from which to initialize - UTC Julian Date - True if successful or throws an exception - The Julian date must be UTC Julian date, not terrestrial. Calculations will use the internal delta-T tables and estimator to get - delta-T. - This overload is not available through COM, please use - "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" - with delta_t set to 0.0 to achieve this effect. - - - - - Initialize the PositionVector from a Site object using UTC Julian date and Delta-T - - The Site object from which to initialize - UTC Julian Date - The value of Delta-T (TT - UT1) to use for reductions (seconds) - True if successful or throws an exception - The Julian date must be UTC Julian date, not terrestrial. - - - - Initialize the PositionVector from a Star object. - - The Star object from which to initialize - True if successful or throws an exception - - If Parallax, RightAScension or Declination is not available in the supplied star object. - - - - Position cartesian x component - - Cartesian x component - Cartesian x component - - - - - Position cartesian y component - - Cartesian y component - Cartesian y component - - - - - Position cartesian z component - - Cartesian z component - Cartesian z component - - - - - NOVAS-COM: Site Class - - NOVAS-COM objects of class Site contain the specifications for an observer's location on the Earth - ellipsoid. Properties are latitude, longitude, height above mean sea level, the ambient temperature - and the sea-level barmetric pressure. The latter two are used only for optional refraction corrections. - Latitude and longitude are (common) geodetic, not geocentric. - - - - Initialises a new site object - - - - - - Height above mean sea level - - Height above mean sea level - Meters - - - - - Geodetic latitude (degrees, + north) - - Geodetic latitude - Degrees, + north - - - - - Geodetic longitude (degrees, + east) - - Geodetic longitude - Degrees, + east - - - - - Barometric pressure (millibars) - - Barometric pressure - Millibars - - - - - Set all site properties in one method call - - The geodetic latitude (degrees, + north) - The geodetic longitude (degrees, +east) - Height above sea level (meters) - - - - - Ambient temperature (deg. Celsius) - - Ambient temperature - Degrees Celsius) - - - - - NOVAS-COM: Star Class - - NOVAS-COM objects of class Star contain the specifications for a star's catalog position in either FK5 or Hipparcos units (both must be J2000). Properties are right ascension and declination, proper motions, parallax, radial velocity, catalog type (FK5 or HIP), catalog number, optional ephemeris engine to use for barycenter calculations, and an optional value for delta-T. Unless you specifically set the DeltaT property, calculations performed by this class which require the value of delta-T (TT - UT1) rely on an internal function to estimate delta-T. -The high-level NOVAS astrometric functions are implemented as methods of Star: - GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), - and GetAstrometricPosition(). These methods operate on the properties of the Star, and produce - a PositionVector object. For example, to get the topocentric coordinates of a star, simply create - and initialize a Star, then call Star.GetTopocentricPosition(). The resulting vaPositionVector's - right ascension and declination properties are the topocentric equatorial coordinates, at the same - time, the (optionally refracted) alt-az coordinates are calculated, and are also contained within - the returned PositionVector. Note that Alt/Az is available in PositionVectors returned from calling - GetTopocentricPosition(). - - - - Initialise a new instance of the star class - - - - - - Three character catalog code for the star's data - - Three character catalog code for the star's data - Three character catalog code for the star's data - Typically "FK5" but may be "HIP". For information only. - - - - Mean catalog J2000 declination coordinate (degrees) - - Mean catalog J2000 declination coordinate - Degrees - - - - - The value of delta-T (TT - UT1) to use for reductions. - - The value of delta-T (TT - UT1) to use for reductions. - Seconds - If this property is not set, calculations will use an internal function to estimate delta-T. - - - - Ephemeris object used to provide the position of the Earth. - - Ephemeris object used to provide the position of the Earth. - Ephemeris object - If this value is not set, an internal Kepler object will be used to determine - Earth ephemeris - - - - Get an apparent position for a given time - - Terrestrial Julian Date for the position - PositionVector for the apparent place. - - - - - Get an astrometric position for a given time - - Terrestrial Julian Date for the position - PositionVector for the astrometric place. - - - - - Get a local position for a given site and time - - Terrestrial Julian Date for the position - A Site object representing the observing site - PositionVector for the local place. - - - - - Get a topocentric position for a given site and time - - Terrestrial Julian Date for the position - A Site object representing the observing site - True to apply atmospheric refraction corrections - PositionVector for the topocentric place. - - - - - Get a virtual position at a given time - - Terrestrial Julian Date for the position - PositionVector for the virtual place. - - - - - The catalog name of the star (50 char max) - - The catalog name of the star - Name (50 char max) - - - - - The catalog number of the star - - The catalog number of the star - The catalog number of the star - - - - - Catalog mean J2000 parallax (arcsec) - - Catalog mean J2000 parallax - Arc seconds - - - - - Catalog mean J2000 proper motion in declination (arcsec/century) - - Catalog mean J2000 proper motion in declination - Arc seconds per century - - - - - Catalog mean J2000 proper motion in right ascension (sec/century) - - Catalog mean J2000 proper motion in right ascension - Seconds per century - - - - - Catalog mean J2000 radial velocity (km/sec) - - Catalog mean J2000 radial velocity - Kilometers per second - - - - - Catalog mean J2000 right ascension coordinate (hours) - - Catalog mean J2000 right ascension coordinate - Hours - - - - - Initialize all star properties with one call - - Catalog mean right ascension (hours) - Catalog mean declination (degrees) - Catalog mean J2000 proper motion in right ascension (sec/century) - Catalog mean J2000 proper motion in declination (arcsec/century) - Catalog mean J2000 parallax (arcsec) - Catalog mean J2000 radial velocity (km/sec) - Assumes positions are FK5. If Parallax is set to zero, NOVAS-COM assumes the object - is on the "celestial sphere", which has a distance of 10 megaparsecs. - - - - Initialise all star properties in one call using Hipparcos data. Transforms to FK5 standard used by NOVAS. - - Catalog mean right ascension (hours) - Catalog mean declination (degrees) - Catalog mean J2000 proper motion in right ascension (sec/century) - Catalog mean J2000 proper motion in declination (arcsec/century) - Catalog mean J2000 parallax (arcsec) - Catalog mean J2000 radial velocity (km/sec) - Assumes positions are Hipparcos standard and transforms to FK5 standard used by NOVAS. - If Parallax is set to zero, NOVAS-COM assumes the object is on the "celestial sphere", - which has a distance of 10 megaparsecs. - - - - - NOVAS-COM: VelocityVector Class - - NOVAS-COM objects of class VelocityVector contain vectors used for velocities (earth, sites, - planets, and stars) throughout NOVAS-COM. Of course, its properties include the x, y, and z - components of the velocity. Additional properties are the velocity in equatorial coordinates of - right ascension dot, declination dot and radial velocity. You can initialize a PositionVector from - a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). For the star - object the proper motions, distance and radial velocity are used, for a site, the velocity is that - of the observer with respect to the Earth's center of mass. - - - - Creates a new velocity vector object - - - - - - Linear velocity along the declination direction (AU/day) - - Linear velocity along the declination direction - AU/day - This is not the proper motion (which is an angular rate and is dependent on the distance to the object). - - - - Linear velocity along the radial direction (AU/day) - - Linear velocity along the radial direction - AU/day - - - - - Linear velocity along the right ascension direction (AU/day) - - Linear velocity along the right ascension direction - AU/day - - - - - Initialize the VelocityVector from a Site object and Greenwich Apparent Sdereal Time. - - The Site object from which to initialize - Greenwich Apparent Sidereal Time - True if OK or throws an exception - The velocity vector is that of the observer with respect to the Earth's center - of mass. The GAST parameter must be for Greenwich, not local. The time is rotated through - the site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian - Date and optionally Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). - - - - Initialize the VelocityVector from a Site object using UTC Julian Date - - The Site object from which to initialize - UTC Julian Date - True if OK otherwise throws an exception - The velocity vector is that of the observer with respect to the Earth's center - of mass. The Julian date must be UTC Julian date, not terrestrial. This call will use - the internal tables and estimator to get delta-T. - This overload is not available through COM, please use - "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" - with delta_t set to 0.0 to achieve this effect. - - - - - Initialize the VelocityVector from a Site object using UTC Julian Date and Delta-T - - The Site object from which to initialize - UTC Julian Date - The optional value of Delta-T (TT - UT1) to use for reductions (seconds) - True if OK otherwise throws an exception - The velocity vector is that of the observer with respect to the Earth's center - of mass. The Julian date must be UTC Julian date, not terrestrial. - - - - Initialize the VelocityVector from a Star object. - - The Star object from which to initialize - True if OK otherwise throws an exception - The proper motions, distance and radial velocity are used in the velocity calculation. - If any of: Parallax, RightAscension, Declination, - ProperMotionRA, ProperMotionDec or RadialVelocity are not available in the star object - - - - Cartesian x component of velocity (AU/day) - - Cartesian x component of velocity - AU/day - - - - - Cartesian y component of velocity (AU/day) - - Cartesian y component of velocity - AU/day - - - - - Cartesian z component of velocity (AU/day) - - Cartesian z component of velocity - AU/day - - - - - Interface to the NOVAS2 component - - Implemented by the NOVAS2COM component - - - - Computes the apparent place of a star - - TT (or TDT) Julian date for apparent place. - Structure containing the body designation for the earth - Catalog entry structure containing J2000.0 catalog data with FK5-style units (defined in novas.h). - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. -
-  0...Everything OK
- >0...Error code from function 'solarsystem'.
- -
- - - Computes the topocentric place of a star - - TT (or TDT) Julian date for topocentric place. - Structure containing the body designation for the Earth. - Difference TT (or TDT)-UT1 at 'tjd', in seconds. - Catalog entry structure containing J2000.0 catalog data with FK5-style units. - Structure containing observer's location - OUT: Topocentric right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Topocentric declination in degrees, referred to true equator and equinox of date 'tjd'. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
- -
- - - Compute the apparent place of a planet or other solar system body. - - TT (or TDT) Julian date for apparent place. - Structure containing the body designation for the solar system body - Structure containing the body designation for the Earth - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: True distance from Earth to planet at 'tjd' in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the topocentric place of a planet, given the location of the observer. - - TT (or TDT) Julian date for topocentric place. - structure containing the body designation for the solar system body - structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - structure containing observer's location - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: True distance from Earth to planet at 'tjd' in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the virtual place of a star - - TT (or TDT) Julian date for virtual place. - Pointer to structure containing the body designation for the Earth. - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'
- 
- - Computes the virtual place of a star at date 'tjd', given its - mean place, proper motion, parallax, and radial velocity for J2000.0. -
- - - Computes the local place of a star - - TT (or TDT) Julian date for local place. - Pointer to structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - Pointer to structure containing observer's location - OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Local declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
-
- -
- - - Computes the virtual place of a planet or other solar system body. - - TT (or TDT) Julian date for virtual place. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the local place of a planet or other solar system body, given the location of the observer. - - TT (or TDT) Julian date for local place. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - Pointer to structure containing observer's location - OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Local declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the astrometric place of a star - - TT (or TDT) Julian date for astrometric place. - Pointer to structure containing the body designation for the Earth - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
- 
- Computes the astrometric place of a star, given its mean place, proper motion, parallax, and radial velocity for J2000.0. -
- - - Computes the astrometric place of a planet or other solar system body. - - TT (or TDT) Julian date for calculation. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Transform apparent equatorial coordinates to horizon coordinates - - TT (or TDT) Julian date. - Difference TT (or TDT)-UT1 at 'tjd', in seconds. - Conventionally-defined x coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. - structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option - OUT: Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - OUT: Topocentric azimuth (measured east from north) in degrees. - OUT: Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. - OUT: Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms apparent equatorial coordinates (right - ascension and declination) to horizon coordinates (zenith - distance and azimuth). It uses a method that properly accounts - for polar motion, which is significant at the sub-arcsecond - level. This function can also adjust coordinates for atmospheric - refraction. - - - - To convert Hipparcos data at epoch J1991.25 to epoch J2000.0 and FK5-style units. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0, with all members having FK5 catalog units. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. -
- 1. Hipparcos epoch and units:
-    Epoch: J1991.25
-    Right ascension (RA): degrees
-    Declination (Dec): degrees
-    Proper motion in RA * cos (Dec): milliarcseconds per year
-    Proper motion in Dec: milliarcseconds per year
-    Parallax: milliarcseconds
-    Radial velocity: kilometers per second (not in catalog)
- 
- 2. FK5 epoch and units:
-    Epoch: J2000.0
-    Right ascension: hours
-    Declination: degrees
-    Proper motion in RA: seconds of time per Julian century
-    Proper motion in Dec: arcseconds per Julian century
-    Parallax: arcseconds
-    Radial velocity: kilometers per second
-
-
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option
-    = 1 ... change epoch; same equator and equinox
-    = 2 ... change equator and equinox; same epoch
-    = 3 ... change equator and equinox and epoch
-
- TT Julian date, or year, of input catalog data. - An entry from the input catalog - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - OUT: The transformed catalog entry -
- 1. 'date_incat' and 'date_newcat' may be specified either as a 
-    Julian date (e.g., 2433282.5) or a Julian year and fraction 
-    (e.g., 1950.0).  Values less than 10000 are assumed to be years.
- 
- 2. option = 1 updates the star's data to account for the star's space motion between 
-               the first and second dates, within a fixed reference frame.
-    option = 2 applies a rotation of the reference frame corresponding to precession 
-               between the first and second dates, but leaves the star fixed in space.
-    option = 3 provides both transformations.
- 
- 3. This subroutine cannot be properly used to bring data from 
-    old (pre-FK5) star catalogs into the modern system, because old 
-    catalogs were compiled using a set of constants that are 
-    incompatible with the IAU (1976) system.
- 
- 4. This function uses TDB Julian dates internally, but no 
-    distinction between TDB and TT is necessary.
-
-
- - - Computes the Greenwich apparent sidereal time, at Julian date 'jd_high' + 'jd_low'. - - Julian date, integral part. - Julian date, fractional part. - Equation of the equinoxes (seconds of time). [Note: this quantity is computed by function 'earthtilt'.] - Greenwich apparent sidereal time, in hours. - - - - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of first epoch. - TDB Julian date of second epoch. - OUT: Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of second epoch. - The coordinates are referred to the mean equator and equinox of the two respective epochs. - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'tjd'. - - TDB Julian date of the desired time - OUT: Mean obliquity of the ecliptic in degrees at 'tjd'. - OUT: True obliquity of the ecliptic in degrees at 'tjd'. - OUT: Equation of the equinoxes in seconds of time at 'tjd'. - OUT: Nutation in longitude in arcseconds at 'tjd'. - OUT: Nutation in obliquity in arcseconds at 'tjd'. - - - - - This function allows for the specification of celestial pole offsets for high-precision applications. - - Value of offset in delta psi (dpsi) in arcseconds. - Value of offset in delta epsilon (deps) in arcseconds. - These are added to the nutation parameters delta psi and delta epsilon. - 1. This function sets the values of global variables 'PSI_COR'and 'EPS_COR' declared at the top of file 'novas.c'. These global variables are used only in NOVAS function 'earthtilt'. - 2. This function, if used, should be called before any other NOVAS functions for a given date. Values of the pole offsets specified via a call to this function will be used until explicitly changed. - 3. Daily values of the offsets are published, for example, in IERS Bulletins A and B. - 4. This function is the "C" version of Fortran NOVAS routine "celpol". - - - - - Retrieves the position and velocity of a body from a fundamental ephemeris. - - TDB Julian date. - Structure containing the designation of the body of interest - Origin point (solar system barycentre or centre of mass of the Sun - OUT: Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Velocity vector of 'body' at tjd; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
- 0    ... Everything OK.
- 1    ... Invalid value of 'origin'.
- 2    ... Invalid value of 'type' in 'cel_obj'.
- 3    ... Unable to allocate memory.
- 10+n ... where n is the error code from 'solarsystem'.
- 20+n ... where n is the error code from 'readeph'.
- -
- - - Provides the position and velocity of the Earth - - TDB Julian date. - Body identification number. -
- Set 'body' = 0 or 'body' = 1 or 'body' = 10 for the Sun.
- Set 'body' = 2 or 'body' = 3 for the Earth.
-
- Required origin: solar system barycenter or center of mass of the Sun - OUT: Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
- 0...Everything OK.
- 1...Input Julian date ('tjd') out of range.
- 2...Invalid value of 'body'.
-
- Provides the position and velocity of the Earth at epoch 'tjd' by evaluating a closed-form theory without reference to an external file. This function can also provide the position and velocity of the Sun. -
- - - Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - OUT: Right ascension in hours. - OUT: Declination in degrees. -
- 0...Everything OK.
- 1...All vector components are zero; 'ra' and 'dec' are indeterminate.
- 2...Both vec[0] and vec[1] are zero, but vec[2] is nonzero; 'ra' is indeterminate.
-
- -
- - - Converts angular quanities for stars to vectors. - - Catalog entry structure containing J2000.0 catalog data with FK5-style units - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance - Position vector, equatorial rectangular coordinates (AU). - - - - - Obtains the barycentric and heliocentric positions and velocities of the Earth from the solar system ephemeris. - - TT (or TDT) Julian date. - Structure containing the body designation for the Earth. - OUT: TDB Julian date corresponding to 'tjd'. - OUT: Barycentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Barycentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. - OUT: Heliocentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Heliocentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
-
- -
- - - Computes the mean place of a star for J2000.0 - - TT (or TDT) Julian date of apparent place. - Pointer to structure containing the body designation for the Earth - Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: Mean right ascension J2000.0 in hours. - OUT: Mean declination J2000.0 in degrees. -
-   0...Everything OK.
-   1...Iterative process did not converge after 20 iterations.
- >10...Error from function 'app_star'.
- Computes the mean place of a star for J2000.0, given its apparent - place at date 'tjd'. Proper motion, parallax and radial velocity - are assumed to be zero. - -
- - - Transforms a vector from an Earth-fixed geographic system to a space-fixed system - - TT (or TDT) Julian date - Greenwich apparent sidereal time, in hours. - Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. - Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. - Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. - OUT: Vector in geocentric rectangular space-fixed system, referred to mean equator and equinox of J2000.0. - Transforms a vector from an Earth-fixed geographic system to a space-fixed system based on mean equator and equinox of J2000.0; applies rotations for wobble, spin, nutation, and precession. - - - - Transforms geocentric rectangular coordinates from rotating system to non-rotating system - - Local apparent sidereal time at reference meridian, in hours. - Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal reference meridian. - OUT: Vector in geocentric rectangular non-rotating system, referred to true equator and equinox of date. - Transforms geocentric rectangular coordinates from rotating system based on rotational equator and orthogonal reference meridian to non-rotating system based on true equator and equinox of date. - - - - Corrects Earth-fixed geocentric rectangular coordinates for polar motion. - - Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. - Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. - Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. - OUT: Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal Greenwich meridian - Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Transforms a vector from Earth-fixed geographic system to rotating system based on rotational equator and orthogonal Greenwich meridian through axis of rotation. - - - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Longitude, latitude and height of the observer (in a SiteInfoStruct) - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/Day. - - - - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - OUT: Position vector at second epoch. - - - - - Moves the origin of coordinates from the barycenter of the solar system to the center of mass of the Earth - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU. - OUT: Position vector, referred to origin at center of mass of the Earth, components in AU. - OUT: Light time from body to Earth in days. - This corrects for parallax. - - - - Corrects position vector for the deflection of light in the gravitational field of the Sun. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Position vector of center of mass of the Earth, referred to origin at center of mass of the Sun, components in AU. - Position vector, referred to origin at center of mass of the Earth, corrected for gravitational deflection, components in AU. - 0...Everything OK. - This function is valid for bodies within the solar system as well as for stars. - - - - Corrects position vector for aberration of light. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from body to Earth in days. - OUT: Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - 0...Everything OK. - Algorithm includes relativistic terms. - - - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB julian date of epoch. - Flag determining 'direction' of transformation;
-    fn  = 0 transformation applied, mean to true.
-    fn != 0 inverse transformation applied, true to mean.
- Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. - OUT: Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. - 0...Everything OK. - Inverse transformation may be applied by setting flag 'fn'. -
- - - Provides fast evaluation of the nutation components according to the 1980 IAU Theory of Nutation. - - TDB time in Julian centuries since J2000.0 - OUT: Nutation in longitude in arcseconds. - OUT: Nutation in obliquity in arcseconds. - 0...Everything OK. - - - - - To compute the fundamental arguments. - - TDB time in Julian centuries since J2000.0 - OUT: FundamentalArgsStruct containing:
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (L - omega; L = mean longitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = omega (mean longitude of the Moon's ascending node)
- -
- - - Converts TDB to TT or TDT - - TDB Julian date. - OUT: TT (or TDT) Julian date. - OUT: Difference tdbjd-tdtjd, in seconds. - Computes the terrestrial time (TT) or terrestrial dynamical time (TDT) Julian date corresponding to a barycentric dynamical time (TDB) Julian date. - - - - Sets up a structure of type 'body' - defining a celestial object- based on the input parameters. - - Type of body - Body number - Name of the body. - OUT: Structure containg the body definition -
- = 0 ... everything OK
- = 1 ... invalid value of 'type'
- = 2 ... 'number' out of range
-
- -
- - - To create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Three-character catalog identifier (e.g. HIP = Hipparcos, FK5 = FK5). This identifier also specifies the reference system and units of the data; i.e. they are the same as the specified catalog. - Object name (50 characters maximum). - Object number in the catalog. - Right ascension of the object. - Declination of the object. - Proper motion in right ascension. - Proper motion in declination. - Parallax. - Radial velocity. - OUT: Structure containing the input data - - - - - Computes atmospheric refraction in zenith distance. - - structure containing observer's location - refraction option - bserved zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. - - - - This function will compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number. - Day number - Time in hours - OUT: Julian date. - - - - - Compute a date on the Gregorian calendar given the Julian date. - - Julian date. - OUT: Year number - OUT: Month number. - OUT: Day number - OUT: Time in hours - - - - - Compute equatorial spherical coordinates of Sun referred to the mean equator and equinox of date. - - Julian date on TDT or ET time scale. - OUT: Right ascension referred to mean equator and equinox of date (hours). - OUT: Declination referred to mean equator and equinox of date (degrees). - OUT: Geocentric distance (AU). - - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - Interface to the NOVAS3 component - - Implemented by the NOVAS3 component - Note: This interface is now deprecated, please use INOVAS31 instead. - - - - - Get position and velocity of target with respect to the centre object. - - Two-element array containing the Julian date, which may be split any way (although the first - element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the - TDB or "T_eph" time scale. - Target object - Centre object - Position vector array of target relative to center, measured in AU. - Velocity vector array of target relative to center, measured in AU/day. -
- 0   ...everything OK.
- 1,2 ...error returned from State.
-
- This function accesses the JPL planetary ephemeris to give the position and velocity of the target - object with respect to the center object. -
- - - Read object ephemeris - - The number of the asteroid for which the position in desired. - The name of the asteroid. - The Julian date on which to find the position and velocity. - Error code; always set equal to 9 (see note below). - 6-element array of double cotaining position and velocity vector values, with all elements set to zero. - This is a dummy version of function 'ReadEph'. It serves as a stub for the "real" 'ReadEph' - (part of the USNO/AE98 minor planet ephemerides) when NOVAS-C is used without the minor planet ephemerides. - - This dummy function is not intended to be called. It merely serves as a stub for the "real" 'ReadEph' - when NOVAS-C is used without the minor planet ephemerides. If this function is called, an error of 9 will be returned. - - - - - - Interface between the JPL direct-access solar system ephemerides and NOVAS-C. - - Julian date of the desired time, on the TDB time scale. - Body identification number for the solar system object of interest; - Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. - Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. - Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. - Always returns 0 - - - - - Read and interpolate the JPL planetary ephemeris file. - - 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. - The requested body to get data for from the ephemeris file. - The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) - The barycentric velocity vector array of the requested object, in AU/Day. - -
- 0 ...everything OK
- 1 ...error reading ephemeris file
- 2 ...epoch out of range.
- 
- - The target number designation of the astronomical bodies is: -
-         = 0: Mercury,               1: Venus, 
-         = 2: Earth-Moon barycenter, 3: Mars, 
-         = 4: Jupiter,               5: Saturn, 
-         = 6: Uranus,                7: Neptune, 
-         = 8: Pluto,                 9: geocentric Moon, 
-         =10: Sun.
- 
- - NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. - For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, - and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove - convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval - between then and epoch. - -
-
- - - Corrects position vector for aberration of light. Algorithm includes relativistic terms. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from object to Earth in days. - Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - If 'lighttime' = 0 on input, this function will compute it. - - - - Compute the apparent place of a planet or other solar system body. - - TT Julian date for apparent place. - Pointer to structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for apparent place. - Catalog entry structure containing catalog data forthe object in the ICRS - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'. - -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Compute the astrometric place of a planet or other solar system body. - - TT Julian date for astrometric place. - structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). - True distance from Earth to planet in AU. - -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for astrometric place. - Catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Position vector, referred to origin at center of mass of the Earth, components in AU. - Light time from object to Earth in days. - - - - - This function will compute a date on the Gregorian calendar given the Julian date. - - Julian date. - Year - Month number - day number - Fractional hour of the day - - - - - This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. - - TDB or TT Julian date for pole offsets. - Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. - Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. - Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds. -
- 0 ... Everything OK
- 1 ... Invalid value of 'Type'.
- 
- -
- - - Calaculate an array of CIO RA values around a given date - - TDB Julian date. - Number of Julian dates and right ascension values requested (not less than 2 or more than 20). - An arraylist of RaOfCIO structures containing a time series of the right ascension of the - Celestial Intermediate Origin (CIO) with respect to the GCRS. -
- 0 ... everything OK
- 1 ... error opening the 'cio_ra.bin' file
- 2 ... 'JdTdb' not in the range of the CIO file; 
- 3 ... 'NPts' out of range
- 4 ... unable to allocate memory for the internal 't' array; 
- 5 ... unable to allocate memory for the internal 'ra' array; 
- 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
- 
- - - Given an input TDB Julian date and the number of data points desired, this function returns a set of - Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). - The range of dates is centered (at least approximately) on the requested date. The function obtains - the data from an external data file. - How to create and retrieve values from the arraylist - - Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 - - rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 - MsgBox("Nov3 RC= " rc) - - For Each CioA As ASCOM.Astrometry.RAOfCio In CioList - MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) - Next - - - -
- - - Compute the orthonormal basis vectors of the celestial intermediate system. - - TDB Julian date of epoch. - Right ascension of the CIO at epoch (hours). - Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. - Accuracy - Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS. -
- 0 ... everything OK
- 1 ... invalid value of input variable 'RefSys'.
- 
- - To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial - intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and - the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the - right ascension of the CIO at that date is required as input. The right ascension of the CIO - can be with respect to either the GCRS origin or the true equinox of date -- different algorithms - are used in the two cases. -
- - - Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension - - TDB Julian date. - Selection for accuracy - Right ascension of the CIO, in hours. - Reference system in which right ascension is given -
-    0 ... everything OK
-    1 ... unable to allocate memory for the 'cio' array
- > 10 ... 10 + the error code from function 'CioArray'.
- 
- This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date. -
- - - Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). - - TT Julian date - Selection for accuracy - Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -). - -
-   0  ... everything OK
-   1  ... invalid value of 'Accuracy'
- > 10 ... 10 + the error code from function 'CioLocation'
- > 20 ... 20 + the error code from function 'CioBasis'.
- 
- -
- - - Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). - - Position vector of star, with respect to origin at solar system barycenter. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Difference in light time, in the sense star to barycenter minus star to earth, in days. - - Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a - light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position - vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is - the position vector of solar system body, with respect to origin at observer (or the geocenter), - components in AU; and the returned value is the light time to point on line defined by 'Pos1' - that is closest to solar system body (positive if light passes body before hitting observer, i.e., if - 'Pos1' is within 90 degrees of 'PosObs'). - - - - - Converts an ecliptic position vector to an equatorial position vector. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. - Position vector, referred to specified equator and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the output from this case, all vectors are assumed to be with respect to a dynamical system. - -
- - - Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. - - High-order part of TT Julian date. - Low-order part of TT Julian date. - Selection for accuracy - Complementary terms, in radians. - - Series from IERS Conventions (2003), Chapter 5, Table 5.2C, with some adjustments to coefficient values - copied from IERS function 'eect2000', which has a more complete series. - - - - - Retrieves the position and velocity of a solar system body from a fundamental ephemeris. - - TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. - Structure containing the designation of the body of interest - Origin code; solar system barycenter = 0, center of mass of the Sun = 1. - Slection for accuracy - Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Origin'
-    2 ... Invalid value of 'Type' in 'CelObj'; 
-    3 ... Unable to allocate memory
- 10+n ... where n is the error code from 'SolarSystem'; 
- 20+n ... where n is the error code from 'ReadEph'.
- 
- It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c. -
- - - To convert right ascension and declination to ecliptic longitude and latitude. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Right ascension in hours, referred to specified equator and equinox of date. - Declination in degrees, referred to specified equator and equinox of date. - Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. - Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the input to this case, all input coordinates are dynamical. - -
- - - Converts an equatorial position vector to an ecliptic position vector. - - TT Julian date of equator, equinox, and ecliptic used for - Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified equator and equinox of date. - Position vector, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for - the input to this case, all vectors are assumed to be with respect to a dynamical system. -
- - - Converts ICRS right ascension and declination to galactic longitude and latitude. - - ICRS right ascension in hours. - ICRS declination in degrees. - Galactic longitude in degrees. - Galactic latitude in degrees. - - - - - Transforms topocentric right ascension and declination to zenith distance and azimuth. - - UT1 Julian date. - Difference TT-UT1 at 'jd_ut1', in seconds. - Selection for accuracy - onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; - 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. - Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - Topocentric azimuth (measured east from north) in degrees. - Topocentric right ascension of object of interest, in hours, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - Topocentric declination of object of interest, in degrees, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms topocentric right ascension and declination to zenith distance and azimuth. - It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. - This function can also adjust coordinates for atmospheric refraction. - - - - Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - The Earth Rotation Angle (theta) in degrees. - The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used - here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time - in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that - decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top - of page 35 of IERS Conventions (1996)). - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. - - TDB Julian Date. - Selection for accuracy - Mean obliquity of the ecliptic in degrees at 'JdTdb'. - True obliquity of the ecliptic in degrees at 'JdTdb'. - Equation of the equinoxes in seconds of time at 'JdTdb'. - Nutation in longitude in arcseconds at 'JdTdb'. - Nutation in obliquity in arcseconds at 'JdTdb'. - Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', - if desired. See the prolog of 'cel_pole' for details. - - - - To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. - - Position vector, equatorial rectangular coordinates. - Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for - ICRS to dynamical transformation. - Position vector, equatorial rectangular coordinates. - - - - - To compute the fundamental arguments (mean elements) of the Sun and Moon. - - TDB time in Julian centuries since J2000.0 - Double array of fundamental arguments - - Fundamental arguments, in radians: -
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (mean argument of the latitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = a[4] (mean longitude of the Moon's ascending node);
-                from Simon section 3.4(b.3),
-                precession = 5028.8200 arcsec/cy)
- 
-
-
- - - Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). - - TT Julian date of equator to be used for output coordinates. - Coordinate system selection for output coordinates.; 0 ... mean equator and - equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date - Selection for accuracy - GCRS right ascension in hours. - GCRS declination in degrees. - Right ascension in hours, referred to specified equator and right ascension origin of date. - Declination in degrees, referred to specified equator of date. - -
-    0 ... everything OK
- >  0 ... error from function 'Vector2RaDec'' 
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
>
- For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). - This function only supports the CIO-based method. -
- - - This function computes the geocentric position and velocity of an observer on - the surface of the earth or on a near-earth spacecraft. - TT Julian date. - Value of Delta T (= TT - UT1) at 'JdTt'. - Selection for accuracy - Data specifying the location of the observer - Position vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU. - Velocity vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU/day. - -
- 0 ... everything OK
- 1 ... invalid value of 'Accuracy'.
- 
- The final vectors are expressed in the GCRS. -
- - - Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. - - TDB Julian date of observation. - Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. - Selection for accuracy - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar - system barycenter, referred to ICRS axes, components in AU. - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, corrected for gravitational deflection, components in AU. -
-    0 ... Everything OK
-  30 ... Error from function 'Ephemeris'; 
- > 30 ... Error from function 'MakeObject'.
- 
- This function valid for an observed body within the solar system as well as for a star. - - If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are - used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the - calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included. - - -
- - - Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. - - Position vector of observed object, with respect to origin at observer - (or the geocenter), components in AU. - Position vector of observer (or the geocenter), with respect to origin at - solar system barycenter, components in AU. - Position vector of gravitating body, with respect to origin at solar system - barycenter, components in AU. - Reciprocal mass of gravitating body in solar mass units, that is, - Sun mass / body mass. - Position vector of observed object, with respect to origin at observer - (or the geocenter), corrected for gravitational deflection, components in AU. - This function valid for an observed body within the solar system as well as for a star. - - - - Compute the intermediate right ascension of the equinox at the input Julian date - - TDB Julian date. - Equinox selection flag: mean pr true - Selection for accuracy - Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 - (i.e true equinox), then the returned value is the equation of the origins. - - - - - Compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number - Day number - Fractional hour of the day - Computed Julian date. - This function makes no checks for a valid input calendar date. The input calendar date - must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - - output Julian date will have the same basis. - - - - Computes the geocentric position of a solar system body, as antedated for light-time. - - TDB Julian date of observation. - Structure containing the designation for thesolar system body - Position vector of observer (or the geocenter), with respect to origin - at solar system barycenter, referred to ICRS axes, components in AU. - First approximation to light-time, in days (can be set to 0.0 if unknown) - Selection for accuracy - Position vector of body, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Final light-time, in days. -
-    0 ... everything OK
-    1 ... algorithm failed to converge after 10 iterations
- ]]> 10 ... error is 10 + error from function 'SolarSystem'.
- 
- -
- - - Determines the angle of an object above or below the Earth's limb (horizon). - - Position vector of observed object, with respect to origin at - geocenter, components in AU. - Position vector of observer, with respect to origin at geocenter, - components in AU. - Angle of observed object above (+) or below (-) limb in degrees. - Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... - below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb - The geometric limb is computed, assuming the Earth to be an airless sphere (no - refraction or oblateness is included). The observer can be on or above the Earth. - For an observer on the surface of the Earth, this function returns the approximate unrefracted - altitude. - - - - Computes the local place of a solar system body. - - TT Julian date for local place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Specifies accuracy level - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. - True distance from Earth to planet in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'; 
- ]]> 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for local place. delta_t (double) - Difference TT-UT1 at 'JdTt', in seconds of time. - catalog entry structure containing catalog data for the object in the ICRS - Structure specifying the position of the observer - Specifies accuracy level. - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Object name (50 characters maximum). - Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) - Object number in the catalog. - Right ascension of the object (hours). - Declination of the object (degrees). - Proper motion in right ascension (milliarcseconds/year). - Proper motion in declination (milliarcseconds/year). - Parallax (milliarcseconds). - Radial velocity (kilometers/second). - CatEntry3 structure containing the input data - - - - - Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated - on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. - InSpace structure containing the position and velocity of an observer situated - on a near-Earth spacecraft - - - - - Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. - - Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; - 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) - Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; - For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) - Name of the object (50 characters maximum). - Structure containing basic astrometric data for any celestial object - located outside the solar system; the catalog data for a star - Structure containing the object definition -
- 0 ... everything OK
- 1 ... invalid value of 'Type'
- 2 ... 'Number' out of range
- 
- -
- - - Makes a structure of type 'observer' - specifying the location of the observer. - - Integer code specifying location of observer: 0: observer at geocenter; - 1: observer on surface of earth; 2: observer on near-earth spacecraft - Structure containing data for an observer's location on the surface - of the Earth; used when 'Where' = 1 - Structure containing an observer's location on a near-Earth spacecraft; - used when 'Where' = 2 - Structure specifying the location of the observer -
- 0 ... everything OK
- 1 ... input value of 'Where' is out-of-range.
- 
- -
- - - Makes a structure of type 'observer' specifying an observer at the geocenter. - - Structure specifying the location of the observer at the geocenter - - - - - Makes a structure of type 'observer' specifying the position and velocity of an observer - situated on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric position vector (x, y, z) in km. - Structure containing the position and velocity of an observer - situated on a near-Earth spacecraft - Both input vectors are with respect to true equator and equinox of date. - - - - Makes a structure of type 'observer' specifying the location of and weather for an observer - on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) longitude in degrees; east positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an observer on - the surface of the Earth - - - - - Makes a structure of type 'on_surface' - specifying the location of and weather for an - observer on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) latitude in degrees; north positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an - observer on the surface of the Earth. - - - - - Compute the mean obliquity of the ecliptic. - - TDB Julian Date. - Mean obliquity of the ecliptic in arcseconds. - - - - - Computes the ICRS position of a star, given its apparent place at date 'JdTt'. - Proper motion, parallax and radial velocity are assumed to be zero. - - TT Julian date of apparent place. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - Specifies accuracy level - ICRS right ascension in hours. - ICRS declination in degrees. -
-    0 ... Everything OK
-    1 ... Iterative process did not converge after 30 iterations; 
- > 10 ... Error from function 'Vector2RaDec'
- > 20 ... Error from function 'AppStar'.
- 
- -
- - - Normalize angle into the range 0 angle (2 * pi). - - Input angle (radians). - The input angle, normalized as described above (radians). - - - - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB Julian date of epoch. - Flag determining 'direction' of transformation; direction = 0 - transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. - Selection for accuracy - Position vector, geocentric equatorial rectangular coordinates, referred to - mean equator and equinox of epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to - true equator and equinox of epoch. - Inverse transformation may be applied by setting flag 'direction' - - - - Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. - - TDB time in Julian centuries since J2000.0 - Selection for accuracy - Nutation in longitude in arcseconds. - Nutation in obliquity in arcseconds. - The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. - - This function selects the nutation model depending first upon the input value of 'Accuracy'. - If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 - a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. - - - - - - Computes the apparent direction of a star or solar system body at a specified time - and in a specified coordinate system. - - TT Julian date for place. - Specifies the celestial object of interest - Specifies the location of the observer - Difference TT-UT1 at 'JdTt', in seconds of time. - Code specifying coordinate system of the output position. 0 ... GCRS or - "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; - 3 ... astrometric coordinates, i.e., without light deflection or aberration. - Selection for accuracy - Structure specifying object's place on the sky at time 'JdTt', - with respect to the specified output coordinate system - -
- = 0         ... No problems.
- = 1         ... invalid value of 'CoordSys'
- = 2         ... invalid value of 'Accuracy'
- = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
- > 10,  40  ... 10 + error from function 'Ephemeris'
- > 40,  50  ... 40 + error from function 'GeoPosVel'
- > 50,  70  ... 50 + error from function 'LightTime'
- > 70,  80  ... 70 + error from function 'GravDef'
- > 80,  90  ... 80 + error from function 'CioLocation'
- > 90,  100 ... 90 + error from function 'CioBasis'
- 
-
- Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place: -
-     Location->Where = 0 and CoordSys = 1: apparent place
-     Location->Where = 1 and CoordSys = 1: topocentric place
-     Location->Where = 0 and CoordSys = 0: virtual place
-     Location->Where = 1 and CoordSys = 0: local place
-     Location->Where = 0 and CoordSys = 3: astrometric place
-     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
- 
- Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is - on surface of Earth or in a near-Earth satellite). - - -
- - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. - TDB Julian date of second epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch. -
- 0 ... everything OK
- 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
- 
- One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs. -
- - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - Position vector at second epoch. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance in AU - Position vector, equatorial rectangular coordinates (AU). - - - - - Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. - - Specifies the celestial object of interest - Geometric position vector of object with respect to observer, corrected for light-time, in AU. - Velocity vector of object with respect to solar system barycenter, in AU/day. - Velocity vector of observer with respect to solar system barycenter, in AU/day. - Distance from observer to geocenter, in AU. - Distance from observer to Sun, in AU. - Distance from object to Sun, in AU. - The observed radial velocity measure times the speed of light, in kilometers/second. - Radial velocity is here defined as the radial velocity measure (z) times the speed of light. - For a solar system body, it applies to a fictitious emitter at the center of the observed object, - assumed massless (no gravitational red shift), and does not in general apply to reflected light. - For stars, it includes all effects, such as gravitational red shift, contained in the catalog - barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known - kinematic velocity vector (obtained independently of spectroscopy) can be treated like - solar system objects. - - - - Computes atmospheric refraction in zenith distance. - - Structure containing observer's location. - 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric - parameters input in the 'Location' structure. - Observed zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. This function - can be used for planning observations or telescope pointing, but should not be used for the - reduction of precise observations. - - - - Computes the Greenwich apparent sidereal time, at Julian date 'JdHigh' + 'JdLow'. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. - 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - Greenwich apparent sidereal time, in hours. -
-          0 ... everything OK
-          1 ... invalid value of 'Accuracy'
-          2 ... invalid value of 'Method'
- > 10,  30 ... 10 + error from function 'CioRai'
- 
- The Julian date may be split at any point, but for highest precision, set 'JdHigh' - to be the integral part of the Julian date, and set 'JdLow' to be the fractional part. -
- - - Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. - - Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. - Position vector. - Position vector expressed in new coordinate system rotated about z by 'angle'. - - - - - Converts angular quantities for stars to vectors. - - Catalog entry structure containing ICRS catalog data - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding - to a Barycentric Dynamical Time (TDB) Julian date. - - TDB Julian date. - TT Julian date. - Difference 'tdb_jd'-'tt_jd', in seconds. - Expression used in this function is a truncated form of a longer and more precise - series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. - The result is good to about 10 microseconds. - - - - This function rotates a vector from the terrestrial to the celestial system. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Value of Delta T (= TT - UT1) at the input UT1 Julian date. - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - 0 ... The output vector is referred to GCRS axes; 1 ... The output - vector is produced with respect to the equator and equinox of date. - Conventionally-defined X coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, referred to ITRF - axes (terrestrial system) in the normal case where 'option' = 0. - Position vector, geocentric equatorial rectangular coordinates, referred to GCRS - axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'. -
-    0 ... everything is ok
-    1 ... invalid value of 'Accuracy'
-    2 ... invalid value of 'Method'
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
- 'x' = 'y' = 0 means no polar motion transformation. - - The 'option' flag only works for the equinox-based method. - -
- - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Structure containing observer's location - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial - rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular - coordinates, referred to true equator and equinox of date, components in AU/day. - - If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. - This function ignores polar motion, unless the observer's longitude and latitude have been - corrected for it, and variation in the length of day (angular velocity of earth). - The true equator and equinox of date do not form an inertial system. Therefore, with respect - to an inertial system, the very small velocity component (several meters/day) due to the precession - and nutation of the Earth's axis is not accounted for here. - - - - - Computes the topocentric place of a solar system body. - - TT Julian date for topocentric place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Selection for accuracy - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'Place'.
-
- -
- - - Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for topocentric place. - Difference TT-UT1 at 'JdTt', in seconds of time. - Catalog entry structure containing catalog data for the object in the ICRS - Specifies the position of the observer - Code specifying the relative accuracy of the output position. - Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'.
- 
- -
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option - TT Julian date, or year, of input catalog data. - An entry from the input catalog, with units as given in the struct definition - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - The transformed catalog entry, with units as given in the struct definition - -
- = 0 ... Everything OK.
- = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
- 
- Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. - 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or - a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. - For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or - 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. - 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first - and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference - frame corresponding to precession between the first and second dates, but leaves the star fixed in - space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a - fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system - of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). -3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or - 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output - in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and - equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. -4. This function cannot be properly used to bring data from old star catalogs into the - modern system, because old catalogs were compiled using a set of constants that are incompatible - with modern values. In particular, it should not be used for catalogs whose positions and - proper motions were derived by assuming a precession constant significantly different from - the value implicit in function 'precession'. -
- - - Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members - having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. Both input and - output data is in the ICRS. - - 1. Input (Hipparcos catalog) epoch and units: - - Epoch: J1991.25 - Right ascension (RA): degrees - Declination (Dec): degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second (not in catalog) - - - - 2. Output (modified Hipparcos) epoch and units: - - Epoch: J2000.0 - Right ascension: hours - Declination: degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second - > - - - - - - Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - Right ascension in hours. - Declination in degrees. - -
- = 0 ... Everything OK.
- = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
- = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
- 
- -
- - - Compute the virtual place of a planet or other solar system body. - - TT Julian date for virtual place. - structure containing the body designation for the solar system body( - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - True distance from Earth to planet in AU. - -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Type' in structure 'SsBody'.
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for virtual place. - catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - -
- =  0 ... Everything OK.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'
- 
- -
- - - Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects - the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). - - TT or UT1 Julian date. - Conventionally-defined X coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, - referred to ITRF axes. - Position vector, geocentric equatorial rectangular coordinates, - referred to true equator and TIO. - - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - Interface to the NOVAS31 component - - Implemented by the NOVAS31 component - - - - Get position and velocity of target with respect to the centre object. - - Two-element array containing the Julian date, which may be split any way (although the first - element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the - TDB or "T_eph" time scale. - Target object - Centre object - Position vector array of target relative to center, measured in AU. - Velocity vector array of target relative to center, measured in AU/day. -
- 0   ...everything OK.
- 1,2 ...error returned from State.
-
- This function accesses the JPL planetary ephemeris to give the position and velocity of the target - object with respect to the center object. -
- - - Read object ephemeris - - The number of the asteroid for which the position in desired. - The name of the asteroid. - The Julian date on which to find the position and velocity. - Error code; always set equal to 9 (see note below). - 6-element array of double cotaining position and velocity vector values, with all elements set to zero. - This is a dummy version of function 'ReadEph'. It serves as a stub for the "real" 'ReadEph' - (part of the USNO/AE98 minor planet ephemerides) when NOVAS-C is used without the minor planet ephemerides. - - This dummy function is not intended to be called. It merely serves as a stub for the "real" 'ReadEph' - when NOVAS-C is used without the minor planet ephemerides. If this function is called, an error of 9 will be returned. - - - - - - Interface between the JPL direct-access solar system ephemerides and NOVAS-C. - - Julian date of the desired time, on the TDB time scale. - Body identification number for the solar system object of interest; - Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. - Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. - Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. - Always returns 0 - - - - - Read and interpolate the JPL planetary ephemeris file. - - 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. - The requested body to get data for from the ephemeris file. - The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) - The barycentric velocity vector array of the requested object, in AU/Day. - -
- 0 ...everything OK
- 1 ...error reading ephemeris file
- 2 ...epoch out of range.
- 
- - The target number designation of the astronomical bodies is: -
-         = 0: Mercury,               1: Venus, 
-         = 2: Earth-Moon barycenter, 3: Mars, 
-         = 4: Jupiter,               5: Saturn, 
-         = 6: Uranus,                7: Neptune, 
-         = 8: Pluto,                 9: geocentric Moon, 
-         =10: Sun.
- 
- - NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. - For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, - and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove - convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval - between then and epoch. - -
-
- - - Corrects position vector for aberration of light. Algorithm includes relativistic terms. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from object to Earth in days. - Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - If 'lighttime' = 0 on input, this function will compute it. - - - - Compute the apparent place of a planet or other solar system body. - - TT Julian date for apparent place. - Pointer to structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for apparent place. - Catalog entry structure containing catalog data forthe object in the ICRS - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'. - -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Compute the astrometric place of a planet or other solar system body. - - TT Julian date for astrometric place. - structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). - True distance from Earth to planet in AU. - -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for astrometric place. - Catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Position vector, referred to origin at center of mass of the Earth, components in AU. - Light time from object to Earth in days. - - - - - This function will compute a date on the Gregorian calendar given the Julian date. - - Julian date. - Year - Month number - day number - Fractional hour of the day - - - - - This function rotates a vector from the celestial to the terrestrial system. Specifically, it transforms a vector in the - GCRS (a local space-fixed system) to the ITRS (a rotating earth-fixed system) by applying rotations for the GCRS-to-dynamical - frame tie, precession, nutation, Earth rotation, and polar motion. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Value of Delta T (= TT - UT1) at the input UT1 Julian date. - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - 0 ... The output vector is referred to GCRS axes; 1 ... The output - vector is produced with respect to the equator and equinox of date. (See note 2 below) - Conventionally-defined X coordinate of celestial intermediate pole with respect to - ITRS pole, in arcseconds. - Conventionally-defined Y coordinate of celestial intermediate pole with respect to - ITRS pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, - referred to GCRS axes (celestial system) or with respect to - the equator and equinox of date, depending on 'option'. - Position vector, geocentric equatorial rectangular coordinates, - referred to ITRS axes (terrestrial system). -
-    0 ... everything is ok
-    1 ... invalid value of 'Accuracy'
-    2 ... invalid value of 'Method'
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
- Note 1: 'x' = 'y' = 0 means no polar motion transformation. - - Note2: 'option' = 1 only works for the equinox-based method. - -
- - - This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. - - TDB or TT Julian date for pole offsets. - Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. - Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. - Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds. -
- 0 ... Everything OK
- 1 ... Invalid value of 'Type'.
- 
- -
- - - Calaculate an array of CIO RA values around a given date - - TDB Julian date. - Number of Julian dates and right ascension values requested (not less than 2 or more than 20). - An arraylist of RaOfCIO structures containing a time series of the right ascension of the - Celestial Intermediate Origin (CIO) with respect to the GCRS. -
- 0 ... everything OK
- 1 ... error opening the 'cio_ra.bin' file
- 2 ... 'JdTdb' not in the range of the CIO file; 
- 3 ... 'NPts' out of range
- 4 ... unable to allocate memory for the internal 't' array; 
- 5 ... unable to allocate memory for the internal 'ra' array; 
- 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
- 
- - - Given an input TDB Julian date and the number of data points desired, this function returns a set of - Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). - The range of dates is centered (at least approximately) on the requested date. The function obtains - the data from an external data file. - How to create and retrieve values from the arraylist - - Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 - - rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 - MsgBox("Nov3 RC= " rc) - - For Each CioA As ASCOM.Astrometry.RAOfCio In CioList - MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) - Next - - - -
- - - Compute the orthonormal basis vectors of the celestial intermediate system. - - TDB Julian date of epoch. - Right ascension of the CIO at epoch (hours). - Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. - Accuracy - Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS. -
- 0 ... everything OK
- 1 ... invalid value of input variable 'RefSys'.
- 
- - To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial - intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and - the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the - right ascension of the CIO at that date is required as input. The right ascension of the CIO - can be with respect to either the GCRS origin or the true equinox of date -- different algorithms - are used in the two cases. -
- - - Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension - - TDB Julian date. - Selection for accuracy - Right ascension of the CIO, in hours. - Reference system in which right ascension is given -
-    0 ... everything OK
-    1 ... unable to allocate memory for the 'cio' array
- > 10 ... 10 + the error code from function 'CioArray'.
- 
- This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date. -
- - - Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). - - TT Julian date - Selection for accuracy - Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -). - -
-   0  ... everything OK
-   1  ... invalid value of 'Accuracy'
- > 10 ... 10 + the error code from function 'CioLocation'
- > 20 ... 20 + the error code from function 'CioBasis'.
- 
- -
- - - Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). - - Position vector of star, with respect to origin at solar system barycenter. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Difference in light time, in the sense star to barycenter minus star to earth, in days. - - Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a - light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position - vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is - the position vector of solar system body, with respect to origin at observer (or the geocenter), - components in AU; and the returned value is the light time to point on line defined by 'Pos1' - that is closest to solar system body (positive if light passes body before hitting observer, i.e., if - 'Pos1' is within 90 degrees of 'PosObs'). - - - - - Converts an ecliptic position vector to an equatorial position vector. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. - Position vector, referred to specified equator and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the output from this case, all vectors are assumed to be with respect to a dynamical system. - -
- - - Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. - - High-order part of TT Julian date. - Low-order part of TT Julian date. - Selection for accuracy - Complementary terms, in radians. - - 1. The series used in this function was derived from Series from IERS Conventions (2003), Chapter 5, Table 5.2C. - This same series was also adopted for use in the IAU's Standards of Fundamental Astronomy (SOFA) software (i.e., subroutine - eect00.for and function eect00.c). - 2. The low-accuracy series used in this function is a simple implementation derived from the first reference, in which terms - smaller than 2 microarcseconds have been omitted. - 3. This function is based on NOVAS Fortran routine 'eect2000', with the low-accuracy formula taken from NOVAS Fortran routine 'etilt'. - - - - - Retrieves the position and velocity of a solar system body from a fundamental ephemeris. - - TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. - Structure containing the designation of the body of interest - Origin code; solar system barycenter = 0, center of mass of the Sun = 1. - Slection for accuracy - Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Origin'
-    2 ... Invalid value of 'Type' in 'CelObj'; 
-    3 ... Unable to allocate memory
- 10+n ... where n is the error code from 'SolarSystem'; 
- 20+n ... where n is the error code from 'ReadEph'.
- 
- It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c. -
- - - To convert right ascension and declination to ecliptic longitude and latitude. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Right ascension in hours, referred to specified equator and equinox of date. - Declination in degrees, referred to specified equator and equinox of date. - Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. - Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the input to this case, all input coordinates are dynamical. - -
- - - Converts an equatorial position vector to an ecliptic position vector. - - TT Julian date of equator, equinox, and ecliptic used for - Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified equator and equinox of date. - Position vector, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for - the input to this case, all vectors are assumed to be with respect to a dynamical system. -
- - - Converts ICRS right ascension and declination to galactic longitude and latitude. - - ICRS right ascension in hours. - ICRS declination in degrees. - Galactic longitude in degrees. - Galactic latitude in degrees. - - - - - Transforms topocentric right ascension and declination to zenith distance and azimuth. - - UT1 Julian date. - Difference TT-UT1 at 'jd_ut1', in seconds. - Selection for accuracy - onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; - 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. - Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - Topocentric azimuth (measured east from north) in degrees. - Topocentric right ascension of object of interest, in hours, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - Topocentric declination of object of interest, in degrees, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms topocentric right ascension and declination to zenith distance and azimuth. - It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. - This function can also adjust coordinates for atmospheric refraction. - - - - Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - The Earth Rotation Angle (theta) in degrees. - The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used - here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time - in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that - decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top - of page 35 of IERS Conventions (1996)). - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. - - TDB Julian Date. - Selection for accuracy - Mean obliquity of the ecliptic in degrees at 'JdTdb'. - True obliquity of the ecliptic in degrees at 'JdTdb'. - Equation of the equinoxes in seconds of time at 'JdTdb'. - Nutation in longitude in arcseconds at 'JdTdb'. - Nutation in obliquity in arcseconds at 'JdTdb'. - Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', - if desired. See the prolog of 'cel_pole' for details. - - - - To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. - - Position vector, equatorial rectangular coordinates. - Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for - ICRS to dynamical transformation. - Position vector, equatorial rectangular coordinates. - - - - - To compute the fundamental arguments (mean elements) of the Sun and Moon. - - TDB time in Julian centuries since J2000.0 - Double array of fundamental arguments - - Fundamental arguments, in radians: -
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (mean argument of the latitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = a[4] (mean longitude of the Moon's ascending node);
-                from Simon section 3.4(b.3),
-                precession = 5028.8200 arcsec/cy)
- 
-
-
- - - Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). - - TT Julian date of equator to be used for output coordinates. - Coordinate system selection for output coordinates.; 0 ... mean equator and - equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date - Selection for accuracy - GCRS right ascension in hours. - GCRS declination in degrees. - Right ascension in hours, referred to specified equator and right ascension origin of date. - Declination in degrees, referred to specified equator of date. - -
-    0 ... everything OK
- >  0 ... error from function 'Vector2RaDec'' 
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
>
- For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). - This function only supports the CIO-based method. -
- - - This function computes the geocentric position and velocity of an observer on - the surface of the earth or on a near-earth spacecraft. - TT Julian date. - Value of Delta T (= TT - UT1) at 'JdTt'. - Selection for accuracy - Data specifying the location of the observer - Position vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU. - Velocity vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU/day. - -
- 0 ... everything OK
- 1 ... invalid value of 'Accuracy'.
- 
- The final vectors are expressed in the GCRS. -
- - - Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. - - TDB Julian date of observation. - Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. - Selection for accuracy - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar - system barycenter, referred to ICRS axes, components in AU. - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, corrected for gravitational deflection, components in AU. -
-    0 ... Everything OK
-  30 ... Error from function 'Ephemeris'; 
- > 30 ... Error from function 'MakeObject'.
- 
- This function valid for an observed body within the solar system as well as for a star. - - If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are - used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the - calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included. - - -
- - - Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. - - Position vector of observed object, with respect to origin at observer - (or the geocenter), components in AU. - Position vector of observer (or the geocenter), with respect to origin at - solar system barycenter, components in AU. - Position vector of gravitating body, with respect to origin at solar system - barycenter, components in AU. - Reciprocal mass of gravitating body in solar mass units, that is, - Sun mass / body mass. - Position vector of observed object, with respect to origin at observer - (or the geocenter), corrected for gravitational deflection, components in AU. - This function valid for an observed body within the solar system as well as for a star. - - - - Compute the intermediate right ascension of the equinox at the input Julian date - - TDB Julian date. - Equinox selection flag: mean pr true - Selection for accuracy - Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 - (i.e true equinox), then the returned value is the equation of the origins. - - - - - Compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number - Day number - Fractional hour of the day - Computed Julian date. - This function makes no checks for a valid input calendar date. The input calendar date - must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - - output Julian date will have the same basis. - - - - Computes the geocentric position of a solar system body, as antedated for light-time. - - TDB Julian date of observation. - Structure containing the designation for thesolar system body - Position vector of observer (or the geocenter), with respect to origin - at solar system barycenter, referred to ICRS axes, components in AU. - First approximation to light-time, in days (can be set to 0.0 if unknown) - Selection for accuracy - Position vector of body, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Final light-time, in days. -
-    0 ... everything OK
-    1 ... algorithm failed to converge after 10 iterations
- ]]> 10 ... error is 10 + error from function 'SolarSystem'.
- 
- -
- - - Determines the angle of an object above or below the Earth's limb (horizon). - - Position vector of observed object, with respect to origin at - geocenter, components in AU. - Position vector of observer, with respect to origin at geocenter, - components in AU. - Angle of observed object above (+) or below (-) limb in degrees. - Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... - below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb - The geometric limb is computed, assuming the Earth to be an airless sphere (no - refraction or oblateness is included). The observer can be on or above the Earth. - For an observer on the surface of the Earth, this function returns the approximate unrefracted - altitude. - - - - Computes the local place of a solar system body. - - TT Julian date for local place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Specifies accuracy level - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. - True distance from Earth to planet in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'; 
- ]]> 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for local place. delta_t (double) - Difference TT-UT1 at 'JdTt', in seconds of time. - catalog entry structure containing catalog data for the object in the ICRS - Structure specifying the position of the observer - Specifies accuracy level. - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Object name (50 characters maximum). - Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) - Object number in the catalog. - Right ascension of the object (hours). - Declination of the object (degrees). - Proper motion in right ascension (milliarcseconds/year). - Proper motion in declination (milliarcseconds/year). - Parallax (milliarcseconds). - Radial velocity (kilometers/second). - CatEntry3 structure containing the input data - - - - - Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated - on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. - InSpace structure containing the position and velocity of an observer situated - on a near-Earth spacecraft - - - - - Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. - - Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; - 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) - Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; - For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) - Name of the object (50 characters maximum). - Structure containing basic astrometric data for any celestial object - located outside the solar system; the catalog data for a star - Structure containing the object definition -
- 0 ... everything OK
- 1 ... invalid value of 'Type'
- 2 ... 'Number' out of range
- 
- -
- - - Makes a structure of type 'observer' - specifying the location of the observer. - - Integer code specifying location of observer: 0: observer at geocenter; - 1: observer on surface of earth; 2: observer on near-earth spacecraft - Structure containing data for an observer's location on the surface - of the Earth; used when 'Where' = 1 - Structure containing an observer's location on a near-Earth spacecraft; - used when 'Where' = 2 - Structure specifying the location of the observer -
- 0 ... everything OK
- 1 ... input value of 'Where' is out-of-range.
- 
- -
- - - Makes a structure of type 'observer' specifying an observer at the geocenter. - - Structure specifying the location of the observer at the geocenter - - - - - Makes a structure of type 'observer' specifying the position and velocity of an observer - situated on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric position vector (x, y, z) in km. - Structure containing the position and velocity of an observer - situated on a near-Earth spacecraft - Both input vectors are with respect to true equator and equinox of date. - - - - Makes a structure of type 'observer' specifying the location of and weather for an observer - on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) longitude in degrees; east positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an observer on - the surface of the Earth - - - - - Makes a structure of type 'on_surface' - specifying the location of and weather for an - observer on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) latitude in degrees; north positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an - observer on the surface of the Earth. - - - - - Compute the mean obliquity of the ecliptic. - - TDB Julian Date. - Mean obliquity of the ecliptic in arcseconds. - - - - - Computes the ICRS position of a star, given its apparent place at date 'JdTt'. - Proper motion, parallax and radial velocity are assumed to be zero. - - TT Julian date of apparent place. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - Specifies accuracy level - ICRS right ascension in hours. - ICRS declination in degrees. -
-    0 ... Everything OK
-    1 ... Iterative process did not converge after 30 iterations; 
- > 10 ... Error from function 'Vector2RaDec'
- > 20 ... Error from function 'AppStar'.
- 
- -
- - - Normalize angle into the range 0 angle (2 * pi). - - Input angle (radians). - The input angle, normalized as described above (radians). - - - - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB Julian date of epoch. - Flag determining 'direction' of transformation; direction = 0 - transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. - Selection for accuracy - Position vector, geocentric equatorial rectangular coordinates, referred to - mean equator and equinox of epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to - true equator and equinox of epoch. - Inverse transformation may be applied by setting flag 'direction' - - - - Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. - - TDB time in Julian centuries since J2000.0 - Selection for accuracy - Nutation in longitude in arcseconds. - Nutation in obliquity in arcseconds. - The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. - - This function selects the nutation model depending first upon the input value of 'Accuracy'. - If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 - a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. - - - - - - Computes the apparent direction of a star or solar system body at a specified time - and in a specified coordinate system. - - TT Julian date for place. - Specifies the celestial object of interest - Specifies the location of the observer - Difference TT-UT1 at 'JdTt', in seconds of time. - Code specifying coordinate system of the output position. 0 ... GCRS or - "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; - 3 ... astrometric coordinates, i.e., without light deflection or aberration. - Selection for accuracy - Structure specifying object's place on the sky at time 'JdTt', - with respect to the specified output coordinate system - -
- = 0         ... No problems.
- = 1         ... invalid value of 'CoordSys'
- = 2         ... invalid value of 'Accuracy'
- = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
- > 10,  40  ... 10 + error from function 'Ephemeris'
- > 40,  50  ... 40 + error from function 'GeoPosVel'
- > 50,  70  ... 50 + error from function 'LightTime'
- > 70,  80  ... 70 + error from function 'GravDef'
- > 80,  90  ... 80 + error from function 'CioLocation'
- > 90,  100 ... 90 + error from function 'CioBasis'
- 
-
- Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place: -
-     Location->Where = 0 and CoordSys = 1: apparent place
-     Location->Where = 1 and CoordSys = 1: topocentric place
-     Location->Where = 0 and CoordSys = 0: virtual place
-     Location->Where = 1 and CoordSys = 0: local place
-     Location->Where = 0 and CoordSys = 3: astrometric place
-     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
- 
- Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is - on surface of Earth or in a near-Earth satellite). - - -
- - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. - TDB Julian date of second epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch. -
- 0 ... everything OK
- 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
- 
- One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs. -
- - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - Position vector at second epoch. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance in AU - Position vector, equatorial rectangular coordinates (AU). - - - - - Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. - - Specifies the celestial object of interest - Geometric position vector of object with respect to observer, corrected for light-time, in AU. - Velocity vector of object with respect to solar system barycenter, in AU/day. - Velocity vector of observer with respect to solar system barycenter, in AU/day. - Distance from observer to geocenter, in AU. - Distance from observer to Sun, in AU. - Distance from object to Sun, in AU. - The observed radial velocity measure times the speed of light, in kilometers/second. - Radial velocity is here defined as the radial velocity measure (z) times the speed of light. - For a solar system body, it applies to a fictitious emitter at the center of the observed object, - assumed massless (no gravitational red shift), and does not in general apply to reflected light. - For stars, it includes all effects, such as gravitational red shift, contained in the catalog - barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known - kinematic velocity vector (obtained independently of spectroscopy) can be treated like - solar system objects. - - - - Computes atmospheric refraction in zenith distance. - - Structure containing observer's location. - 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric - parameters input in the 'Location' structure. - Observed zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. This function - can be used for planning observations or telescope pointing, but should not be used for the - reduction of precise observations. - - - - Computes the Greenwich sidereal time, either mean or apparent, at Julian date 'JdHigh' + 'JdLow'. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. - 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - Greenwich apparent sidereal time, in hours. -
-          0 ... everything OK
-          1 ... invalid value of 'Accuracy'
-          2 ... invalid value of 'Method'
- > 10,  30 ... 10 + error from function 'CioRai'
- 
- The Julian date may be split at any point, but for highest precision, set 'JdHigh' - to be the integral part of the Julian date, and set 'JdLow' to be the fractional part. -
- - - Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. - - Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. - Position vector. - Position vector expressed in new coordinate system rotated about z by 'angle'. - - - - - Converts angular quantities for stars to vectors. - - Catalog entry structure containing ICRS catalog data - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding - to a Barycentric Dynamical Time (TDB) Julian date. - - TDB Julian date. - TT Julian date. - Difference 'tdb_jd'-'tt_jd', in seconds. - Expression used in this function is a truncated form of a longer and more precise - series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. - The result is good to about 10 microseconds. - - - - This function rotates a vector from the terrestrial to the celestial system. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Value of Delta T (= TT - UT1) at the input UT1 Julian date. - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - 0 ... The output vector is referred to GCRS axes; 1 ... The output - vector is produced with respect to the equator and equinox of date. - Conventionally-defined X coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, referred to ITRF - axes (terrestrial system) in the normal case where 'option' = 0. - Position vector, geocentric equatorial rectangular coordinates, referred to GCRS - axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'. -
-    0 ... everything is ok
-    1 ... invalid value of 'Accuracy'
-    2 ... invalid value of 'Method'
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
- 'x' = 'y' = 0 means no polar motion transformation. - - The 'option' flag only works for the equinox-based method. - -
- - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Structure containing observer's location - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial - rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular - coordinates, referred to true equator and equinox of date, components in AU/day. - - If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. - This function ignores polar motion, unless the observer's longitude and latitude have been - corrected for it, and variation in the length of day (angular velocity of earth). - The true equator and equinox of date do not form an inertial system. Therefore, with respect - to an inertial system, the very small velocity component (several meters/day) due to the precession - and nutation of the Earth's axis is not accounted for here. - - - - - Computes the topocentric place of a solar system body. - - TT Julian date for topocentric place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Selection for accuracy - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'Place'.
-
- -
- - - Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for topocentric place. - Difference TT-UT1 at 'JdTt', in seconds of time. - Catalog entry structure containing catalog data for the object in the ICRS - Specifies the position of the observer - Code specifying the relative accuracy of the output position. - Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'.
- 
- -
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option - TT Julian date, or year, of input catalog data. - An entry from the input catalog, with units as given in the struct definition - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - The transformed catalog entry, with units as given in the struct definition - -
- = 0 ... Everything OK.
- = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
- 
- Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. - 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or - a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. - For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or - 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. - 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first - and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference - frame corresponding to precession between the first and second dates, but leaves the star fixed in - space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a - fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system - of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). -3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or - 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output - in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and - equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. -4. This function cannot be properly used to bring data from old star catalogs into the - modern system, because old catalogs were compiled using a set of constants that are incompatible - with modern values. In particular, it should not be used for catalogs whose positions and - proper motions were derived by assuming a precession constant significantly different from - the value implicit in function 'precession'. -
- - - Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members - having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. Both input and - output data is in the ICRS. - - 1. Input (Hipparcos catalog) epoch and units: - - Epoch: J1991.25 - Right ascension (RA): degrees - Declination (Dec): degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second (not in catalog) - - - - 2. Output (modified Hipparcos) epoch and units: - - Epoch: J2000.0 - Right ascension: hours - Declination: degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second - > - - - - - - Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - Right ascension in hours. - Declination in degrees. - -
- = 0 ... Everything OK.
- = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
- = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
- 
- -
- - - Compute the virtual place of a planet or other solar system body. - - TT Julian date for virtual place. - structure containing the body designation for the solar system body( - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - True distance from Earth to planet in AU. - -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Type' in structure 'SsBody'.
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for virtual place. - catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - -
- =  0 ... Everything OK.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'
- 
- -
- - - Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects - the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). - - TT or UT1 Julian date. - direction (short int) - Flag determining 'direction' of transformation; - direction = 0 transformation applied, ITRS to terrestrial intermediate system - direction != 0 inverse transformation applied, terrestrial intermediate system to ITRS - Conventionally-defined X coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, - referred to ITRF axes. - Position vector, geocentric equatorial rectangular coordinates, - referred to true equator and TIO. - - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - NOVAS: Class presenting the contents of the NOVAS 2 library. - NOVAS was developed by the Astronomical Applications department of the United States Naval - Observatory. The C language version of NOVAS was developed by John Bangert at USNO/AA. - - - The NOVAS class is a STATIC class and is the component of preference for .NET programmers. - This means that you do not have to create an instance of the - class in order to access its members. Instead you reference them directly from the class. So, this works: - rc = ASCOM.Astrometry.NOVAS2.AppStar(tjd, earth, star, ra, dec) - while this does not work: - - Dim Nov as New ASCOM.Astrometry.NOVAS2 - rc = Nov.AppStar(tjd, earth, star, ra, dec) - - Method names are identical to those used in NOVAS2, as are almost all paramaters. There are a few - changes that introduce some new structures but these should be self explanatory. One significant difference - is that position and velocity vectors are returned as structures rather than double arrays. This was done - to make type checking more effective. - Testing of the high level supervisory functions has been carried out using real-time star data from - the USNO web site. Values provided by this NOVAS2 implementation agree on average to about 50 milli - arc-seconds with current USNO web site values. - This class is implemented using a thin layer of .NET code that calls functions in - either a 32 or 64 bit compiled version of the unmodified C code from ther USNO web site. The .NET code - does not carry out calculations itself, it simply handles any interface presentation differences - and calls the relevant 32 or 64bit code according to its environment. - Note: This class only supports Earth in the XXXXPlanet classes, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - - - - - Computes the apparent place of a star - - TT (or TDT) Julian date for apparent place. - Structure containing the body designation for the earth - Catalog entry structure containing J2000.0 catalog data with FK5-style units (defined in novas.h). - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. -
-  0...Everything OK
- >0...Error code from function 'solarsystem'.
- -
- - - Computes the topocentric place of a star - - TT (or TDT) Julian date for topocentric place. - Structure containing the body designation for the Earth. - Difference TT (or TDT)-UT1 at 'tjd', in seconds. - Catalog entry structure containing J2000.0 catalog data with FK5-style units. - Structure containing observer's location - OUT: Topocentric right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Topocentric declination in degrees, referred to true equator and equinox of date 'tjd'. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
- -
- - - Compute the apparent place of a planet or other solar system body. - - TT (or TDT) Julian date for apparent place. - Structure containing the body designation for the solar system body - Structure containing the body designation for the Earth - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: True distance from Earth to planet at 'tjd' in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the topocentric place of a planet, given the location of the observer. - - TT (or TDT) Julian date for topocentric place. - structure containing the body designation for the solar system body - structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - structure containing observer's location - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: True distance from Earth to planet at 'tjd' in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the virtual place of a star - - TT (or TDT) Julian date for virtual place. - Pointer to structure containing the body designation for the Earth. - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'
- 
- - Computes the virtual place of a star at date 'tjd', given its - mean place, proper motion, parallax, and radial velocity for J2000.0. -
- - - Computes the local place of a star - - TT (or TDT) Julian date for local place. - Pointer to structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - Pointer to structure containing observer's location - OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Local declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
-
- -
- - - Computes the virtual place of a planet or other solar system body. - - TT (or TDT) Julian date for virtual place. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the local place of a planet or other solar system body, given the location of the observer. - - TT (or TDT) Julian date for local place. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - Pointer to structure containing observer's location - OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Local declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the astrometric place of a star - - TT (or TDT) Julian date for astrometric place. - Pointer to structure containing the body designation for the Earth - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
- 
- Computes the astrometric place of a star, given its mean place, proper motion, parallax, and radial velocity for J2000.0. -
- - - Computes the astrometric place of a planet or other solar system body. - - TT (or TDT) Julian date for calculation. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Transform apparent equatorial coordinates to horizon coordinates - - TT (or TDT) Julian date. - Difference TT (or TDT)-UT1 at 'tjd', in seconds. - Conventionally-defined x coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. - structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option - OUT: Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - OUT: Topocentric azimuth (measured east from north) in degrees. - OUT: Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. - OUT: Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms apparent equatorial coordinates (right - ascension and declination) to horizon coordinates (zenith - distance and azimuth). It uses a method that properly accounts - for polar motion, which is significant at the sub-arcsecond - level. This function can also adjust coordinates for atmospheric - refraction. - - - - To convert Hipparcos data at epoch J1991.25 to epoch J2000.0 and FK5-style units. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0, with all members having FK5 catalog units. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. -
- 1. Hipparcos epoch and units:
-    Epoch: J1991.25
-    Right ascension (RA): degrees
-    Declination (Dec): degrees
-    Proper motion in RA * cos (Dec): milliarcseconds per year
-    Proper motion in Dec: milliarcseconds per year
-    Parallax: milliarcseconds
-    Radial velocity: kilometers per second (not in catalog)
- 
- 2. FK5 epoch and units:
-    Epoch: J2000.0
-    Right ascension: hours
-    Declination: degrees
-    Proper motion in RA: seconds of time per Julian century
-    Proper motion in Dec: arcseconds per Julian century
-    Parallax: arcseconds
-    Radial velocity: kilometers per second
-
-
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option
-    = 1 ... change epoch; same equator and equinox
-    = 2 ... change equator and equinox; same epoch
-    = 3 ... change equator and equinox and epoch
-
- TT Julian date, or year, of input catalog data. - An entry from the input catalog - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - OUT: The transformed catalog entry -
- 1. 'date_incat' and 'date_newcat' may be specified either as a 
-    Julian date (e.g., 2433282.5) or a Julian year and fraction 
-    (e.g., 1950.0).  Values less than 10000 are assumed to be years.
- 
- 2. option = 1 updates the star's data to account for the star's space motion between 
-               the first and second dates, within a fixed reference frame.
-    option = 2 applies a rotation of the reference frame corresponding to precession 
-               between the first and second dates, but leaves the star fixed in space.
-    option = 3 provides both transformations.
- 
- 3. This subroutine cannot be properly used to bring data from 
-    old (pre-FK5) star catalogs into the modern system, because old 
-    catalogs were compiled using a set of constants that are 
-    incompatible with the IAU (1976) system.
- 
- 4. This function uses TDB Julian dates internally, but no 
-    distinction between TDB and TT is necessary.
-
-
- - - Computes the Greenwich apparent sidereal time, at Julian date 'jd_high' + 'jd_low'. - - Julian date, integral part. - Julian date, fractional part. - Equation of the equinoxes (seconds of time). [Note: this quantity is computed by function 'earthtilt'.] - Greenwich apparent sidereal time, in hours. - - - - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of first epoch. - TDB Julian date of second epoch. - OUT: Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of second epoch. - The coordinates are referred to the mean equator and equinox of the two respective epochs. - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'tjd'. - - TDB Julian date of the desired time - OUT: Mean obliquity of the ecliptic in degrees at 'tjd'. - OUT: True obliquity of the ecliptic in degrees at 'tjd'. - OUT: Equation of the equinoxes in seconds of time at 'tjd'. - OUT: Nutation in longitude in arcseconds at 'tjd'. - OUT: Nutation in obliquity in arcseconds at 'tjd'. - - - - - This function allows for the specification of celestial pole offsets for high-precision applications. - - Value of offset in delta psi (dpsi) in arcseconds. - Value of offset in delta epsilon (deps) in arcseconds. - These are added to the nutation parameters delta psi and delta epsilon. - 1. This function sets the values of global variables 'PSI_COR'and 'EPS_COR' declared at the top of file 'novas.c'. These global variables are used only in NOVAS function 'earthtilt'. - 2. This function, if used, should be called before any other NOVAS functions for a given date. Values of the pole offsets specified via a call to this function will be used until explicitly changed. - 3. Daily values of the offsets are published, for example, in IERS Bulletins A and B. - 4. This function is the "C" version of Fortran NOVAS routine "celpol". - - - - - Retrieves the position and velocity of a body from a fundamental ephemeris. - - TDB Julian date. - Structure containing the designation of the body of interest - Origin point (solar system barycentre or centre of mass of the Sun - OUT: Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Velocity vector of 'body' at tjd; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
- 0    ... Everything OK.
- 1    ... Invalid value of 'origin'.
- 2    ... Invalid value of 'type' in 'cel_obj'.
- 3    ... Unable to allocate memory.
- 10+n ... where n is the error code from 'solarsystem'.
- 20+n ... where n is the error code from 'readeph'.
- -
- - - Provides the position and velocity of the Earth - - TDB Julian date. - Body identification number. -
- Set 'body' = 0 or 'body' = 1 or 'body' = 10 for the Sun.
- Set 'body' = 2 or 'body' = 3 for the Earth.
-
- Required origin: solar system barycenter or center of mass of the Sun - OUT: Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
- 0...Everything OK.
- 1...Input Julian date ('tjd') out of range.
- 2...Invalid value of 'body'.
-
- Provides the position and velocity of the Earth at epoch 'tjd' by evaluating a closed-form theory without reference to an external file. This function can also provide the position and velocity of the Sun. -
- - - Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - OUT: Right ascension in hours. - OUT: Declination in degrees. -
- 0...Everything OK.
- 1...All vector components are zero; 'ra' and 'dec' are indeterminate.
- 2...Both vec[0] and vec[1] are zero, but vec[2] is nonzero; 'ra' is indeterminate.
-
- -
- - - Converts angular quanities for stars to vectors. - - Catalog entry structure containing J2000.0 catalog data with FK5-style units - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance - Position vector, equatorial rectangular coordinates (AU). - - - - - Obtains the barycentric and heliocentric positions and velocities of the Earth from the solar system ephemeris. - - TT (or TDT) Julian date. - Structure containing the body designation for the Earth. - OUT: TDB Julian date corresponding to 'tjd'. - OUT: Barycentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Barycentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. - OUT: Heliocentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Heliocentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
-
- -
- - - Computes the mean place of a star for J2000.0 - - TT (or TDT) Julian date of apparent place. - Pointer to structure containing the body designation for the Earth - Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: Mean right ascension J2000.0 in hours. - OUT: Mean declination J2000.0 in degrees. -
-   0...Everything OK.
-   1...Iterative process did not converge after 20 iterations.
- >10...Error from function 'app_star'.
- Computes the mean place of a star for J2000.0, given its apparent - place at date 'tjd'. Proper motion, parallax and radial velocity - are assumed to be zero. - -
- - - Transforms a vector from an Earth-fixed geographic system to a space-fixed system - - TT (or TDT) Julian date - Greenwich apparent sidereal time, in hours. - Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. - Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. - Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. - OUT: Vector in geocentric rectangular space-fixed system, referred to mean equator and equinox of J2000.0. - Transforms a vector from an Earth-fixed geographic system to a space-fixed system based on mean equator and equinox of J2000.0; applies rotations for wobble, spin, nutation, and precession. - - - - Transforms geocentric rectangular coordinates from rotating system to non-rotating system - - Local apparent sidereal time at reference meridian, in hours. - Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal reference meridian. - OUT: Vector in geocentric rectangular non-rotating system, referred to true equator and equinox of date. - Transforms geocentric rectangular coordinates from rotating system based on rotational equator and orthogonal reference meridian to non-rotating system based on true equator and equinox of date. - - - - Corrects Earth-fixed geocentric rectangular coordinates for polar motion. - - Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. - Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. - Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. - OUT: Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal Greenwich meridian - Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Transforms a vector from Earth-fixed geographic system to rotating system based on rotational equator and orthogonal Greenwich meridian through axis of rotation. - - - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Longitude, latitude and height of the observer (in a SiteInfoStruct) - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/Day. - - - - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - OUT: Position vector at second epoch. - - - - - Moves the origin of coordinates from the barycenter of the solar system to the center of mass of the Earth - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU. - OUT: Position vector, referred to origin at center of mass of the Earth, components in AU. - OUT: Light time from body to Earth in days. - This corrects for parallax. - - - - Corrects position vector for the deflection of light in the gravitational field of the Sun. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Position vector of center of mass of the Earth, referred to origin at center of mass of the Sun, components in AU. - Position vector, referred to origin at center of mass of the Earth, corrected for gravitational deflection, components in AU. - 0...Everything OK. - This function is valid for bodies within the solar system as well as for stars. - - - - Corrects position vector for aberration of light. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from body to Earth in days. - OUT: Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - 0...Everything OK. - Algorithm includes relativistic terms. - - - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB julian date of epoch. - Flag determining 'direction' of transformation;
-    fn  = 0 transformation applied, mean to true.
-    fn != 0 inverse transformation applied, true to mean.
- Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. - OUT: Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. - 0...Everything OK. - Inverse transformation may be applied by setting flag 'fn'. -
- - - Provides fast evaluation of the nutation components according to the 1980 IAU Theory of Nutation. - - TDB time in Julian centuries since J2000.0 - OUT: Nutation in longitude in arcseconds. - OUT: Nutation in obliquity in arcseconds. - 0...Everything OK. - - - - - To compute the fundamental arguments. - - TDB time in Julian centuries since J2000.0 - OUT: FundamentalArgsStruct containing:
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (L - omega; L = mean longitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = omega (mean longitude of the Moon's ascending node)
- -
- - - Converts TDB to TT or TDT - - TDB Julian date. - OUT: TT (or TDT) Julian date. - OUT: Difference tdbjd-tdtjd, in seconds. - Computes the terrestrial time (TT) or terrestrial dynamical time (TDT) Julian date corresponding to a barycentric dynamical time (TDB) Julian date. - - - - Sets up a structure of type 'body' - defining a celestial object- based on the input parameters. - - Type of body - Body number - Name of the body. - OUT: Structure containg the body definition -
- = 0 ... everything OK
- = 1 ... invalid value of 'type'
- = 2 ... 'number' out of range
-
- -
- - - To create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Three-character catalog identifier (e.g. HIP = Hipparcos, FK5 = FK5). This identifier also specifies the reference system and units of the data; i.e. they are the same as the specified catalog. - Object name (50 characters maximum). - Object number in the catalog. - Right ascension of the object. - Declination of the object. - Proper motion in right ascension. - Proper motion in declination. - Parallax. - Radial velocity. - OUT: Structure containing the input data - - - - - Computes atmospheric refraction in zenith distance. - - structure containing observer's location - refraction option - bserved zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. - - - - This function will compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number. - Day number - Time in hours - OUT: Julian date. - - - - - Compute a date on the Gregorian calendar given the Julian date. - - Julian date. - OUT: Year number - OUT: Month number. - OUT: Day number - OUT: Time in hours - - - - - Compute equatorial spherical coordinates of Sun referred to the mean equator and equinox of date. - - Julian date on TDT or ET time scale. - OUT: Right ascension referred to mean equator and equinox of date (hours). - OUT: Declination referred to mean equator and equinox of date (degrees). - OUT: Geocentric distance (AU). - - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - Get path to a system folder - - SUpply null / nothing to use "current user" - returned string folder path - Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c - Indicates whether the folder should be created if it does not already exist. If this value is nonzero, - the folder is created. If this value is zero, the folder is not created - TRUE if successful; otherwise, FALSE. - - - - - NOVAS2COM: Instanciable class presenting the contents of the NOVAS 2 library. - NOVAS was developed by the Astronomical Applications department of the United States Naval - Observatory. The C language version of NOVAS was developed by John Bangert at USNO/AA. - - - The NOVAS2COM class is an instanciable class usable by COM clients. This means that you have to create an instance of the - class in order to access its members. So, this works: - - Dim Nov as New ASCOM.Astrometry.NOVAS2COM - rc = Nov.AppStar(tjd, earth, star, ra, dec) - - while this does not work: - rc = ASCOM.Astrometry.NOVAS2COM.AppStar(tjd, earth, star, ra, dec) - Method names are identical to those used in NOVAS2, as are almost all paramaters. There are a few - changes that introduce some new structures but these should be self explanatory. One significant difference - is that position and velocity vectors are returned as structures rather than double arrays. This was done - to make type checking more effective. - Testing of the high level supervisory functions has been carried out using real-time star data from - the USNO web site. Values provided by this NOVAS2 implementation agree on average to about 50 milli - arc-seconds with current USNO web site values. - This class is implemented using a thin layer of .NET code that calls functions in - either a 32 or 64 bit compiled version of the unmodified C code from ther USNO web site. The .NET code - does not carry out calculations itself, it simply handles any interface presentation differences - and calls the relevant 32 or 64bit code according to its environment. - Note: This class only supports Earth in the XXXXPlanet classes, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - - - - - Corrects position vector for aberration of light. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from body to Earth in days. - OUT: Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - 0...Everything OK. - Algorithm includes relativistic terms. - - - - Compute the apparent place of a planet or other solar system body. - - TT (or TDT) Julian date for apparent place. - Structure containing the body designation for the solar system body - Structure containing the body designation for the Earth - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: True distance from Earth to planet at 'tjd' in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the apparent place of a star - - TT (or TDT) Julian date for apparent place. - Structure containing the body designation for the earth - Catalog entry structure containing J2000.0 catalog data with FK5-style units (defined in novas.h). - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. -
-  0...Everything OK
- >0...Error code from function 'solarsystem'.
- -
- - - Computes the astrometric place of a planet or other solar system body. - - TT (or TDT) Julian date for calculation. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the astrometric place of a star - - TT (or TDT) Julian date for astrometric place. - Pointer to structure containing the body designation for the Earth - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
- 
- Computes the astrometric place of a star, given its mean place, proper motion, parallax, and radial velocity for J2000.0. -
- - - Moves the origin of coordinates from the barycenter of the solar system to the center of mass of the Earth - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU. - OUT: Position vector, referred to origin at center of mass of the Earth, components in AU. - OUT: Light time from body to Earth in days. - This corrects for parallax. - - - - Compute a date on the Gregorian calendar given the Julian date. - - Julian date. - OUT: Year number - OUT: Month number. - OUT: Day number - OUT: Time in hours - - - - - This function allows for the specification of celestial pole offsets for high-precision applications. - - Value of offset in delta psi (dpsi) in arcseconds. - Value of offset in delta epsilon (deps) in arcseconds. - These are added to the nutation parameters delta psi and delta epsilon. - 1. This function sets the values of global variables 'PSI_COR'and 'EPS_COR' declared at the top of file 'novas.c'. These global variables are used only in NOVAS function 'earthtilt'. - 2. This function, if used, should be called before any other NOVAS functions for a given date. Values of the pole offsets specified via a call to this function will be used until explicitly changed. - 3. Daily values of the offsets are published, for example, in IERS Bulletins A and B. - 4. This function is the "C" version of Fortran NOVAS routine "celpol". - - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'tjd'. - - TDB Julian date of the desired time - OUT: Mean obliquity of the ecliptic in degrees at 'tjd'. - OUT: True obliquity of the ecliptic in degrees at 'tjd'. - OUT: Equation of the equinoxes in seconds of time at 'tjd'. - OUT: Nutation in longitude in arcseconds at 'tjd'. - OUT: Nutation in obliquity in arcseconds at 'tjd'. - - - - - Retrieves the position and velocity of a body from a fundamental ephemeris. - - TDB Julian date. - Structure containing the designation of the body of interest - Origin point (solar system barycentre or centre of mass of the Sun - OUT: Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Velocity vector of 'body' at tjd; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
- 0    ... Everything OK.
- 1    ... Invalid value of 'origin'.
- 2    ... Invalid value of 'type' in 'cel_obj'.
- 3    ... Unable to allocate memory.
- 10+n ... where n is the error code from 'solarsystem'.
- 20+n ... where n is the error code from 'readeph'.
- -
- - - Transform apparent equatorial coordinates to horizon coordinates - - TT (or TDT) Julian date. - Difference TT (or TDT)-UT1 at 'tjd', in seconds. - Conventionally-defined x coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. - structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option - OUT: Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - OUT: Topocentric azimuth (measured east from north) in degrees. - OUT: Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. - OUT: Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms apparent equatorial coordinates (right - ascension and declination) to horizon coordinates (zenith - distance and azimuth). It uses a method that properly accounts - for polar motion, which is significant at the sub-arcsecond - level. This function can also adjust coordinates for atmospheric - refraction. - - - - To compute the fundamental arguments. - - TDB time in Julian centuries since J2000.0 - OUT: FundamentalArgsStruct containing:
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (L - omega; L = mean longitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = omega (mean longitude of the Moon's ascending node)
- -
- - - Obtains the barycentric and heliocentric positions and velocities of the Earth from the solar system ephemeris. - - TT (or TDT) Julian date. - Structure containing the body designation for the Earth. - OUT: TDB Julian date corresponding to 'tjd'. - OUT: Barycentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Barycentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. - OUT: Heliocentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Heliocentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
-
- -
- - - This function will compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number. - Day number - Time in hours - OUT: Julian date. - - - - - Computes the local place of a planet or other solar system body, given the location of the observer. - - TT (or TDT) Julian date for local place. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - Pointer to structure containing observer's location - OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Local declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the local place of a star - - TT (or TDT) Julian date for local place. - Pointer to structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - Pointer to structure containing observer's location - OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Local declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
-
- -
- - - To create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Three-character catalog identifier (e.g. HIP = Hipparcos, FK5 = FK5). This identifier also specifies the reference system and units of the data; i.e. they are the same as the specified catalog. - Object name (50 characters maximum). - Object number in the catalog. - Right ascension of the object. - Declination of the object. - Proper motion in right ascension. - Proper motion in declination. - Parallax. - Radial velocity. - OUT: Structure containing the input data - - - - - Computes the mean place of a star for J2000.0 - - TT (or TDT) Julian date of apparent place. - Pointer to structure containing the body designation for the Earth - Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: Mean right ascension J2000.0 in hours. - OUT: Mean declination J2000.0 in degrees. -
-   0...Everything OK.
-   1...Iterative process did not converge after 20 iterations.
- >10...Error from function 'app_star'.
- Computes the mean place of a star for J2000.0, given its apparent - place at date 'tjd'. Proper motion, parallax and radial velocity - are assumed to be zero. - -
- - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB julian date of epoch. - Flag determining 'direction' of transformation;
-    fn  = 0 transformation applied, mean to true.
-    fn != 0 inverse transformation applied, true to mean.
- Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. - OUT: Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. - 0...Everything OK. - Inverse transformation may be applied by setting flag 'fn'. -
- - - Provides fast evaluation of the nutation components according to the 1980 IAU Theory of Nutation. - - TDB time in Julian centuries since J2000.0 - OUT: Nutation in longitude in arcseconds. - OUT: Nutation in obliquity in arcseconds. - 0...Everything OK. - - - - - Transforms a vector from an Earth-fixed geographic system to a space-fixed system - - TT (or TDT) Julian date - Greenwich apparent sidereal time, in hours. - Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. - Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. - Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. - OUT: Vector in geocentric rectangular space-fixed system, referred to mean equator and equinox of J2000.0. - Transforms a vector from an Earth-fixed geographic system to a space-fixed system based on mean equator and equinox of J2000.0; applies rotations for wobble, spin, nutation, and precession. - - - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of first epoch. - TDB Julian date of second epoch. - OUT: Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of second epoch. - The coordinates are referred to the mean equator and equinox of the two respective epochs. - - - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - OUT: Position vector at second epoch. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance - Position vector, equatorial rectangular coordinates (AU). - - - - - Computes atmospheric refraction in zenith distance. - - structure containing observer's location - refraction option - bserved zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. - - - - Sets up a structure of type 'body' - defining a celestial object- based on the input parameters. - - Type of body - Body number - Name of the body. - OUT: Structure containg the body definition -
- = 0 ... everything OK
- = 1 ... invalid value of 'type'
- = 2 ... 'number' out of range
-
- -
- - - Computes the Greenwich apparent sidereal time, at Julian date 'jd_high' + 'jd_low'. - - Julian date, integral part. - Julian date, fractional part. - Equation of the equinoxes (seconds of time). [Note: this quantity is computed by function 'earthtilt'.] - Greenwich apparent sidereal time, in hours. - - - - - Provides the position and velocity of the Earth - - TDB Julian date. - Body identification number. -
- Set 'body' = 0 or 'body' = 1 or 'body' = 10 for the Sun.
- Set 'body' = 2 or 'body' = 3 for the Earth.
-
- Required origin: solar system barycenter or center of mass of the Sun - OUT: Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. - OUT: Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. -
- 0...Everything OK.
- 1...Input Julian date ('tjd') out of range.
- 2...Invalid value of 'body'.
-
- Provides the position and velocity of the Earth at epoch 'tjd' by evaluating a closed-form theory without reference to an external file. This function can also provide the position and velocity of the Sun. -
- - - Transforms geocentric rectangular coordinates from rotating system to non-rotating system - - Local apparent sidereal time at reference meridian, in hours. - Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal reference meridian. - OUT: Vector in geocentric rectangular non-rotating system, referred to true equator and equinox of date. - Transforms geocentric rectangular coordinates from rotating system based on rotational equator and orthogonal reference meridian to non-rotating system based on true equator and equinox of date. - - - - Converts angular quanities for stars to vectors. - - Catalog entry structure containing J2000.0 catalog data with FK5-style units - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Compute equatorial spherical coordinates of Sun referred to the mean equator and equinox of date. - - Julian date on TDT or ET time scale. - OUT: Right ascension referred to mean equator and equinox of date (hours). - OUT: Declination referred to mean equator and equinox of date (degrees). - OUT: Geocentric distance (AU). - - - - - Corrects position vector for the deflection of light in the gravitational field of the Sun. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Position vector of center of mass of the Earth, referred to origin at center of mass of the Sun, components in AU. - Position vector, referred to origin at center of mass of the Earth, corrected for gravitational deflection, components in AU. - 0...Everything OK. - This function is valid for bodies within the solar system as well as for stars. - - - - Converts TDB to TT or TDT - - TDB Julian date. - OUT: TT (or TDT) Julian date. - OUT: Difference tdbjd-tdtjd, in seconds. - Computes the terrestrial time (TT) or terrestrial dynamical time (TDT) Julian date corresponding to a barycentric dynamical time (TDB) Julian date. - - - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Longitude, latitude and height of the observer (in a SiteInfoStruct) - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/Day. - - - - - Computes the topocentric place of a planet, given the location of the observer. - - TT (or TDT) Julian date for topocentric place. - structure containing the body designation for the solar system body - structure containing the body designation for the Earth - Difference TT(or TDT)-UT1 at 'tjd', in seconds. - structure containing observer's location - OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. - OUT: True distance from Earth to planet at 'tjd' in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the topocentric place of a star - - TT (or TDT) Julian date for topocentric place. - Structure containing the body designation for the Earth. - Difference TT (or TDT)-UT1 at 'tjd', in seconds. - Catalog entry structure containing J2000.0 catalog data with FK5-style units. - Structure containing observer's location - OUT: Topocentric right ascension in hours, referred to true equator and equinox of date 'tjd'. - OUT: Topocentric declination in degrees, referred to true equator and equinox of date 'tjd'. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'.
- -
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option
-    = 1 ... change epoch; same equator and equinox
-    = 2 ... change equator and equinox; same epoch
-    = 3 ... change equator and equinox and epoch
-
- TT Julian date, or year, of input catalog data. - An entry from the input catalog - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - OUT: The transformed catalog entry -
- 1. 'date_incat' and 'date_newcat' may be specified either as a 
-    Julian date (e.g., 2433282.5) or a Julian year and fraction 
-    (e.g., 1950.0).  Values less than 10000 are assumed to be years.
- 
- 2. option = 1 updates the star's data to account for the star's space motion between 
-               the first and second dates, within a fixed reference frame.
-    option = 2 applies a rotation of the reference frame corresponding to precession 
-               between the first and second dates, but leaves the star fixed in space.
-    option = 3 provides both transformations.
- 
- 3. This subroutine cannot be properly used to bring data from 
-    old (pre-FK5) star catalogs into the modern system, because old 
-    catalogs were compiled using a set of constants that are 
-    incompatible with the IAU (1976) system.
- 
- 4. This function uses TDB Julian dates internally, but no 
-    distinction between TDB and TT is necessary.
-
-
- - - To convert Hipparcos data at epoch J1991.25 to epoch J2000.0 and FK5-style units. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0, with all members having FK5 catalog units. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. -
- 1. Hipparcos epoch and units:
-    Epoch: J1991.25
-    Right ascension (RA): degrees
-    Declination (Dec): degrees
-    Proper motion in RA * cos (Dec): milliarcseconds per year
-    Proper motion in Dec: milliarcseconds per year
-    Parallax: milliarcseconds
-    Radial velocity: kilometers per second (not in catalog)
- 
- 2. FK5 epoch and units:
-    Epoch: J2000.0
-    Right ascension: hours
-    Declination: degrees
-    Proper motion in RA: seconds of time per Julian century
-    Proper motion in Dec: arcseconds per Julian century
-    Parallax: arcseconds
-    Radial velocity: kilometers per second
-
-
- - - Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - OUT: Right ascension in hours. - OUT: Declination in degrees. -
- 0...Everything OK.
- 1...All vector components are zero; 'ra' and 'dec' are indeterminate.
- 2...Both vec[0] and vec[1] are zero, but vec[2] is nonzero; 'ra' is indeterminate.
-
- -
- - - Computes the virtual place of a planet or other solar system body. - - TT (or TDT) Julian date for virtual place. - Pointer to structure containing the body designation for the solar system body - Pointer to structure containing the body designation for the Earth - OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. - OUT: True distance from Earth to planet in AU. -
-  0...Everything OK.
- >0...See error description in function 'ephemeris'.
- 
- - Note: This function only supports Earth, which is a consequence of the implementation - used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes - can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. - -
- - - Computes the virtual place of a star - - TT (or TDT) Julian date for virtual place. - Pointer to structure containing the body designation for the Earth. - Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units - OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. - OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. -
-  0...Everything OK.
- >0...Error code from function 'solarsystem'
- 
- - Computes the virtual place of a star at date 'tjd', given its - mean place, proper motion, parallax, and radial velocity for J2000.0. -
- - - Corrects Earth-fixed geocentric rectangular coordinates for polar motion. - - Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. - Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. - Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. - OUT: Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal Greenwich meridian - Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Transforms a vector from Earth-fixed geographic system to rotating system based on rotational equator and orthogonal Greenwich meridian through axis of rotation. - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - NOVAS3: Class presenting the contents of the USNO NOVAS 3 library published December 2009. - NOVAS was developed by the Astronomical Applications department of the United States Naval - Observatory. - - If you wish to explore or utilise NOVAS3 please see USNO's extensive help document "NOVAS 3 Users Guide" - (NOVAS C3.0 Guide.pdf) included in the ASCOM Platform Docs start menu folder. The latest revision is also available on the USNO web site at - http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas - in the "C Edition of NOVAS" link. - If you use NOVAS, please send an e-mail through this page: - http://www.usno.navy.mil/help/astronomy-help as this provides evidence to USNO that justifies further - improvements and developments of NOVAS capabilities. - - Note: This class is now deprecated, please use NOVAS31 instead. - - - - - Creates a new instance of the NOVAS3 component - - Thrown if the NOVAS3 support library DLL cannot be loaded - - - - - Cleans up the NOVAS3 object and releases its open file handle on the JPL planetary ephemeris file - - - - - - Get position and velocity of target with respect to the centre object. - - Two-element array containing the Julian date, which may be split any way (although the first - element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the - TDB or "T_eph" time scale. - Target object - Centre object - Position vector array of target relative to center, measured in AU. - Velocity vector array of target relative to center, measured in AU/day. -
- 0   ...everything OK.
- 1,2 ...error returned from State.
-
- This function accesses the JPL planetary ephemeris to give the position and velocity of the target - object with respect to the center object. -
- - - Produces the Cartesian heliocentric equatorial coordinates of the asteroid for the J2000.0 epoch - coordinate system from a set of Chebyshev polynomials read from a file. - - The number of the asteroid for which the position in desired. - The name of the asteroid. - The Julian date on which to find the position and velocity. -
- = 0 ( No error )
- = 1 ( Memory allocation error )
- = 2 ( Mismatch between asteroid name and number )
- = 3 ( Julian date out of bounds )
- = 4 ( Cannot find Chebyshev polynomial file )
- 
- - 6-element array of double containing position and velocity vector values. - The file name of the asteroid is taken from the name given. It is assumed that the name - is all in lower case characters. - - This routine will search in the application's current directory for a file of Chebyshev - polynomial coefficients whose name is based on the provided Name parameter: Name.chby - - Further information on using NOVAS with minor planet data is given here: - http://www.usno.navy.mil/USNO/astronomical-applications/software-products/usnoae98 - -
- - - Interface between the JPL direct-access solar system ephemerides and NOVAS-C. - - Julian date of the desired time, on the TDB time scale. - Body identification number for the solar system object of interest; - Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. - Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. - Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. - Always returns 0 - - - - - Read and interpolate the JPL planetary ephemeris file. - - 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. - The requested body to get data for from the ephemeris file. - The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) - The barycentric velocity vector array of the requested object, in AU/Day. - -
- 0 ...everything OK
- 1 ...error reading ephemeris file
- 2 ...epoch out of range.
- 
- - The target number designation of the astronomical bodies is: -
-         = 0: Mercury,               1: Venus, 
-         = 2: Earth-Moon barycenter, 3: Mars, 
-         = 4: Jupiter,               5: Saturn, 
-         = 6: Uranus,                7: Neptune, 
-         = 8: Pluto,                 9: geocentric Moon, 
-         =10: Sun.
- 
- - NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. - For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, - and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove - convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval - between then and epoch. - -
-
- - - Corrects position vector for aberration of light. Algorithm includes relativistic terms. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from object to Earth in days. - Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - If 'lighttime' = 0 on input, this function will compute it. - - - - Compute the apparent place of a planet or other solar system body. - - TT Julian date for apparent place. - Pointer to structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for apparent place. - Catalog entry structure containing catalog data forthe object in the ICRS - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'. - -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Compute the astrometric place of a planet or other solar system body. - - TT Julian date for astrometric place. - structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). - True distance from Earth to planet in AU. - -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for astrometric place. - Catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Position vector, referred to origin at center of mass of the Earth, components in AU. - Light time from object to Earth in days. - - - - - This function will compute a date on the Gregorian calendar given the Julian date. - - Julian date. - Year - Month number - day number - Fractional hour of the day - - - - - This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. - - TDB or TT Julian date for pole offsets. - Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. - Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. - Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds. -
- 0 ... Everything OK
- 1 ... Invalid value of 'Type'.
- 
- -
- - - Calaculate an array of CIO RA values around a given date - - TDB Julian date. - Number of Julian dates and right ascension values requested (not less than 2 or more than 20). - An arraylist of RaOfCIO structures containing a time series of the right ascension of the - Celestial Intermediate Origin (CIO) with respect to the GCRS. -
- 0 ... everything OK
- 1 ... error opening the 'cio_ra.bin' file
- 2 ... 'JdTdb' not in the range of the CIO file; 
- 3 ... 'NPts' out of range
- 4 ... unable to allocate memory for the internal 't' array; 
- 5 ... unable to allocate memory for the internal 'ra' array; 
- 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
- 
- - - Given an input TDB Julian date and the number of data points desired, this function returns a set of - Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). - The range of dates is centered (at least approximately) on the requested date. The function obtains - the data from an external data file. - How to create and retrieve values from the arraylist - - Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 - - rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 - MsgBox("Nov3 RC= " rc) - - For Each CioA As ASCOM.Astrometry.RAOfCio In CioList - MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) - Next - - - -
- - - Compute the orthonormal basis vectors of the celestial intermediate system. - - TDB Julian date of epoch. - Right ascension of the CIO at epoch (hours). - Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. - Accuracy - Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS. -
- 0 ... everything OK
- 1 ... invalid value of input variable 'RefSys'.
- 
- - To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial - intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and - the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the - right ascension of the CIO at that date is required as input. The right ascension of the CIO - can be with respect to either the GCRS origin or the true equinox of date -- different algorithms - are used in the two cases. -
- - - Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension - - TDB Julian date. - Selection for accuracy - Right ascension of the CIO, in hours. - Reference system in which right ascension is given -
-    0 ... everything OK
-    1 ... unable to allocate memory for the 'cio' array
- > 10 ... 10 + the error code from function 'CioArray'.
- 
- This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date. -
- - - Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). - - TT Julian date - Selection for accuracy - Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -). - -
-   0  ... everything OK
-   1  ... invalid value of 'Accuracy'
- > 10 ... 10 + the error code from function 'CioLocation'
- > 20 ... 20 + the error code from function 'CioBasis'.
- 
- -
- - - Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). - - Position vector of star, with respect to origin at solar system barycenter. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Difference in light time, in the sense star to barycenter minus star to earth, in days. - - Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a - light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position - vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is - the position vector of solar system body, with respect to origin at observer (or the geocenter), - components in AU; and the returned value is the light time to point on line defined by 'Pos1' - that is closest to solar system body (positive if light passes body before hitting observer, i.e., if - 'Pos1' is within 90 degrees of 'PosObs'). - - - - - Converts an ecliptic position vector to an equatorial position vector. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. - Position vector, referred to specified equator and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the output from this case, all vectors are assumed to be with respect to a dynamical system. - -
- - - Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. - - High-order part of TT Julian date. - Low-order part of TT Julian date. - Selection for accuracy - Complementary terms, in radians. - - Series from IERS Conventions (2003), Chapter 5, Table 5.2C, with some adjustments to coefficient values - copied from IERS function 'eect2000', which has a more complete series. - - - - - Retrieves the position and velocity of a solar system body from a fundamental ephemeris. - - TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. - Structure containing the designation of the body of interest - Origin code; solar system barycenter = 0, center of mass of the Sun = 1. - Slection for accuracy - Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Origin'
-    2 ... Invalid value of 'Type' in 'CelObj'; 
-    3 ... Unable to allocate memory
- 10+n ... where n is the error code from 'SolarSystem'; 
- 20+n ... where n is the error code from 'ReadEph'.
- 
- It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c. -
- - - To convert right ascension and declination to ecliptic longitude and latitude. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Right ascension in hours, referred to specified equator and equinox of date. - Declination in degrees, referred to specified equator and equinox of date. - Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. - Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the input to this case, all input coordinates are dynamical. - -
- - - Converts an equatorial position vector to an ecliptic position vector. - - TT Julian date of equator, equinox, and ecliptic used for - Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified equator and equinox of date. - Position vector, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for - the input to this case, all vectors are assumed to be with respect to a dynamical system. -
- - - Converts ICRS right ascension and declination to galactic longitude and latitude. - - ICRS right ascension in hours. - ICRS declination in degrees. - Galactic longitude in degrees. - Galactic latitude in degrees. - - - - - Transforms topocentric right ascension and declination to zenith distance and azimuth. - - UT1 Julian date. - Difference TT-UT1 at 'jd_ut1', in seconds. - Selection for accuracy - onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; - 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. - Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - Topocentric azimuth (measured east from north) in degrees. - Topocentric right ascension of object of interest, in hours, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - Topocentric declination of object of interest, in degrees, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms topocentric right ascension and declination to zenith distance and azimuth. - It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. - This function can also adjust coordinates for atmospheric refraction. - - - - Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - The Earth Rotation Angle (theta) in degrees. - The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used - here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time - in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that - decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top - of page 35 of IERS Conventions (1996)). - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. - - TDB Julian Date. - Selection for accuracy - Mean obliquity of the ecliptic in degrees at 'JdTdb'. - True obliquity of the ecliptic in degrees at 'JdTdb'. - Equation of the equinoxes in seconds of time at 'JdTdb'. - Nutation in longitude in arcseconds at 'JdTdb'. - Nutation in obliquity in arcseconds at 'JdTdb'. - Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', - if desired. See the prolog of 'cel_pole' for details. - - - - To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. - - Position vector, equatorial rectangular coordinates. - Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for - ICRS to dynamical transformation. - Position vector, equatorial rectangular coordinates. - - - - - To compute the fundamental arguments (mean elements) of the Sun and Moon. - - TDB time in Julian centuries since J2000.0 - Double array of fundamental arguments - - Fundamental arguments, in radians: -
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (mean argument of the latitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = a[4] (mean longitude of the Moon's ascending node);
-                from Simon section 3.4(b.3),
-                precession = 5028.8200 arcsec/cy)
- 
-
-
- - - Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). - - TT Julian date of equator to be used for output coordinates. - Coordinate system selection for output coordinates.; 0 ... mean equator and - equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date - Selection for accuracy - GCRS right ascension in hours. - GCRS declination in degrees. - Right ascension in hours, referred to specified equator and right ascension origin of date. - Declination in degrees, referred to specified equator of date. - -
-    0 ... everything OK
- >  0 ... error from function 'Vector2RaDec'' 
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
>
- For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). - This function only supports the CIO-based method. -
- - - This function computes the geocentric position and velocity of an observer on - the surface of the earth or on a near-earth spacecraft. - TT Julian date. - Value of Delta T (= TT - UT1) at 'JdTt'. - Selection for accuracy - Data specifying the location of the observer - Position vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU. - Velocity vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU/day. - -
- 0 ... everything OK
- 1 ... invalid value of 'Accuracy'.
- 
- The final vectors are expressed in the GCRS. -
- - - Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. - - TDB Julian date of observation. - Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. - Selection for accuracy - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar - system barycenter, referred to ICRS axes, components in AU. - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, corrected for gravitational deflection, components in AU. -
-    0 ... Everything OK
-  30 ... Error from function 'Ephemeris'; 
- > 30 ... Error from function 'MakeObject'.
- 
- This function valid for an observed body within the solar system as well as for a star. - - If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are - used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the - calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included. - - -
- - - Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. - - Position vector of observed object, with respect to origin at observer - (or the geocenter), components in AU. - Position vector of observer (or the geocenter), with respect to origin at - solar system barycenter, components in AU. - Position vector of gravitating body, with respect to origin at solar system - barycenter, components in AU. - Reciprocal mass of gravitating body in solar mass units, that is, - Sun mass / body mass. - Position vector of observed object, with respect to origin at observer - (or the geocenter), corrected for gravitational deflection, components in AU. - This function valid for an observed body within the solar system as well as for a star. - - - - Compute the intermediate right ascension of the equinox at the input Julian date - - TDB Julian date. - Equinox selection flag: mean pr true - Selection for accuracy - Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 - (i.e true equinox), then the returned value is the equation of the origins. - - - - - Compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number - Day number - Fractional hour of the day - Computed Julian date. - This function makes no checks for a valid input calendar date. The input calendar date - must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - - output Julian date will have the same basis. - - - - Computes the geocentric position of a solar system body, as antedated for light-time. - - TDB Julian date of observation. - Structure containing the designation for thesolar system body - Position vector of observer (or the geocenter), with respect to origin - at solar system barycenter, referred to ICRS axes, components in AU. - First approximation to light-time, in days (can be set to 0.0 if unknown) - Selection for accuracy - Position vector of body, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Final light-time, in days. -
-    0 ... everything OK
-    1 ... algorithm failed to converge after 10 iterations
- ]]> 10 ... error is 10 + error from function 'SolarSystem'.
- 
- -
- - - Determines the angle of an object above or below the Earth's limb (horizon). - - Position vector of observed object, with respect to origin at - geocenter, components in AU. - Position vector of observer, with respect to origin at geocenter, - components in AU. - Angle of observed object above (+) or below (-) limb in degrees. - Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... - below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb - The geometric limb is computed, assuming the Earth to be an airless sphere (no - refraction or oblateness is included). The observer can be on or above the Earth. - For an observer on the surface of the Earth, this function returns the approximate unrefracted - altitude. - - - - Computes the local place of a solar system body. - - TT Julian date for local place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Specifies accuracy level - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. - True distance from Earth to planet in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'; 
- ]]> 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for local place. delta_t (double) - Difference TT-UT1 at 'JdTt', in seconds of time. - catalog entry structure containing catalog data for the object in the ICRS - Structure specifying the position of the observer - Specifies accuracy level. - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Object name (50 characters maximum). - Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) - Object number in the catalog. - Right ascension of the object (hours). - Declination of the object (degrees). - Proper motion in right ascension (milliarcseconds/year). - Proper motion in declination (milliarcseconds/year). - Parallax (milliarcseconds). - Radial velocity (kilometers/second). - CatEntry3 structure containing the input data - - - - - Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated - on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. - InSpace structure containing the position and velocity of an observer situated - on a near-Earth spacecraft - - - - - Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. - - Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; - 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) - Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; - For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) - Name of the object (50 characters maximum). - Structure containing basic astrometric data for any celestial object - located outside the solar system; the catalog data for a star - Structure containing the object definition -
- 0 ... everything OK
- 1 ... invalid value of 'Type'
- 2 ... 'Number' out of range
- 
- -
- - - Makes a structure of type 'observer' - specifying the location of the observer. - - Integer code specifying location of observer: 0: observer at geocenter; - 1: observer on surface of earth; 2: observer on near-earth spacecraft - Structure containing data for an observer's location on the surface - of the Earth; used when 'Where' = 1 - Structure containing an observer's location on a near-Earth spacecraft; - used when 'Where' = 2 - Structure specifying the location of the observer -
- 0 ... everything OK
- 1 ... input value of 'Where' is out-of-range.
- 
- -
- - - Makes a structure of type 'observer' specifying an observer at the geocenter. - - Structure specifying the location of the observer at the geocenter - - - - - Makes a structure of type 'observer' specifying the position and velocity of an observer - situated on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric position vector (x, y, z) in km. - Structure containing the position and velocity of an observer - situated on a near-Earth spacecraft - Both input vectors are with respect to true equator and equinox of date. - - - - Makes a structure of type 'observer' specifying the location of and weather for an observer - on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) longitude in degrees; east positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an observer on - the surface of the Earth - - - - - Makes a structure of type 'on_surface' - specifying the location of and weather for an - observer on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) latitude in degrees; north positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an - observer on the surface of the Earth. - - - - - Compute the mean obliquity of the ecliptic. - - TDB Julian Date. - Mean obliquity of the ecliptic in arcseconds. - - - - - Computes the ICRS position of a star, given its apparent place at date 'JdTt'. - Proper motion, parallax and radial velocity are assumed to be zero. - - TT Julian date of apparent place. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - Specifies accuracy level - ICRS right ascension in hours. - ICRS declination in degrees. -
-    0 ... Everything OK
-    1 ... Iterative process did not converge after 30 iterations; 
- > 10 ... Error from function 'Vector2RaDec'
- > 20 ... Error from function 'AppStar'.
- 
- -
- - - Normalize angle into the range 0 angle (2 * pi). - - Input angle (radians). - The input angle, normalized as described above (radians). - - - - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB Julian date of epoch. - Flag determining 'direction' of transformation; direction = 0 - transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. - Selection for accuracy - Position vector, geocentric equatorial rectangular coordinates, referred to - mean equator and equinox of epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to - true equator and equinox of epoch. - Inverse transformation may be applied by setting flag 'direction' - - - - Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. - - TDB time in Julian centuries since J2000.0 - Selection for accuracy - Nutation in longitude in arcseconds. - Nutation in obliquity in arcseconds. - The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. - - This function selects the nutation model depending first upon the input value of 'Accuracy'. - If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 - a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. - - - - - - Computes the apparent direction of a star or solar system body at a specified time - and in a specified coordinate system. - - TT Julian date for place. - Specifies the celestial object of interest - Specifies the location of the observer - Difference TT-UT1 at 'JdTt', in seconds of time. - Code specifying coordinate system of the output position. 0 ... GCRS or - "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; - 3 ... astrometric coordinates, i.e., without light deflection or aberration. - Selection for accuracy - Structure specifying object's place on the sky at time 'JdTt', - with respect to the specified output coordinate system - -
- = 0         ... No problems.
- = 1         ... invalid value of 'CoordSys'
- = 2         ... invalid value of 'Accuracy'
- = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
- > 10,  40  ... 10 + error from function 'Ephemeris'
- > 40,  50  ... 40 + error from function 'GeoPosVel'
- > 50,  70  ... 50 + error from function 'LightTime'
- > 70,  80  ... 70 + error from function 'GravDef'
- > 80,  90  ... 80 + error from function 'CioLocation'
- > 90,  100 ... 90 + error from function 'CioBasis'
- 
-
- Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place: -
-     Location->Where = 0 and CoordSys = 1: apparent place
-     Location->Where = 1 and CoordSys = 1: topocentric place
-     Location->Where = 0 and CoordSys = 0: virtual place
-     Location->Where = 1 and CoordSys = 0: local place
-     Location->Where = 0 and CoordSys = 3: astrometric place
-     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
- 
- Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is - on surface of Earth or in a near-Earth satellite). - - -
- - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. - TDB Julian date of second epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch. -
- 0 ... everything OK
- 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
- 
- One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs. -
- - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - Position vector at second epoch. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance in AU - Position vector, equatorial rectangular coordinates (AU). - - - - - Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. - - Specifies the celestial object of interest - Geometric position vector of object with respect to observer, corrected for light-time, in AU. - Velocity vector of object with respect to solar system barycenter, in AU/day. - Velocity vector of observer with respect to solar system barycenter, in AU/day. - Distance from observer to geocenter, in AU. - Distance from observer to Sun, in AU. - Distance from object to Sun, in AU. - The observed radial velocity measure times the speed of light, in kilometers/second. - Radial velocity is here defined as the radial velocity measure (z) times the speed of light. - For a solar system body, it applies to a fictitious emitter at the center of the observed object, - assumed massless (no gravitational red shift), and does not in general apply to reflected light. - For stars, it includes all effects, such as gravitational red shift, contained in the catalog - barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known - kinematic velocity vector (obtained independently of spectroscopy) can be treated like - solar system objects. - - - - Computes atmospheric refraction in zenith distance. - - Structure containing observer's location. - 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric - parameters input in the 'Location' structure. - Observed zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. This function - can be used for planning observations or telescope pointing, but should not be used for the - reduction of precise observations. - - - - Computes the Greenwich apparent sidereal time, at Julian date 'JdHigh' + 'JdLow'. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. - 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - Greenwich apparent sidereal time, in hours. -
-          0 ... everything OK
-          1 ... invalid value of 'Accuracy'
-          2 ... invalid value of 'Method'
- > 10,  30 ... 10 + error from function 'CioRai'
- 
- The Julian date may be split at any point, but for highest precision, set 'JdHigh' - to be the integral part of the Julian date, and set 'JdLow' to be the fractional part. -
- - - Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. - - Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. - Position vector. - Position vector expressed in new coordinate system rotated about z by 'angle'. - - - - - Converts angular quantities for stars to vectors. - - Catalog entry structure containing ICRS catalog data - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding - to a Barycentric Dynamical Time (TDB) Julian date. - - TDB Julian date. - TT Julian date. - Difference 'tdb_jd'-'tt_jd', in seconds. - Expression used in this function is a truncated form of a longer and more precise - series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. - The result is good to about 10 microseconds. - - - - This function rotates a vector from the terrestrial to the celestial system. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Value of Delta T (= TT - UT1) at the input UT1 Julian date. - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - 0 ... The output vector is referred to GCRS axes; 1 ... The output - vector is produced with respect to the equator and equinox of date. - Conventionally-defined X coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, referred to ITRF - axes (terrestrial system) in the normal case where 'option' = 0. - Position vector, geocentric equatorial rectangular coordinates, referred to GCRS - axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'. -
-    0 ... everything is ok
-    1 ... invalid value of 'Accuracy'
-    2 ... invalid value of 'Method'
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
- 'x' = 'y' = 0 means no polar motion transformation. - - The 'option' flag only works for the equinox-based method. - -
- - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Structure containing observer's location - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial - rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular - coordinates, referred to true equator and equinox of date, components in AU/day. - - If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. - This function ignores polar motion, unless the observer's longitude and latitude have been - corrected for it, and variation in the length of day (angular velocity of earth). - The true equator and equinox of date do not form an inertial system. Therefore, with respect - to an inertial system, the very small velocity component (several meters/day) due to the precession - and nutation of the Earth's axis is not accounted for here. - - - - - Computes the topocentric place of a solar system body. - - TT Julian date for topocentric place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Selection for accuracy - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'Place'.
-
- -
- - - Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for topocentric place. - Difference TT-UT1 at 'JdTt', in seconds of time. - Catalog entry structure containing catalog data for the object in the ICRS - Specifies the position of the observer - Code specifying the relative accuracy of the output position. - Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'.
- 
- -
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option - TT Julian date, or year, of input catalog data. - An entry from the input catalog, with units as given in the struct definition - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - The transformed catalog entry, with units as given in the struct definition - -
- = 0 ... Everything OK.
- = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
- 
- Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. - 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or - a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. - For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or - 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. - 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first - and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference - frame corresponding to precession between the first and second dates, but leaves the star fixed in - space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a - fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system - of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). -3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or - 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output - in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and - equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. -4. This function cannot be properly used to bring data from old star catalogs into the - modern system, because old catalogs were compiled using a set of constants that are incompatible - with modern values. In particular, it should not be used for catalogs whose positions and - proper motions were derived by assuming a precession constant significantly different from - the value implicit in function 'precession'. -
- - - Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members - having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. Both input and - output data is in the ICRS. - - 1. Input (Hipparcos catalog) epoch and units: - - Epoch: J1991.25 - Right ascension (RA): degrees - Declination (Dec): degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second (not in catalog) - - - - 2. Output (modified Hipparcos) epoch and units: - - Epoch: J2000.0 - Right ascension: hours - Declination: degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second - > - - - - - - Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - Right ascension in hours. - Declination in degrees. - -
- = 0 ... Everything OK.
- = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
- = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
- 
- -
- - - Compute the virtual place of a planet or other solar system body. - - TT Julian date for virtual place. - structure containing the body designation for the solar system body( - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - True distance from Earth to planet in AU. - -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Type' in structure 'SsBody'.
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for virtual place. - catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - -
- =  0 ... Everything OK.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'
- 
- -
- - - Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects - the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). - - TT or UT1 Julian date. - Conventionally-defined X coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, - referred to ITRF axes. - Position vector, geocentric equatorial rectangular coordinates, - referred to true equator and TIO. - - - - - Get path to a system folder - - SUpply null / nothing to use "current user" - returned string folder path - Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c - Indicates whether the folder should be created if it does not already exist. If this value is nonzero, - the folder is created. If this value is zero, the folder is not created - TRUE if successful; otherwise, FALSE. - - - - - Loads a library DLL - - Full path to the file to load - A pointer to the loaded DLL image - This is a wrapper for the Windows kernel32 function LoadLibraryA - - - - Unloads a library DLL - - Pointer to the loaded library returned by the LoadLibrary function. - True or false depending on whether the library was released. - - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - NOVAS31: Class presenting the contents of the USNO NOVAS 3.1 library. - NOVAS was developed by the Astronomical Applications department of the United States Naval - Observatory. - - If you wish to explore or utilise NOVAS3.1 please see USNO's extensive help document "NOVAS 3.1 Users Guide" - (NOVAS C3.1 Guide.pdf) included in the ASCOM Platform Docs start menu folder. The latest revision is also available on the USNO web site at - http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas - in the "C Edition of NOVAS" link. - If you use NOVAS, please send an e-mail through this page: - http://www.usno.navy.mil/help/astronomy-help as this provides evidence to USNO that justifies further - improvements and developments of NOVAS capabilities. - - - - - - Creates a new instance of the NOVAS31 component - - Thrown if the NOVAS31 support library DLL cannot be loaded - - - - - Cleans up the NOVAS3 object and releases its open file handle on the JPL planetary ephemeris file - - - - - - Get position and velocity of target with respect to the centre object. - - Two-element array containing the Julian date, which may be split any way (although the first - element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the - TDB or "T_eph" time scale. - Target object - Centre object - Position vector array of target relative to center, measured in AU. - Velocity vector array of target relative to center, measured in AU/day. -
- 0   ...everything OK.
- 1,2 ...error returned from State.
-
- This function accesses the JPL planetary ephemeris to give the position and velocity of the target - object with respect to the center object. -
- - - Produces the Cartesian heliocentric equatorial coordinates of the asteroid for the J2000.0 epoch - coordinate system from a set of Chebyshev polynomials read from a file. - - The number of the asteroid for which the position in desired. - The name of the asteroid. - The Julian date on which to find the position and velocity. -
- = 0 ( No error )
- = 1 ( Memory allocation error )
- = 2 ( Mismatch between asteroid name and number )
- = 3 ( Julian date out of bounds )
- = 4 ( Cannot find Chebyshev polynomial file )
- 
- - 6-element array of double containing position and velocity vector values. - The file name of the asteroid is taken from the name given. It is assumed that the name - is all in lower case characters. - - This routine will search in the application's current directory for a file of Chebyshev - polynomial coefficients whose name is based on the provided Name parameter: Name.chby - - Further information on using NOVAS with minor planet data is given here: - http://www.usno.navy.mil/USNO/astronomical-applications/software-products/usnoae98 - -
- - - Interface between the JPL direct-access solar system ephemerides and NOVAS-C. - - Julian date of the desired time, on the TDB time scale. - Body identification number for the solar system object of interest; - Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. - Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. - Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. - Always returns 0 - - - - - Read and interpolate the JPL planetary ephemeris file. - - 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. - The requested body to get data for from the ephemeris file. - The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) - The barycentric velocity vector array of the requested object, in AU/Day. - -
- 0 ...everything OK
- 1 ...error reading ephemeris file
- 2 ...epoch out of range.
- 
- - The target number designation of the astronomical bodies is: -
-         = 0: Mercury,               1: Venus, 
-         = 2: Earth-Moon barycenter, 3: Mars, 
-         = 4: Jupiter,               5: Saturn, 
-         = 6: Uranus,                7: Neptune, 
-         = 8: Pluto,                 9: geocentric Moon, 
-         =10: Sun.
- 
- - NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. - For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, - and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove - convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval - between then and epoch. - -
-
- - - Corrects position vector for aberration of light. Algorithm includes relativistic terms. - - Position vector, referred to origin at center of mass of the Earth, components in AU. - Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. - Light time from object to Earth in days. - Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU - If 'lighttime' = 0 on input, this function will compute it. - - - - Compute the apparent place of a planet or other solar system body. - - TT Julian date for apparent place. - Pointer to structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for apparent place. - Catalog entry structure containing catalog data forthe object in the ICRS - Code specifying the relative accuracy of the output position. - Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'. - -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Compute the astrometric place of a planet or other solar system body. - - TT Julian date for astrometric place. - structure containing the body designation for the solar system body - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). - True distance from Earth to planet in AU. - -
-    0 ... Everything OK
-    1 ... Invalid value of 'Type' in structure 'SsBody'
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for astrometric place. - Catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). - Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). -
-    0 ... Everything OK
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). - - Position vector, referred to origin at solar system barycenter, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Position vector, referred to origin at center of mass of the Earth, components in AU. - Light time from object to Earth in days. - - - - - This function will compute a date on the Gregorian calendar given the Julian date. - - Julian date. - Year - Month number - day number - Fractional hour of the day - - - - - This function rotates a vector from the celestial to the terrestrial system. Specifically, it transforms a vector in the - GCRS (a local space-fixed system) to the ITRS (a rotating earth-fixed system) by applying rotations for the GCRS-to-dynamical - frame tie, precession, nutation, Earth rotation, and polar motion. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Value of Delta T (= TT - UT1) at the input UT1 Julian date. - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - 0 ... The output vector is referred to GCRS axes; 1 ... The output - vector is produced with respect to the equator and equinox of date. (See note 2 below) - Conventionally-defined X coordinate of celestial intermediate pole with respect to - ITRS pole, in arcseconds. - Conventionally-defined Y coordinate of celestial intermediate pole with respect to - ITRS pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, - referred to GCRS axes (celestial system) or with respect to - the equator and equinox of date, depending on 'option'. - Position vector, geocentric equatorial rectangular coordinates, - referred to ITRS axes (terrestrial system). -
-    0 ... everything is ok
-    1 ... invalid value of 'Accuracy'
-    2 ... invalid value of 'Method'
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
- Note 1: 'x' = 'y' = 0 means no polar motion transformation. - - Note2: 'option' = 1 only works for the equinox-based method. - -
- - - This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. - - TDB or TT Julian date for pole offsets. - Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. - Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. - Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds. -
- 0 ... Everything OK
- 1 ... Invalid value of 'Type'.
- 
- -
- - - Calaculate an array of CIO RA values around a given date - - TDB Julian date. - Number of Julian dates and right ascension values requested (not less than 2 or more than 20). - An arraylist of RaOfCIO structures containing a time series of the right ascension of the - Celestial Intermediate Origin (CIO) with respect to the GCRS. -
- 0 ... everything OK
- 1 ... error opening the 'cio_ra.bin' file
- 2 ... 'JdTdb' not in the range of the CIO file; 
- 3 ... 'NPts' out of range
- 4 ... unable to allocate memory for the internal 't' array; 
- 5 ... unable to allocate memory for the internal 'ra' array; 
- 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
- 
- - - Given an input TDB Julian date and the number of data points desired, this function returns a set of - Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). - The range of dates is centered (at least approximately) on the requested date. The function obtains - the data from an external data file. - How to create and retrieve values from the arraylist - - Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 - - rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 - MsgBox("Nov3 RC= " rc) - - For Each CioA As ASCOM.Astrometry.RAOfCio In CioList - MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) - Next - - - -
- - - Compute the orthonormal basis vectors of the celestial intermediate system. - - TDB Julian date of epoch. - Right ascension of the CIO at epoch (hours). - Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. - Accuracy - Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. - Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS. -
- 0 ... everything OK
- 1 ... invalid value of input variable 'RefSys'.
- 
- - To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial - intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and - the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the - right ascension of the CIO at that date is required as input. The right ascension of the CIO - can be with respect to either the GCRS origin or the true equinox of date -- different algorithms - are used in the two cases. -
- - - Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension - - TDB Julian date. - Selection for accuracy - Right ascension of the CIO, in hours. - Reference system in which right ascension is given -
-    0 ... everything OK
-    1 ... unable to allocate memory for the 'cio' array
- > 10 ... 10 + the error code from function 'CioArray'.
- 
- This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date. -
- - - Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). - - TT Julian date - Selection for accuracy - Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -). - -
-   0  ... everything OK
-   1  ... invalid value of 'Accuracy'
- > 10 ... 10 + the error code from function 'CioLocation'
- > 20 ... 20 + the error code from function 'CioBasis'.
- 
- -
- - - Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). - - Position vector of star, with respect to origin at solar system barycenter. - Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. - Difference in light time, in the sense star to barycenter minus star to earth, in days. - - Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a - light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position - vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is - the position vector of solar system body, with respect to origin at observer (or the geocenter), - components in AU; and the returned value is the light time to point on line defined by 'Pos1' - that is closest to solar system body (positive if light passes body before hitting observer, i.e., if - 'Pos1' is within 90 degrees of 'PosObs'). - - - - - Converts an ecliptic position vector to an equatorial position vector. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. - Position vector, referred to specified equator and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the output from this case, all vectors are assumed to be with respect to a dynamical system. - -
- - - Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. - - High-order part of TT Julian date. - Low-order part of TT Julian date. - Selection for accuracy - Complementary terms, in radians. - - 1. The series used in this function was derived from Series from IERS Conventions (2003), Chapter 5, Table 5.2C. - This same series was also adopted for use in the IAU's Standards of Fundamental Astronomy (SOFA) software (i.e., subroutine - eect00.for and function eect00.c). - 2. The low-accuracy series used in this function is a simple implementation derived from the first reference, in which terms - smaller than 2 microarcseconds have been omitted. - 3. This function is based on NOVAS Fortran routine 'eect2000', with the low-accuracy formula taken from NOVAS Fortran routine 'etilt'. - - - - - Retrieves the position and velocity of a solar system body from a fundamental ephemeris. - - TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. - Structure containing the designation of the body of interest - Origin code; solar system barycenter = 0, center of mass of the Sun = 1. - Slection for accuracy - Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. - Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Origin'
-    2 ... Invalid value of 'Type' in 'CelObj'; 
-    3 ... Unable to allocate memory
- 10+n ... where n is the error code from 'SolarSystem'; 
- 20+n ... where n is the error code from 'ReadEph'.
- 
- It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c. -
- - - To convert right ascension and declination to ecliptic longitude and latitude. - - TT Julian date of equator, equinox, and ecliptic used for coordinates. - Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Right ascension in hours, referred to specified equator and equinox of date. - Declination in degrees, referred to specified equator and equinox of date. - Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. - Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- - To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. - Except for the input to this case, all input coordinates are dynamical. - -
- - - Converts an equatorial position vector to an ecliptic position vector. - - TT Julian date of equator, equinox, and ecliptic used for - Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS - Selection for accuracy - Position vector, referred to specified equator and equinox of date. - Position vector, referred to specified ecliptic and equinox of date. -
- 0 ... everything OK
- 1 ... invalid value of 'CoordSys'
- 
- To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), - set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for - the input to this case, all vectors are assumed to be with respect to a dynamical system. -
- - - Converts ICRS right ascension and declination to galactic longitude and latitude. - - ICRS right ascension in hours. - ICRS declination in degrees. - Galactic longitude in degrees. - Galactic latitude in degrees. - - - - - Transforms topocentric right ascension and declination to zenith distance and azimuth. - - UT1 Julian date. - Difference TT-UT1 at 'jd_ut1', in seconds. - Selection for accuracy - onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. - Structure containing observer's location - Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. - Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. - Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; - 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. - Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. - Topocentric azimuth (measured east from north) in degrees. - Topocentric right ascension of object of interest, in hours, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - Topocentric declination of object of interest, in degrees, referred to true equator and - equinox of date, affected by refraction if 'ref_option' is non-zero. - This function transforms topocentric right ascension and declination to zenith distance and azimuth. - It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. - This function can also adjust coordinates for atmospheric refraction. - - - - Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - The Earth Rotation Angle (theta) in degrees. - The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used - here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time - in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that - decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top - of page 35 of IERS Conventions (1996)). - - - - Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. - - TDB Julian Date. - Selection for accuracy - Mean obliquity of the ecliptic in degrees at 'JdTdb'. - True obliquity of the ecliptic in degrees at 'JdTdb'. - Equation of the equinoxes in seconds of time at 'JdTdb'. - Nutation in longitude in arcseconds at 'JdTdb'. - Nutation in obliquity in arcseconds at 'JdTdb'. - Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', - if desired. See the prolog of 'cel_pole' for details. - - - - To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. - - Position vector, equatorial rectangular coordinates. - Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for - ICRS to dynamical transformation. - Position vector, equatorial rectangular coordinates. - - - - - To compute the fundamental arguments (mean elements) of the Sun and Moon. - - TDB time in Julian centuries since J2000.0 - Double array of fundamental arguments - - Fundamental arguments, in radians: -
-   a[0] = l (mean anomaly of the Moon)
-   a[1] = l' (mean anomaly of the Sun)
-   a[2] = F (mean argument of the latitude of the Moon)
-   a[3] = D (mean elongation of the Moon from the Sun)
-   a[4] = a[4] (mean longitude of the Moon's ascending node);
-                from Simon section 3.4(b.3),
-                precession = 5028.8200 arcsec/cy)
- 
-
-
- - - Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). - - TT Julian date of equator to be used for output coordinates. - Coordinate system selection for output coordinates.; 0 ... mean equator and - equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date - Selection for accuracy - GCRS right ascension in hours. - GCRS declination in degrees. - Right ascension in hours, referred to specified equator and right ascension origin of date. - Declination in degrees, referred to specified equator of date. - -
-    0 ... everything OK
- >  0 ... error from function 'Vector2RaDec'' 
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
>
- For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). - This function only supports the CIO-based method. -
- - - This function computes the geocentric position and velocity of an observer on - the surface of the earth or on a near-earth spacecraft. - TT Julian date. - Value of Delta T (= TT - UT1) at 'JdTt'. - Selection for accuracy - Data specifying the location of the observer - Position vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU. - Velocity vector of observer, with respect to origin at geocenter, - referred to GCRS axes, components in AU/day. - -
- 0 ... everything OK
- 1 ... invalid value of 'Accuracy'.
- 
- The final vectors are expressed in the GCRS. -
- - - Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. - - TDB Julian date of observation. - Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. - Selection for accuracy - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Position vector of observer (or the geocenter), with respect to origin at solar - system barycenter, referred to ICRS axes, components in AU. - Position vector of observed object, with respect to origin at observer (or the geocenter), - referred to ICRS axes, corrected for gravitational deflection, components in AU. -
-    0 ... Everything OK
-  30 ... Error from function 'Ephemeris'; 
- > 30 ... Error from function 'MakeObject'.
- 
- This function valid for an observed body within the solar system as well as for a star. - - If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are - used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the - calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included. - - -
- - - Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. - - Position vector of observed object, with respect to origin at observer - (or the geocenter), components in AU. - Position vector of observer (or the geocenter), with respect to origin at - solar system barycenter, components in AU. - Position vector of gravitating body, with respect to origin at solar system - barycenter, components in AU. - Reciprocal mass of gravitating body in solar mass units, that is, - Sun mass / body mass. - Position vector of observed object, with respect to origin at observer - (or the geocenter), corrected for gravitational deflection, components in AU. - This function valid for an observed body within the solar system as well as for a star. - - - - Compute the intermediate right ascension of the equinox at the input Julian date - - TDB Julian date. - Equinox selection flag: mean pr true - Selection for accuracy - Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 - (i.e true equinox), then the returned value is the equation of the origins. - - - - - Compute the Julian date for a given calendar date (year, month, day, hour). - - Year number - Month number - Day number - Fractional hour of the day - Computed Julian date. - This function makes no checks for a valid input calendar date. The input calendar date - must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - - output Julian date will have the same basis. - - - - Computes the geocentric position of a solar system body, as antedated for light-time. - - TDB Julian date of observation. - Structure containing the designation for thesolar system body - Position vector of observer (or the geocenter), with respect to origin - at solar system barycenter, referred to ICRS axes, components in AU. - First approximation to light-time, in days (can be set to 0.0 if unknown) - Selection for accuracy - Position vector of body, with respect to origin at observer (or the geocenter), - referred to ICRS axes, components in AU. - Final light-time, in days. -
-    0 ... everything OK
-    1 ... algorithm failed to converge after 10 iterations
- ]]> 10 ... error is 10 + error from function 'SolarSystem'.
- 
- -
- - - Determines the angle of an object above or below the Earth's limb (horizon). - - Position vector of observed object, with respect to origin at - geocenter, components in AU. - Position vector of observer, with respect to origin at geocenter, - components in AU. - Angle of observed object above (+) or below (-) limb in degrees. - Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... - below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb - The geometric limb is computed, assuming the Earth to be an airless sphere (no - refraction or oblateness is included). The observer can be on or above the Earth. - For an observer on the surface of the Earth, this function returns the approximate unrefracted - altitude. - - - - Computes the local place of a solar system body. - - TT Julian date for local place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Specifies accuracy level - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. - True distance from Earth to planet in AU. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'; 
- ]]> 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for local place. delta_t (double) - Difference TT-UT1 at 'JdTt', in seconds of time. - catalog entry structure containing catalog data for the object in the ICRS - Structure specifying the position of the observer - Specifies accuracy level. - Local right ascension in hours, referred to the 'local GCRS'. - Local declination in degrees, referred to the 'local GCRS'. -
-    0 ... Everything OK
-    1 ... Invalid value of 'Where' in structure 'Location'
- > 10 ... Error code from function 'MakeObject'
- > 20 ... Error code from function 'Place'.
- 
- -
- - - Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. - - Object name (50 characters maximum). - Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) - Object number in the catalog. - Right ascension of the object (hours). - Declination of the object (degrees). - Proper motion in right ascension (milliarcseconds/year). - Proper motion in declination (milliarcseconds/year). - Parallax (milliarcseconds). - Radial velocity (kilometers/second). - CatEntry3 structure containing the input data - - - - - Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated - on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. - InSpace structure containing the position and velocity of an observer situated - on a near-Earth spacecraft - - - - - Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. - - Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; - 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) - Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; - For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) - Name of the object (50 characters maximum). - Structure containing basic astrometric data for any celestial object - located outside the solar system; the catalog data for a star - Structure containing the object definition -
- 0 ... everything OK
- 1 ... invalid value of 'Type'
- 2 ... 'Number' out of range
- 
- -
- - - Makes a structure of type 'observer' - specifying the location of the observer. - - Integer code specifying location of observer: 0: observer at geocenter; - 1: observer on surface of earth; 2: observer on near-earth spacecraft - Structure containing data for an observer's location on the surface - of the Earth; used when 'Where' = 1 - Structure containing an observer's location on a near-Earth spacecraft; - used when 'Where' = 2 - Structure specifying the location of the observer -
- 0 ... everything OK
- 1 ... input value of 'Where' is out-of-range.
- 
- -
- - - Makes a structure of type 'observer' specifying an observer at the geocenter. - - Structure specifying the location of the observer at the geocenter - - - - - Makes a structure of type 'observer' specifying the position and velocity of an observer - situated on a near-Earth spacecraft. - - Geocentric position vector (x, y, z) in km. - Geocentric position vector (x, y, z) in km. - Structure containing the position and velocity of an observer - situated on a near-Earth spacecraft - Both input vectors are with respect to true equator and equinox of date. - - - - Makes a structure of type 'observer' specifying the location of and weather for an observer - on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) longitude in degrees; east positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an observer on - the surface of the Earth - - - - - Makes a structure of type 'on_surface' - specifying the location of and weather for an - observer on the surface of the Earth. - - Geodetic (ITRS) latitude in degrees; north positive. - Geodetic (ITRS) latitude in degrees; north positive. - Height of the observer (meters). - Temperature (degrees Celsius). - Atmospheric pressure (millibars). - Structure containing the location of and weather for an - observer on the surface of the Earth. - - - - - Compute the mean obliquity of the ecliptic. - - TDB Julian Date. - Mean obliquity of the ecliptic in arcseconds. - - - - - Computes the ICRS position of a star, given its apparent place at date 'JdTt'. - Proper motion, parallax and radial velocity are assumed to be zero. - - TT Julian date of apparent place. - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - Specifies accuracy level - ICRS right ascension in hours. - ICRS declination in degrees. -
-    0 ... Everything OK
-    1 ... Iterative process did not converge after 30 iterations; 
- > 10 ... Error from function 'Vector2RaDec'
- > 20 ... Error from function 'AppStar'.
- 
- -
- - - Normalize angle into the range 0 angle (2 * pi). - - Input angle (radians). - The input angle, normalized as described above (radians). - - - - - Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. - - TDB Julian date of epoch. - Flag determining 'direction' of transformation; direction = 0 - transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. - Selection for accuracy - Position vector, geocentric equatorial rectangular coordinates, referred to - mean equator and equinox of epoch. - Position vector, geocentric equatorial rectangular coordinates, referred to - true equator and equinox of epoch. - Inverse transformation may be applied by setting flag 'direction' - - - - Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. - - TDB time in Julian centuries since J2000.0 - Selection for accuracy - Nutation in longitude in arcseconds. - Nutation in obliquity in arcseconds. - The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. - - This function selects the nutation model depending first upon the input value of 'Accuracy'. - If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 - a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. - - - - - - Computes the apparent direction of a star or solar system body at a specified time - and in a specified coordinate system. - - TT Julian date for place. - Specifies the celestial object of interest - Specifies the location of the observer - Difference TT-UT1 at 'JdTt', in seconds of time. - Code specifying coordinate system of the output position. 0 ... GCRS or - "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; - 3 ... astrometric coordinates, i.e., without light deflection or aberration. - Selection for accuracy - Structure specifying object's place on the sky at time 'JdTt', - with respect to the specified output coordinate system - -
- = 0         ... No problems.
- = 1         ... invalid value of 'CoordSys'
- = 2         ... invalid value of 'Accuracy'
- = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
- > 10,  40  ... 10 + error from function 'Ephemeris'
- > 40,  50  ... 40 + error from function 'GeoPosVel'
- > 50,  70  ... 50 + error from function 'LightTime'
- > 70,  80  ... 70 + error from function 'GravDef'
- > 80,  90  ... 80 + error from function 'CioLocation'
- > 90,  100 ... 90 + error from function 'CioBasis'
- 
-
- Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place: -
-     Location->Where = 0 and CoordSys = 1: apparent place
-     Location->Where = 1 and CoordSys = 1: topocentric place
-     Location->Where = 0 and CoordSys = 0: virtual place
-     Location->Where = 1 and CoordSys = 0: local place
-     Location->Where = 0 and CoordSys = 3: astrometric place
-     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
- 
- Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is - on surface of Earth or in a near-Earth satellite). - - -
- - - Precesses equatorial rectangular coordinates from one epoch to another. - - TDB Julian date of first epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. - TDB Julian date of second epoch. See remarks below. - Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch. -
- 0 ... everything OK
- 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
- 
- One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs. -
- - - Applies proper motion, including foreshortening effects, to a star's position. - - TDB Julian date of first epoch. - Position vector at first epoch. - Velocity vector at first epoch. - TDB Julian date of second epoch. - Position vector at second epoch. - - - - - Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). - - Right ascension (hours). - Declination (degrees). - Distance in AU - Position vector, equatorial rectangular coordinates (AU). - - - - - Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. - - Specifies the celestial object of interest - Geometric position vector of object with respect to observer, corrected for light-time, in AU. - Velocity vector of object with respect to solar system barycenter, in AU/day. - Velocity vector of observer with respect to solar system barycenter, in AU/day. - Distance from observer to geocenter, in AU. - Distance from observer to Sun, in AU. - Distance from object to Sun, in AU. - The observed radial velocity measure times the speed of light, in kilometers/second. - Radial velocity is here defined as the radial velocity measure (z) times the speed of light. - For a solar system body, it applies to a fictitious emitter at the center of the observed object, - assumed massless (no gravitational red shift), and does not in general apply to reflected light. - For stars, it includes all effects, such as gravitational red shift, contained in the catalog - barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known - kinematic velocity vector (obtained independently of spectroscopy) can be treated like - solar system objects. - - - - Computes atmospheric refraction in zenith distance. - - Structure containing observer's location. - 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric - parameters input in the 'Location' structure. - Observed zenith distance, in degrees. - Atmospheric refraction, in degrees. - This version computes approximate refraction for optical wavelengths. This function - can be used for planning observations or telescope pointing, but should not be used for the - reduction of precise observations. - - - - Computes the Greenwich sidereal time, either mean or apparent, at Julian date 'JdHigh' + 'JdLow'. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. - 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - Greenwich apparent sidereal time, in hours. -
-          0 ... everything OK
-          1 ... invalid value of 'Accuracy'
-          2 ... invalid value of 'Method'
- > 10,  30 ... 10 + error from function 'CioRai'
- 
- The Julian date may be split at any point, but for highest precision, set 'JdHigh' - to be the integral part of the Julian date, and set 'JdLow' to be the fractional part. -
- - - Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. - - Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. - Position vector. - Position vector expressed in new coordinate system rotated about z by 'angle'. - - - - - Converts angular quantities for stars to vectors. - - Catalog entry structure containing ICRS catalog data - Position vector, equatorial rectangular coordinates, components in AU. - Velocity vector, equatorial rectangular coordinates, components in AU/Day. - - - - - Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding - to a Barycentric Dynamical Time (TDB) Julian date. - - TDB Julian date. - TT Julian date. - Difference 'tdb_jd'-'tt_jd', in seconds. - Expression used in this function is a truncated form of a longer and more precise - series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. - The result is good to about 10 microseconds. - - - - This function rotates a vector from the terrestrial to the celestial system. - - High-order part of UT1 Julian date. - Low-order part of UT1 Julian date. - Value of Delta T (= TT - UT1) at the input UT1 Julian date. - Selection for method: 0 ... CIO-based method; 1 ... equinox-based method - Selection for accuracy - 0 ... The output vector is referred to GCRS axes; 1 ... The output - vector is produced with respect to the equator and equinox of date. - Conventionally-defined X coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of celestial intermediate pole with respect to - ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, referred to ITRF - axes (terrestrial system) in the normal case where 'option' = 0. - Position vector, geocentric equatorial rectangular coordinates, referred to GCRS - axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'. -
-    0 ... everything is ok
-    1 ... invalid value of 'Accuracy'
-    2 ... invalid value of 'Method'
- > 10 ... 10 + error from function 'CioLocation'
- > 20 ... 20 + error from function 'CioBasis'
- 
- 'x' = 'y' = 0 means no polar motion transformation. - - The 'option' flag only works for the equinox-based method. - -
- - - Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. - - Structure containing observer's location - Local apparent sidereal time at reference meridian in hours. - Position vector of observer with respect to center of Earth, equatorial - rectangular coordinates, referred to true equator and equinox of date, components in AU. - Velocity vector of observer with respect to center of Earth, equatorial rectangular - coordinates, referred to true equator and equinox of date, components in AU/day. - - If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. - This function ignores polar motion, unless the observer's longitude and latitude have been - corrected for it, and variation in the length of day (angular velocity of earth). - The true equator and equinox of date do not form an inertial system. Therefore, with respect - to an inertial system, the very small velocity component (several meters/day) due to the precession - and nutation of the Earth's axis is not accounted for here. - - - - - Computes the topocentric place of a solar system body. - - TT Julian date for topocentric place. - structure containing the body designation for the solar system body - Difference TT-UT1 at 'JdTt', in seconds of time. - Specifies the position of the observer - Selection for accuracy - Apparent right ascension in hours, referred to true equator and equinox of date. - Apparent declination in degrees, referred to true equator and equinox of date. - True distance from Earth to planet at 'JdTt' in AU. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'Place'.
-
- -
- - - Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for topocentric place. - Difference TT-UT1 at 'JdTt', in seconds of time. - Catalog entry structure containing catalog data for the object in the ICRS - Specifies the position of the observer - Code specifying the relative accuracy of the output position. - Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. - Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'. -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Where' in structure 'Location'.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'.
- 
- -
- - - To transform a star's catalog quantities for a change of epoch and/or equator and equinox. - - Transformation option - TT Julian date, or year, of input catalog data. - An entry from the input catalog, with units as given in the struct definition - TT Julian date, or year, of transformed catalog data. - Three-character abbreviated name of the transformed catalog. - The transformed catalog entry, with units as given in the struct definition - -
- = 0 ... Everything OK.
- = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
- = 2 ... Catalogue ID exceeds three characters
- 
- Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. - 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or - a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. - For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or - 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. - 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first - and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference - frame corresponding to precession between the first and second dates, but leaves the star fixed in - space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a - fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system - of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). -3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or - 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output - in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and - equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. -4. This function cannot be properly used to bring data from old star catalogs into the - modern system, because old catalogs were compiled using a set of constants that are incompatible - with modern values. In particular, it should not be used for catalogs whose positions and - proper motions were derived by assuming a precession constant significantly different from - the value implicit in function 'precession'. -
- - - Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. - - An entry from the Hipparcos catalog, at epoch J1991.25, with all members - having Hipparcos catalog units. See Note 1 below - The transformed input entry, at epoch J2000.0. See Note 2 below - To be used only for Hipparcos or Tycho stars with linear space motion. Both input and - output data is in the ICRS. - - 1. Input (Hipparcos catalog) epoch and units: - - Epoch: J1991.25 - Right ascension (RA): degrees - Declination (Dec): degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second (not in catalog) - - - - 2. Output (modified Hipparcos) epoch and units: - - Epoch: J2000.0 - Right ascension: hours - Declination: degrees - Proper motion in RA: milliarcseconds per year - Proper motion in Dec: milliarcseconds per year - Parallax: milliarcseconds - Radial velocity: kilometers per second - > - - - - - - Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. - - Position vector, equatorial rectangular coordinates. - Right ascension in hours. - Declination in degrees. - -
- = 0 ... Everything OK.
- = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
- = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
- 
- -
- - - Compute the virtual place of a planet or other solar system body. - - TT Julian date for virtual place. - structure containing the body designation for the solar system body( - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - True distance from Earth to planet in AU. - -
- =  0 ... Everything OK.
- =  1 ... Invalid value of 'Type' in structure 'SsBody'.
- > 10 ... Error code from function 'Place'.
- 
- -
- - - Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. - - TT Julian date for virtual place. - catalog entry structure containing catalog data for the object in the ICRS - Code specifying the relative accuracy of the output position. - Virtual right ascension in hours, referred to the GCRS. - Virtual declination in degrees, referred to the GCRS. - -
- =  0 ... Everything OK.
- > 10 ... Error code from function 'MakeObject'.
- > 20 ... Error code from function 'Place'
- 
- -
- - - Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects - the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). - - TT or UT1 Julian date. - direction (short int) - Flag determining 'direction' of transformation; - direction = 0 transformation applied, ITRS to terrestrial intermediate system - direction != 0 inverse transformation applied, terrestrial intermediate system to ITRS - Conventionally-defined X coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Conventionally-defined Y coordinate of Celestial Intermediate Pole with - respect to ITRF pole, in arcseconds. - Position vector, geocentric equatorial rectangular coordinates, - referred to ITRF axes. - Position vector, geocentric equatorial rectangular coordinates, - referred to true equator and TIO. - - - - - Get path to a system folder - - SUpply null / nothing to use "current user" - returned string folder path - Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c - Indicates whether the folder should be created if it does not already exist. If this value is nonzero, - the folder is created. If this value is zero, the folder is not created - TRUE if successful; otherwise, FALSE. - - - - - Loads a library DLL - - Full path to the file to load - A pointer to the loaded DLL image - This is a wrapper for the Windows kernel32 function LoadLibraryA - - - - Unloads a library DLL - - Pointer to the loaded library returned by the LoadLibrary function. - True or false depending on whether the library was released. - - - - - Return the value of DeltaT for the given Julian date - - Julian date for which the delta T value is required - Double value of DeltaT (seconds) - Valid between the years 1650 and 2050 - - - - Interface to the SOFA component - - Implemented by the SOFA component - - - - This class presents a subset of the SOFA (Standards of Fundamental Astronomy) astrometry routines in a form that is easily accessible from both 32bit and 64bit .NET and - COM applications. - - - SOFA operates under the auspices of the International Astronomical Union (IAU) to provide algorithms and software for use in astronomical computing. The entire SOFA - collection comprises many authoritative routines across a number of areas including: - - Astrometry - Calendars - Time Scales - Earth rotation and sidereal time - Ephemerides (medium precision) - Geocentric/geodetic transformations - Precession, nutation, polar motion - Star space motion - Star catalogue conversion - - The class's functionality is provided by underlying DLLs compiled from unmodified original C source code distributed by SOFA but the class does not constitute software provided by and/or endorsed by SOFA. - No change whatsoever has been made to the algorithms implemented by SOFA that realise IAU standards. - - SOFA provides a validation routine to confirm that the compiled library provides expected results. 32 and 64bit versions of this routine (SofaTestXX.exe and SofaTestXX-64.exe, where XX is the issue number) - are included in this distribution and can be found in the Common Files\ASCOM\Astrometry directory. To run them open a command prompt in the Astrometry directory and enter the commands SofaTest10 /verbose and SofaTest10-64 /verbose. - The susbset of these tests that is relevant to the routines presented in this component have also been incorporated in the ASCOM Diagnostics tool and expected operation of the SOFA routnines can be confirmed through this tool. - Further information on the full library of SOFA routines is available here: http://www.iausofa.org/ - - - - - Static initialiser to load the SOFA DLL so that it is available for SOFA static functions such as GetBuiltInLeapSeconds - - - - - Creates a new instance of the SOFA component - - Thrown if the SOFA support library DLL cannot be loaded - - - - - Cleans up the SOFA object - - - - - - Major number of the SOFA issue currently used by this component. - - Integer issue number - - - - - Release date of the SOFA issue currently used by this component. - - String date in format yyyy-mm-dd - - - - - Release date of the revision to the SOFA Issue that is actually being used by this component. - - String date in format yyyy-mm-dd - When a new issue is employed that doesn't yet have a revision, this mehtod will return the SofaIssueDate - - - - Convert degrees, arcminutes, arcseconds to radians. - - Sign: '-' = negative, otherwise positive - Degrees - Arcminutes - Arcseconds - Angle in radian - Status: 0 = OK, 1 = ideg outside range 0-359, 2 = iamin outside range 0-59, 3 = asec outside range 0-59.999... - - Notes: - - The result is computed even if any of the range checks fail. - Negative ideg, iamin and/or asec produce a warning status, but the absolute value is used in the conversion. - If there are multiple errors, the status value reflects only the first, the smallest taking precedence. - - - - - - Normalize angle into the range 0 <= a < 2pi. - - Angle (radians) - Angle in range 0-2pi - - - - - Transform ICRS star data, epoch J2000.0, to CIRS using the SOFA Atci13 function. - - ICRS right ascension at J2000.0 (radians, Note 1) - ICRS declination at J2000.0 (radians, Note 1) - RA proper motion (radians/year; Note 2) - Dec proper motion (radians/year) - parallax (arcsec) - radial velocity (km/s, +ve if receding) - TDB as a 2-part Julian Date (Note 3) - TDB as a 2-part Julian Date (Note 3) - CIRS geocentric RA (radians) - CIRS geocentric Dec (radians) - equation of the origins (ERA-GST, Note 5) - - Notes: - - Star data for an epoch other than J2000.0 (for example from the Hipparcos catalog, which has an epoch of J1991.25) will require a preliminary call to iauPmsafe before use. - The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. - The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.8g could be expressed in any of these ways, among others: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Date 1 - Date 2 - Method
- 2450123.8 - 0.0 - JD method
- 2451545.0 - -1421.3 - J2000 method
- 2400000.5 - 50123.2 - MJD method
- 2450123.5 - 0.2 - Date and time method
- The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally - and will deliver the optimum resolution. The MJD method and the date and time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical. - TT can be used instead of TDB without any significant impact on accuracy. -
- The available accuracy is better than 1 milliarcsecond, limited mainly by the precession-nutation model that is used, namely IAU 2000A/2006. Very close to solar system bodies, additional - errors of up to several milliarcseconds can occur because of unmodeled light deflection; however, the Sun's contribution is taken into account, to first order. The accuracy limitations of - the SOFA function iauEpv00 (used to compute Earth position and velocity) can contribute aberration errors of up to 5 microarcseconds. Light deflection at the Sun's limb is uncertain at the 0.4 mas level. - Should the transformation to (equinox based) apparent place be required rather than (CIO based) intermediate place, subtract the equation of the origins from the returned right ascension: - RA = RI - EO. (The Anp function can then be applied, as required, to keep the result in the conventional 0-2pi range.) -
-
-
- - - ICRS RA,Dec to observed place using the SOFA Atco13 function. - - ICRS RA (radians, note 1) - ICRS Dec (radians, note 2) - RA Proper motion (radians/year) - Dec Proper motion (radians/year - Parallax (arcsec) - Radial veolcity (Km/s, +ve if receding - UTC Julian date (part 1, notes 3,4) - UTC Julian date (part 2, notes 3,4) - UT1 - UTC (seonds, note 5) - Site longitude (radians, note 6) - Site Latitude (radians, note 6) - Site Height (meters, notes 6,8) - Polar motion co-ordinate (radians, note 7) - Polar motion co-ordinate (radians,note 7) - Site Presure (hPa = mB, note 8) - Site Temperature (C) - Site relative humidity (fraction in the range: 0.0 to 1.0) - Observation wavem=length (micrometres, note 9) - Observed Azimuth (radians) - Observed Zenith distance (radians) - Observed Hour Angle (radians) - Observed Declination (radians) - Observed RA (radians) - Equation of the origins (ERA-GST) - +1 = dubious year (Note 4), 0 = OK, -1 = unacceptable date - - Notes: - - Star data for an epoch other than J2000.0 (for example from the Hipparcos catalog, which has an epoch of J1991.25) will require a preliminary call to iauPmsafe before use. - The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. - utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day. - However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. - Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described. - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit. - The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention. - The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero. - If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression: -

hm = -29.3 * tsl * log ( phpa / 1013.25 );

- where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows: -

phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );

- Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
- The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz). - The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted observed coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. - Without refraction, the complementary functions iauAtco13 and iauAtoc13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees. - "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation. - It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used. -
-
-
- - - Encode date and time fields into 2-part Julian Date (or in the case of UTC a quasi-JD form that includes special provision for leap seconds). - - Time scale ID (Note 1) - Year in Gregorian calendar (Note 2) - Month in Gregorian calendar (Note 2) - Day in Gregorian calendar (Note 2) - Hour - Minute - Seconds - 2-part Julian Date (Notes 3, 4) - 2-part Julian Date (Notes 3, 4) - Status: +3 = both of next two, +2 = time is after end of day (Note 5), +1 = dubious year (Note 6), 0 = OK, -1 = bad year, -2 = bad month, -3 = bad day, -4 = bad hour, -5 = bad minute, -6 = bad second (<0) - - Notes: - - Scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4). - For calendar conventions and limitations, see iauCal2jd. - The sum of the results, d1+d2, is Julian Date, where normally d1 is the Julian Day Number and d2 is the fraction of a day. In the case of UTC, where the use of JD is problematical, special conventions apply: see the next note. - JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The SOFA internal convention is that the quasi-JD day represents UTC days whether the length is 86399, - 86400 or 86401 SI seconds. In the 1960-1972 era there were smaller jumps (in either direction) each time the linear UTC(TAI) expression was changed, and these "mini-leaps" are also included in the SOFA convention. - The warning status "time is after end of day" usually means that the sec argument is greater than 60.0. However, in a day ending in a leap second the limit changes to 61.0 (or 59.0 in the case of a negative leap second). - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - Only in the case of continuous and regular time scales (TAI, TT, TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly speaking. In the other cases (UT1 and UTC) the result must be - used with circumspection; in particular the difference between two such results cannot be interpreted as a precise time interval. - - - - - - Equation of the origins, IAU 2006 precession and IAU 2000A nutation. - - TT as a 2-part Julian Date (Note 1) - TT as a 2-part Julian Date (Note 1) - Equation of the origins in radians (Note 2) - - Notes: - - The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Date 1 - Date 2 - Method
- 2450123.7 - 0.0 - JD method
- 2451545.0 - -1421.3 - J2000 method
- 2400000.5 - 50123.2 - MJD method
- 2450123.5 - 0.2 - Date and time method
- The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally - and will deliver the optimum resolution. The MJD method and the date and time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical. -
- The equation of the origins is the distance between the true equinox and the celestial intermediate origin and, equivalently, the difference between Earth rotation angle and Greenwich - apparent sidereal time (ERA-GST). It comprises the precession (since J2000.0) in right ascension plus the equation of the equinoxes (including the small correction terms). -
-
-
- - - Transform star RA,Dec from geocentric CIRS to ICRS astrometric using the SOFA Atic13 function. - - CIRS geocentric RA (radians) - CIRS geocentric Dec (radians) - TDB as a 2-part Julian Date (Note 1) - TDB as a 2-part Julian Date (Note 1) - ICRS astrometric RA (radians) - ICRS astrometric Dec (radians) - equation of the origins (ERA-GST, Note 4) - - Notes: - - The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.8g could be expressed in any of these ways, among others: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Date 1 - Date 2 - Method
- 2450123.8 - 0.0 - JD method
- 2451545.0 - -1421.3 - J2000 method
- 2400000.5 - 50123.2 - MJD method
- 2450123.5 - 0.2 - Date and time method
- The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally - and will deliver the optimum resolution. The MJD method and the date and time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical. - TT can be used instead of TDB without any significant impact on accuracy. -
- Iterative techniques are used for the aberration and light deflection corrections so that the functions Atic13 and Atci13 are accurate inverses; - even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond. - The available accuracy is better than 1 milliarcsecond, limited mainly by the precession-nutation model that is used, namely IAU 2000A/2006. Very close to solar system bodies, additional - errors of up to several milliarcseconds can occur because of unmodeled light deflection; however, the Sun's contribution is taken into account, to first order. The accuracy limitations of - the SOFA function iauEpv00 (used to compute Earth position and velocity) can contribute aberration errors of up to 5 microarcseconds. Light deflection at the Sun's limb is uncertain at the 0.4 mas level. - Should the transformation to (equinox based) J2000.0 mean place be required rather than (CIO based) ICRS coordinates, subtract the equation of the origins from the returned right ascension: - RA = RI - EO. (The Anp function can then be applied, as required, to keep the result in the conventional 0-2pi range.) -
-
-
- - - CIRS RA,Dec to observed place using the SOFA Atio13 funciton. - - CIRS right ascension (CIO-based, radians) - CIRS declination (radians) - UTC as a 2-part quasi Julian Date (Notes 1,2) - UTC as a 2-part quasi Julian Date (Notes 1,2) - UT1-UTC (seconds, Note 3) - longitude (radians, east +ve, Note 4) - geodetic latitude (radians, Note 4) - height above ellipsoid (m, geodetic Notes 4,6) - polar motion coordinates (radians, Note 5) - polar motion coordinates (radians, Note 5) - pressure at the observer (hPa = mB, Note 6) - ambient temperature at the observer (deg C) - relative humidity at the observer (range 0-1) - wavelength (micrometers, Note 7) - observed azimuth (radians: N=0,E=90) - observed zenith distance (radians) - observed hour angle (radians) - observed declination (radians) - observed right ascension (CIO-based, radians) - Status: +1 = dubious year (Note 2), 0 = OK, -1 = unacceptable date - - Notes: - - utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day. - However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. - Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described. - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit. - The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention. - The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial - Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero. - If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression: -

hm = -29.3 * tsl * log ( phpa / 1013.25 );

- where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows: -

phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );

- Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
- The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz). - "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no - allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation - angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation. - The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted astrometric - coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. - The complementary functions iauAtio13 and iauAtoi13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. - It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used. -
-
-
- - - Observed place at a groundbased site to to ICRS astrometric RA,Dec using the SOFA Atoc13 function. - - type of coordinates - "R", "H" or "A" (Notes 1,2) - observed Az, HA or RA (radians; Az is N=0,E=90) - observed ZD or Dec (radians) - UTC as a 2-part quasi Julian Date (Notes 3,4) - UTC as a 2-part quasi Julian Date (Notes 3,4) - UT1-UTC (seconds, Note 5) - longitude (radians, east +ve, Note 6) - geodetic latitude (radians, Note 6) - height above ellipsoid (m, geodetic Notes 6,8) - polar motion coordinates (radians, Note 7) - polar motion coordinates (radians, Note 7) - pressure at the observer (hPa = mB, Note 8) - ambient temperature at the observer (deg C) - relative humidity at the observer (range 0-1) - wavelength (micrometers, Note 9) - ICRS astrometric RA (radians) - ICRS astrometric Dec (radians) - Status: +1 = dubious year (Note 4), 0 = OK, -1 = unacceptable date - - Notes: - - "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no - allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the - observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation. - Only the first character of the type argument is significant. "R" or "r" indicates that ob1 and ob2 are the observed right ascension and declination; "H" or "h" indicates that they are hour angle (west +ve) and declination; anything else ("A" or - "a" is recommended) indicates that ob1 and ob2 are azimuth (north zero, east 90 deg) and zenith distance. - utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day. - However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. - Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described. - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit. - The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention. - The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the - meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero. - If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression: -

hm = -29.3 * tsl * log ( phpa / 1013.25 );

- where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows: -

phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );

- Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
- The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz). - The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and - there are no gross local effects, the predicted astrometric coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better - than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -Without refraction, the complementary functions iauAtco13 and iauAtoc13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees. - It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used. -
-
-
- - - Observed place to CIRS using the SOFA Atoi13 function. - - type of coordinates - "R", "H" or "A" (Notes 1,2) - observed Az, HA or RA (radians; Az is N=0,E=90) - observed ZD or Dec (radians) - UTC as a 2-part quasi Julian Date (Notes 3,4) - UTC as a 2-part quasi Julian Date (Notes 3,4) - UT1-UTC (seconds, Note 5) - longitude (radians, east +ve, Note 6) - geodetic latitude (radians, Note 6) - height above the ellipsoid (meters, Notes 6,8) - polar motion coordinates (radians, Note 7) - polar motion coordinates (radians, Note 7) - pressure at the observer (hPa = mB, Note 8) - ambient temperature at the observer (deg C) - relative humidity at the observer (range 0-1) - wavelength (micrometers, Note 9) - CIRS right ascension (CIO-based, radians) - CIRS declination (radians) - Status: +1 = dubious year (Note 2), 0 = OK, -1 = unacceptable date - - Notes: - - "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no - allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the - observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial - with its polar axis aligned to the Earth's axis of rotation. - Only the first character of the type argument is significant. "R" or "r" indicates that ob1 and ob2 are the observed right ascension and declination; "H" or "h" indicates that they are - hour angle (west +ve) and declination; anything else ("A" or "a" is recommended) indicates that ob1 and ob2 are azimuth (north zero, east 90 deg) and zenith distance. - utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day. - However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. - Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described. - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This - practice is under review, and in the future UT1-UTC may grow essentially without limit. - The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive - (i.e. right-handed), in accordance with geographical convention. - The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial - Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero. - If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression: -

hm = -29.3 * tsl * log ( phpa / 1013.25 );

- where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows: -

phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );

- Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
- The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz). - The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and - there are no gross local effects, the predicted astrometric coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better - than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. - Without refraction, the complementary functions iauAtio13 and iauAtoi13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, - consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees. - It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used. -
-
-
- - - Time scale transformation: International Atomic Time, TAI, to Coordinated Universal Time, UTC. - - TAI as a 2-part Julian Date (Note 1) - TAI as a 2-part Julian Date (Note 1) - UTC as a 2-part quasi Julian Date (Notes 1-3) - UTC as a 2-part quasi Julian Date (Notes 1-3) - Status: +1 = dubious year (Note 4), 0 = OK, -1 = unacceptable date - - Notes: - - tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned utc1 - and utc2 form an analogous pair, except that a special convention is used, to deal with the problem of leap seconds - see the next note. - JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the - length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era there were smaller jumps (in either direction) each time the linear UTC(TAI) expression was changed, and these "mini-leaps are also included in the SOFA convention. - The function iauD2dtf can be used to transform the UTC quasi-JD into calendar date and clock time, including UTC leap second handling. - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - - - - - - Time scale transformation: International Atomic Time, TAI, to Terrestrial Time, TT. - - TAI as a 2-part Julian Date - TAI as a 2-part Julian Date - TT as a 2-part Julian Date - TT as a 2-part Julian Date - Status: 0 = OK - - Notes: - - tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned - tt1,tt2 follow suit. - - - - - - Time scale transformation: Terrestrial Time, TT, to International Atomic Time, TAI. - - TT as a 2-part Julian Date - TT as a 2-part Julian Date - TAI as a 2-part Julian Date - TAI as a 2-part Julian Date - Status: 0 = OK - - Note - - tt1+tt2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tt1 is the Julian Day Number and tt2 is the fraction of a day. The returned tai1,tai2 follow suit. - - - - - - Convert hours, minutes, seconds to radians. - - sign: '-' = negative, otherwise positive - Hours - Minutes - Seconds - Angle in radians - Status: 0 = OK, 1 = ihour outside range 0-23, 2 = imin outside range 0-59, 3 = sec outside range 0-59.999... - - Notes: - - The result is computed even if any of the range checks fail. - Negative ihour, imin and/or sec produce a warning status, but the absolute value is used in the conversion. - If there are multiple errors, the status value reflects only the first, the smallest taking precedence. - - - - - - Time scale transformation: Coordinated Universal Time, UTC, to International Atomic Time, TAI. - - UTC as a 2-part quasi Julian Date (Notes 1-4) - UTC as a 2-part quasi Julian Date (Notes 1-4) - TAI as a 2-part Julian Date (Note 5) - TAI as a 2-part Julian Date (Note 5) - Status: +1 = dubious year (Note 3) 0 = OK -1 = unacceptable date - - Notes: - - utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day. - JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the - length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era there were smaller jumps (in either direction) each time the linear UTC(TAI) expression was changed, and these "mini-leaps" are also included in the SOFA convention. - The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details. - The function iauDtf2d converts from calendar date and time of day into 2-part Julian Date, and in the case of UTC implements the leap-second-ambiguity convention described above. - The returned TAI1,TAI2 are such that their sum is the TAI Julian Date. - - - - - - Get path to a system folder - - SUpply null / nothing to use "current user" - returned string folder path - Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c - Indicates whether the folder should be created if it does not already exist. If this value is nonzero, - the folder is created. If this value is zero, the folder is not created - TRUE if successful; otherwise, FALSE. - - - - - Loads a library DLL - - Full path to the file to load - A pointer to the loaded DLL image - This is a wrapper for the Windows kernel32 function LoadLibraryA - - - - Unloads a library DLL - - Pointer to the loaded library returned by the LoadLibrary function. - True or false depending on whether the library was released. - - - - - Indicates whether we are running as a 32bit or 64bit application - - True if the application is 64bit, False for 32bit - - - - - Calculates the value of DeltaT over a wide range of hstoric and future Julian dates - - Julian Date of interest - DelatT value at the given Julian date - - Post 2011, calculation is effected throgh a 2nd order polynomial best fit to real DeltaT data from: http://maia.usno.navy.mil/ser7/deltat.data - together with projections of DeltaT from: http://maia.usno.navy.mil/ser7/deltat.preds - The analysis spreadsheets for DeltaT values at dates post 2011 are stored in the \NOVAS\DeltaT Predictions folder of the ASCOM source tree. - - To esnure that leap second and DeltaUT1 transitions are handled correctly and occur at 00:00:00 UTC, the supplied Julian date should be in UTC time - - -
-
diff --git a/MeadeAutostar497/bin/Debug/ASCOM.Attributes.xml b/MeadeAutostar497/bin/Debug/ASCOM.Attributes.xml deleted file mode 100644 index b0c1e74..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.Attributes.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - ASCOM.Attributes - - - - - An attribute for declaratively associating an assembly, class or property with an - ASCOM device ID (and optionally, a display name). - - - This attribute is intended for use in two main situations: - - - - Settings management and integration with Visual Studio designers - - - When this attribute is placed on the driver's Properties.Settings class, it propagates - down to each of the settings properties. When the setting is passed to the - ASCOM.SettingsProvider class at runtime, the settings provider looks for this attribute - to determine which settings hive to save the value in when it is passed to - . - - - - - Deployment - - - The values in this attribute could be used by an installer custom action to perform - ASCOM registration during setup. Historically this has been handled programmatically, - but there are trends towards a more declarative approach to deployment (for example - WiX, Windows Installer Xml). It is expected that such an installer may need to obtain - registration data by reflecting on the assemblies being installed. Placing this attribute - at the assembly level will assist in this situation. - - - - - - - - Initializes a new instance of the class. - - The ASCOM device ID (aka COM ProgID) to be associated with the class. - - - Recommended usage is: - - [DeviceId("ASCOM.SuperDuper.Telescope", DeviceName="SuperDuper Deluxe")] - - - - In the event that the DeviceName optional parameter is not set, it will return the DeviceId. - - - - - - Gets the ASCOM DeviceID, also known as the COM ProgID. - - - - - Gets or sets the display name of the device. This would be the short display name, as displayed in the ASCOM Chooser. - - The name of the device. - - - - An attribute that confers a 'friendly name' on a class and marks it as loadable by LocalServer. - The 'friendly name' is used by the ASCOM LocalServer to register the class with the ASCOM Chooser. - The 'friendly name' is what gets displayed to the user in the driver selection combo box. - This attribute is also used by the LocalServer to filter the assemblies that it will - attempt to load at runtime. LocalServer will only load classes bearing this attribute. - - - - - Initializes a new instance of the class. - - The 'friendly name' of the served class. - - - - Gets or sets the 'friendly name' of the served class, as registered with the ASCOM Chooser. - - The 'friendly name' of the served class. - - - diff --git a/MeadeAutostar497/bin/Debug/ASCOM.Controls.xml b/MeadeAutostar497/bin/Debug/ASCOM.Controls.xml deleted file mode 100644 index 7b0d3d4..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.Controls.xml +++ /dev/null @@ -1,513 +0,0 @@ - - - - ASCOM.Controls - - - - - The TrafficLight enumeration may be used in any situation where a Normal/Warning/Error status indication is needed. - - - - - Green traffic light represents a good or normal status. - - - - - Yellow traffic light represents a warning condition, which does not necessarily prevent continued - operation but which merits further investigation. - - - - - Red traffic light represents an error condition or a situation that prevents further progress. - - - - - - Wikipedia: An annunciator panel is a group of lights used as a central indicator of status of equipment or systems in an aircraft, - industrial process, building or other installation. Usually the annunciator panel includes a main warning lamp or audible signal - to draw the attention of operating personnel to the annunciator panel for abnormal events or conditions. - - - The Anunciator control provides a simple, standard method of displaying a status notification to the user within a Windows Forms application. - Anunciators are best used with the companion control, although they can be placed anywhere on a Windows Form. - The control can be used to provide simple On/Off status displays or can be configured to blink with various levels of urgency so that it can - represent alarm conditions. - - An anunciator may represent the slewing state of a telescope. It would be represented by the word "SLEW". When the telescope is stationary, - the anunciator remains inactive. When the telescope begins to slew, the anunciator is set to - to alert the user that the equipment is in motion. - - - - Each anunciator has active and inactive states. When inactive, the control displays in a subdued colour that is readable but does not draw - attention. When active, the control will display in a stronger, more visible colour and will either have a steady state or will blink in one - of a number of predefined cadence patterns. The cadence patterns are fixed and not user-definable, so that a standard 'look and feel' - is promoted accross different applications. - - - Whilst the user is at liberty to choose different colours for both and , - The default colours have been chosen to look similar to earlier applications that use similar displays and the defaults are highly - recommended for most circumstances. The control's background colour is inherited from the parent control (which should normally be - an ) and is not directly settable by the user. - - - - - - A flag that records the anunciator's last known state. - - - - - Stores the mute status for the anunciator. - - - - - Tracks whether this object has been disposed. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the foreground color of the control. There is little point in setting this value - directly as it will normally be constantly overwritten at runtime. - - - - The foreground of the control. The default is the value of the property. - - - - - - - - Gets or sets the color of the anunciator text when inactive. - - - - The foreground of the control. The default is the value of the property. - - - - - - - - Gets or sets the color of the anunciator text when active. - - The color of the anunciator text when active. - - - - Gets or sets the background color for the control. - - - - A that represents the background color of the control. The default is the value of the property. - - - - - - - - Gets or sets a value indicating whether the control can respond to user interaction. - For an anunciator, this affects how it displays. A disabled anunciator will always display in - its regardless of other settings and it will not participate in - cadence updates. - - - true if the control can respond to user interaction; otherwise, false. - The default is true. - - - - - - - - - - - Unregisters this control from the so that it will no longer receive cadence updates. - - - - - Registers this control with the so that it will receive cadence updates. - - - - - Releases all resources used by the . - - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets or sets the cadence (blink pattern) of the anunciator. - Different cadence patterns imply different levels of urgency or severity. - - The cadence pattern. - - - - Updates the anunciator's display, if it has changed since the last update. - - The new state of the control's appearance ('on' or 'off'). - - Implements the method. - The always calls this method on the GUI thread. - - - - - Handles the ParentChanged event of the Anunciator control. - Changes the control's background colour to blend in with the parent control. - - The source of the event. - The instance containing the event data. - - - - Defines the signature for the CadenceUpdateDelegate, used in making thread-safe control updates. - - - - - A panel control for grouping and arranging controls. - This control inherits most of its behaviour from the - base class, but provides some defaults that are appropriate for use with ASCOM. - - - - - Initializes a new instance of the class. - - - - - Releases all resources used by the . - - - - - Manages objects that must be toggled on and off in a regular pattern over time. This is known as a cadence. - CadenceManager is intended primarily for Windows Forms controls, but can be used for any item that implements - the interface. - - - CadenceManager behaves slightly differently if the managed item is a Windows Forms control. - - Invisible controls do not receive updates until they become visible again. - The method is marshalled to the GUI thread. - - - - - - The one and only instance of this class. - - - - - An object used for thread synchronization during object initialization. - This ensures that the singleton is thread-safe. - - - - - A list of all the anunciator controls that have been created which need updating - when the timer ticks. - - - - - Indicates the current bit position within the cadence register. - - - - - A timer that triggers updates to anunciators to simulate flashing. - - - - - Initializes a new instance of the class. - This constructor is declared private so that no instances of the class can be created - except by the class itself - this is how the singleton pattern ensures there is just a single instance. - - - - - Gets a reference to the Singleton. - If the Singleton has not yet be instantiated, this causes the object - to be created and the constructor to execute (lazy loading). - This operation uses the double-checked locking pattern to ensure thread-safety. - - - - - Adds the specified to the list of managed controls. - If this is the first control being added, then the update timer is configured and started. - - The control to be managed. - - Each control can only appear in the list once (duplicate adds will be silently ignored). - - - - - Removes a control from the update list. - If no managed controls remain in the list, then the update timer is stopped. - - - The to be removed from the update list. - - - If the control is null, or is not in the update list, no action is taken. - If the update list is empty after the control is removed, then the cadence timer is stopped. - - - - - Handles the Tick event of the tmrCadence control. - Computes the new display status for each cadenced control based on its - property and requests the control update itself with the new value. - - The source of the event. - The instance containing the event data. - - - - Delegate used to make thread-safe control updates. - - - - - Cadence patterns for blinking LEDs. - Cadences are based on 32-bit unsigned integers, such that the ordinal value - of each item represents a bit mask that can be used directly in an update routine. - - - - - Permanently off, - appropriate for indication of a non-critical inactive state. - - - - - Permanently on, - appropriate for indication of a non-critical active state. - - - - - Fast blink, - appropriate for indicating a state of hightened but non-critical alert. - Usage example: during movement of robotic equipment. - - - - - Slow blink, - appropriate for non-critical persistent conditions. - Usage example: image exposure in progress. - - - - - Very fast blink, - appropriate for drawing attention to urgent conditions that require operator intervention. - Usage example: Rain detected - - - - - Strobe is mostly off but with an occasional short blip on, - appropriate for indicating non-critical ongoing steady idle state. - - - - - Wink (mostly on with occasional short wink-off), - appropriate for indicating non-critical ongoing steady active state. - - - - - Defines the members necessary for a control to register and be managed by the - singleton. - - - - - Gets or sets the cadence (blink pattern) of the control. - Different cadence patterns imply different levels of urgency or severity. - - The cadence pattern. - - is based on a 64-bit long integer but - only 32-bits are used. This is necessary to achieve CLS compliance, because - 32-bit uints are not CLS compliant. - - - - - Updates the control's display. - always calls this method on the GUI thread so that control updates are thread-safe. - - - The new display state of the control: true for active, false for inactive. - - - - - Provides a status indicator modeled on a bi-colour red/green LED lamp. - The lamp can be red or green and (traffic light colours) and - can be steady or can flash with a choice of different cadences. - - - - - Required designer variable. - - - - - Records the current cadence state of the control. - Used to short-cut display updates when they are unnecessary. - - - - - When True, the LED indicator reflects the state of the Red, Green and Cadence settings. - When False, the LED appears inactive (steady off). - - - - - True when the instance has been disposed. - - - - - Internal control used to display the LED's text label. - - - - - Internal panel control that is used to display the LED's colour. - - - - - Gets or sets the LED's status (which controls its display colour). - - - - - Sets the text displayed alongside the indicator - - - - - Sets or reads the 'power status' of the LED - When the LED is Enabled, it reflects the current colour settings and cadence. - When disabled, the LED appears off and cadencing is disabled. - - - - - Gets or sets the LED cadence bitmap. - If the cadence has changed and is non-steady and the LED is enabled, then the cadence timer is started. - - - Implements the property. - - - - - Default constructor for a new LEDIndicator object. Performs the default processing required - by the designer. - - - - - Releases all resources used by the . - - - - - Releases the unmanaged resources and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Refreshes the LED display, taking account of the power, - colour and cadence settings. - - The new state of the control's appearance ('on' or 'off'). - - Implements the method. - The always calls this method on the GUI thread. - - - - - Renders the 'power off' appearance of the LED indicator. - - - - - Renders the 'power on' appearance of the LED indicator. The exact appearance depends on the property. - - - - - Sets the colour of the LED. - If the colour is changed, then the LED's panel control is invalidated to force a re-draw. - - The new led colour. - - - - Unregister from the . - - - - - Register with the . - - - - - The URL of the ASCOM Standards web site. - - - - diff --git a/MeadeAutostar497/bin/Debug/ASCOM.DeviceInterfaces.xml b/MeadeAutostar497/bin/Debug/ASCOM.DeviceInterfaces.xml deleted file mode 100644 index 17cb886..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.DeviceInterfaces.xml +++ /dev/null @@ -1,6948 +0,0 @@ - - - - -ASCOM.DeviceInterfaces - - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - The alignment mode of the mount. - - - - - Altitude-Azimuth alignment. - - - - - Polar (equatorial) mount other than German equatorial. - - - - - German equatorial mount. - - - - - Well-known telescope tracking rates. - - - - - Sidereal tracking rate (15.041 arcseconds per second). - - - - - Lunar tracking rate (14.685 arcseconds per second). - - - - - Solar tracking rate (15.0 arcseconds per second). - - - - - King tracking rate (15.0369 arcseconds per second). - - - - - Equatorial coordinate systems used by telescopes. - Only used with telescope interface versions 2 and 3 - - - In June 2018 the name equLocalTopocentric was deprecated in favour of equTopocentric, both names return the same value (1). - The rationale for this change is set out in the Astronomical Coordinates section. - - - - - Custom or unknown equinox and/or reference frame. - - - - - Topocentric coordinates. Coordinates of the object at the current date having allowed for annual aberration, precession and nutation. This is the most common coordinate type for amateur telescopes. - - - - - J2000 equator/equinox. Coordinates of the object at mid-day on 1st January 2000, ICRS reference frame. - - - - - J2050 equator/equinox, ICRS reference frame. - - - - - B1950 equinox, FK4 reference frame. - - - - - Please use equTopocentric instead - see Astronomical Coordinates for an explanation. - - - - - The direction in which the guide-rate motion is to be made. - - - - - North (+ declination/altitude). - - - - - South (- declination/altitude). - - - - - East (+ right ascension/azimuth). - - - - - West (- right ascension/azimuth) - - - - - The telescope axes - Only used with if the telescope interface version is 2 or 3 - - - - - Primary axis (e.g., Right Ascension or Azimuth). - - - - - Secondary axis (e.g., Declination or Altitude). - - - - - Tertiary axis (e.g. imager rotator/de-rotator). - - - - - The pointing state of the mount - - - Pier side is a GEM-specific term that has historically caused much confusion. - As of Platform 6, the PierSide property is defined to refer to the telescope pointing state. Please see for - much more information on this topic. - In order to support Dome slaving, where it is important to know on which side of the pier the mount is actually located, ASCOM has adopted the - convention that the Normal pointing state will be the state where the mount is on the East side of the pier, looking West with the counterweights below - the optical assembly. - Only used with telescope interface versions 2 and later. - - - - - Normal pointing state - Mount on the East side of pier (looking West) - - - - - Unknown or indeterminate. - - - - - Through the pole pointing state - Mount on the West side of pier (looking East) - - - - - ASCOM Dome ShutterState status values. - - - - - Dome shutter status open - - - - - Dome shutter status closed - - - - - Dome shutter status opening - - - - - Dome shutter status closing - - - - - Dome shutter status error - - - - - ASCOM Camera status values. - - - - - Camera status idle - - - - - Camera status waiting - - - - - Camera status exposing - - - - - Camera status reading - - - - - Camera status download - - - - - Camera status error - - - - - Sensor type, identifies the type of colour sensor - V2 cameras only - ] - - - - Camera produces monochrome array with no Bayer encoding - - - - - Camera produces color image directly, requiring not Bayer decoding - - - - - Camera produces RGGB encoded Bayer array images - - - - - Camera produces CMYG encoded Bayer array images - - - - - Camera produces CMYG2 encoded Bayer array images - - - - - Camera produces Kodak TRUESENSE Bayer LRGB array images - - - - - A collection of rates at which the telescope may be moved about the specified axis by the method. - This is only used if the telescope interface version is 2 or 3 - - See the description of the method for more information. - This method must return an empty collection if is not supported. - The values used in members must be non-negative; forward and backward motion is achieved by the application - applying an appropriate sign to the returned values in the command. - - - - - Return information about the rates at which the telescope may be moved about the specified axis by the method. - - The axis about which rate information is desired - Collection of Rate objects describing the supported rates of motion that can be supplied to the method for the specified axis. - Collection of Rate objects - The (symbolic) values for Index () are: - -
  • 0 Primary axis (e.g., Hour Angle or Azimuth)
  • -
  • 1 Secondary axis (e.g., Declination or Altitude)
  • -
  • 2 Tertiary axis (e.g. imager rotator/de-rotator)
  • -
    -
    -
    - - - Number of items in the returned collection - - Number of items - Integer number of items - - - - - Disposes of the object and cleans up - - - - - - Returns an enumerator for the collection - - An enumerator - - - - - Defines the ICamera Interface - - The camera state diagram is shown here: - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented, must not throw a PropertyNotImplementedException.

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented, must not throw a PropertyNotImplementedException.

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented, must not throw a MethodNotImplementedException.

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    May throw a MethodNotImplementedException if the device does not support any actions.

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented, must not throw a PropertyNotImplementedException.

    This method must return an empty arraylist if no actions are supported. - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    May throw a MethodNotImplementedException.

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    May throw a MethodNotImplementedException.

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    May throw a MethodNotImplementedException.

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Aborts the current exposure, if any, and returns the camera to Idle state. - - -

    Must be implemented, must not throw a MethodNotImplementedException.

    - NOTES: - - Must throw exception if camera is not idle and abort is unsuccessful (or not possible, e.g. during download). - Must throw exception if hardware or communications error occurs. - Must NOT throw an exception if the camera is already idle. - -
    - Thrown if the driver is not connected. - Thrown if abort is not currently possible (e.g. during download). - Thrown if a communications error occurs, or if the abort fails. -
    - - - Sets the binning factor for the X axis, also returns the current value. - - - Should default to 1 when the camera connection is established. Note: driver does not check - for compatible subframe values when this value is set; rather they are checked upon StartExposure. - - The X binning value - Must throw an exception for illegal binning values - - - - Sets the binning factor for the Y axis, also returns the current value. - - - Should default to 1 when the camera connection is established. Note: driver does not check - for compatible subframe values when this value is set; rather they are checked upon StartExposure. - - The Y binning value. - Must throw an exception for illegal binning values - - - - Returns the current camera operational state - - - Returns one of the following status information: - - Value State Meaning - 0 CameraIdle At idle state, available to start exposure - 1 CameraWaiting Exposure started but waiting (for shutter, trigger, filter wheel, etc.) - 2 CameraExposing Exposure currently in progress - 3 CameraReading CCD array is being read out (digitized) - 4 CameraDownload Downloading data to PC - 5 CameraError Camera error condition serious enough to prevent further operations (connection fail, etc.). - - - The state of the camera. - Must return an exception if the camera status is unavailable. - - - - Returns the width of the CCD camera chip in unbinned pixels. - - The size of the camera X. - Must throw exception if the value is not known - - - - Returns the height of the CCD camera chip in unbinned pixels. - - The size of the camera Y. - Must throw exception if the value is not known - - - - Returns true if the camera can abort exposures; false if not. - - - true if this instance can abort exposure; otherwise, false. - - Thrown if the driver is not connected. - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - Returns a flag showing whether this camera supports asymmetric binning - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If true, the camera can have different binning on the X and Y axes, as - determined by and . If false, the binning must be equal on the X and Y axes. -
    - - true if this instance can asymmetric bin; otherwise, false. - - Must throw exception if the value is not known (n.b. normally only - occurs if no connection established and camera must be queried) -
    - - - If true, the camera's cooler power setting can be read. - - - true if this instance can get cooler power; otherwise, false. - - Thrown if the driver is not connected. - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - Returns a flag indicating whether this camera supports pulse guiding - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - Returns true if the camera can send autoguider pulses to the telescope mount; false if not. - Note: this does not provide any indication of whether the autoguider cable is actually connected. -
    - - true if this instance can pulse guide; otherwise, false. - - Thrown if the driver is not connected. -
    - - - Returns a flag indicatig whether this camera supports setting the CCD temperature - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If true, the camera's cooler setpoint can be adjusted. If false, the camera - either uses open-loop cooling or does not have the ability to adjust temperature - from software, and setting the property has no effect. -
    - - true if this instance can set CCD temperature; otherwise, false. - - Thrown if the driver is not connected. -
    - - - Returns a flag indicating whether this camera can stop an exposure that is in progress - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - Some cameras support , which allows the exposure to be terminated - before the exposure timer completes, but will still read out the image. Returns - true if is available, false if not. -
    - - true if the camera can stop the exposure; otherwise, false. - - an error condition such as connection failure is present -
    - - - Returns the current CCD temperature in degrees Celsius. - - The CCD temperature. - Must throw exception if data unavailable. - Must throw exception if not supported. - - - - Turns on and off the camera cooler, and returns the current on/off state. - - - Warning: turning the cooler off when the cooler is operating at high delta-T - (typically >20C below ambient) may result in thermal shock. Repeated thermal - shock may lead to damage to the sensor or cooler stack. Please consult the - documentation supplied with the camera for further information. - - true if the cooler is on; otherwise, false. - not supported - an error condition such as connection failure is present - - - - Returns the present cooler power level, in percent. - - - Returns zero if is false. - - The cooler power. - not supported - an error condition such as connection failure is present - - - - Returns the gain of the camera in photoelectrons per A/D unit. - - - Some cameras have multiple gain modes; these should be selected via the and thus are - static during a session. - - The electrons per ADU. - Must throw exception if data unavailable. - - - - Reports the full well capacity of the camera in electrons, at the current camera settings (binning, SetupDialog settings, etc.) - - The full well capacity. - Must throw exception if data unavailable. - - - - Returns a flag indicating whether this camera has a mechanical shutter - - - If true, the camera has a mechanical shutter. If false, the camera does not have - a shutter. If there is no shutter, the StartExposure command will ignore the - Light parameter. - - - true if this instance has shutter; otherwise, false. - - Thrown if the driver is not connected. - - - - Returns the current heat sink temperature (called "ambient temperature" by some manufacturers) in degrees Celsius. - - - Only valid if is true. - - The heat sink temperature. - Must throw exception if data unavailable. - - - - Returns a safearray of int of size * containing the pixel values from the last exposure. - - - The application must inspect the Safearray parameters to determine the dimensions. - Note: if or is changed after a call to StartExposure it will - have no effect on the size of this array. This is the preferred method for programs (not scripts) to download - iamges since it requires much less memory. - For color or multispectral cameras, will produce an array of * * - NumPlanes. If the application cannot handle multispectral images, it should use just the first plane. - - The image array. - Must throw exception if data unavailable. - - - - Returns a safearray of Variant of size * containing the pixel values from the last exposure. - - - The application must inspect the Safearray parameters to - determine the dimensions. Note: if or is changed after a call to - StartExposure it will have no effect on the size of this array. This property - should only be used from scripts due to the extremely high memory utilization on - large image arrays (26 bytes per pixel). Pixels values should be in Short, int, - or Double format. - For color or multispectral cameras, will produce an array of * * - NumPlanes. If the application cannot handle multispectral images, it should use - just the first plane. - - The image array variant. - Must throw exception if data unavailable. - - - - Returns a flag indicating whether the image is ready to be downloaded fom the camera - - - If true, there is an image from the camera available. If false, no image - is available and attempts to use the method will produce an exception - . - true if [image ready]; otherwise, false. - hardware or communications connection error has occurred. - - - - Returns a flag indicating whether the camera is currrently in a PulseGuide operation. - - - If true, pulse guiding is in progress. Required if the PulseGuide method - (which is non-blocking) is implemented. See the PulseGuide method. - - - true if this instance is pulse guiding; otherwise, false. - - hardware or communications connection error has occurred. - - - - Reports the actual exposure duration in seconds (i.e. shutter open time). - - - This may differ from the exposure time requested due to shutter latency, camera timing precision, etc. - - The last duration of the exposure. - Must throw an exception if not supported - If called before any exposure has been taken - - - - Reports the actual exposure start in the FITS-standard CCYY-MM-DDThh:mm:ss[.sss...] format. - The start time must be UTC. - - The last exposure start time in UTC. - Must throw an exception if not supported - If called before any exposure has been taken - - - - Reports the maximum ADU value the camera can produce. - - The maximum ADU. - Must throw exception if data unavailable. - - - - Returns the maximum allowed binning for the X camera axis - - - If = false, returns the maximum allowed binning factor. If - = true, returns the maximum allowed binning factor for the X axis. - - The max bin X. - Must throw exception if data unavailable. - - - - Returns the maximum allowed binning for the Y camera axis - - - If = false, equals . If = true, - returns the maximum allowed binning factor for the Y axis. - - The max bin Y. - Must throw exception if data unavailable. - - - - Sets the subframe width. Also returns the current value. - - - If binning is active, value is in binned pixels. No error check is performed when the value is set. - Should default to . - - The num X. - - - - Sets the subframe height. Also returns the current value. - - - If binning is active, - value is in binned pixels. No error check is performed when the value is set. - Should default to . - - The num Y. - - - - Returns the width of the CCD chip pixels in microns. - - The pixel size X. - Must throw exception if data unavailable. - - - - Returns the height of the CCD chip pixels in microns. - - The pixel size Y. - Must throw exception if data unavailable. - - - - Activates the Camera's mount control sytem to instruct the mount to move in a particular direction for a given period of time - - -

    May throw a not implemented exception if this camera does not support PulseGuide

    - This method returns only after the move has completed. - - The (symbolic) values for GuideDirections are: - - Constant Value Description - guideNorth 0 North (+ declination/elevation) - guideSouth 1 South (- declination/elevation) - guideEast 2 East (+ right ascension/azimuth) - guideWest 3 West (+ right ascension/azimuth) - - - Note: directions are nominal and may depend on exact mount wiring. - must be opposite , and - must be opposite . -
    - The direction of movement. - The duration of movement in milli-seconds. - PulseGuide command is unsupported - PulseGuide command is unsuccessful - Thrown if the driver is not connected. -
    - - - Sets the camera cooler setpoint in degrees Celsius, and returns the current setpoint. - - - The driver should throw an if an attempt is made to set - outside the valid range for the camera. As an assitance to driver authors, to protect equipment and prevent harm to individuals, - Conform will report an issue if it is possible to set below -280C or above +100C. - Note: Camera hardware and/or driver should perform cooler ramping, to prevent - thermal shock and potential damage to the CCD array or cooler stack. - - The set CCD temperature. - Must throw exception if command not successful. - Must throw an InvalidValueException if an attempt is made to set a value is outside the - camera's valid termperature setpoint range. - Must throw exception if is false. - Thrown if the driver is not connected. - - - - Starts an exposure. Use to check when the exposure is complete. - - -

    Must be implemented, must not throw a MethodNotImplementedException.

    - A dark frame or bias exposure may be shorter than the V2 value and for a bias frame can be zero. - Check the value of Light and allow exposures down to 0 seconds - if Light is false. If the hardware will not - support an exposure duration of zero then, for dark and bias frames, set it to the minimum that is possible. - Some applications will set an exposure time of zero for bias frames so it's important that the driver allows this. -
    - Duration of exposure in seconds, can be zero if Light is false - true for light frame, false for dark frame (ignored if no shutter) - , , , - , , , or Duration parameters are invalid. - is false and != - the exposure cannot be started for any reason, such as a hardware or communications error -
    - - - Sets the subframe start position for the X axis (0 based) and returns the current value. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If binning is active, value is in binned pixels. -
    - The start X. - Thrown if the driver is not connected. -
    - - - Sets the subframe start position for the Y axis (0 based). Also returns the current value. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If binning is active, value is in binned pixels. -
    - The start Y. - Thrown if the driver is not connected. -
    - - - Stops the current exposure, if any. - - -

    May throw a not implemented exception

    - If an exposure is in progress, the readout process is initiated. Ignored if readout is already in process. -
    - Must throw an exception if CanStopExposure is false - Must throw an exception if the camera or connection has an error condition - Must throw an exception if for any reason no image readout will be available. -
    - - - Returns the X offset of the Bayer matrix, as defined in . - - The Bayer colour matrix X offset, as defined in . - Monochrome cameras must throw this exception, colour cameras must not. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. -

    Must be implemented by colour cameras, monochrome cameras must throw a PropertyNotImplementedException

    - Since monochrome cameras don't have a bayer colour matrix by definition, such cameras shold throw a . - Colour cameras should always return a value and must not throw a - The value returned must be in the range 0 to M-1 where M is the width of the Bayer matrix. The offset is relative to the 0,0 pixel in - the sensor array, and does not change to reflect subframe settings. - It is recommended that this function be called only after a connection is established with - the camera hardware, to ensure that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Returns the Y offset of the Bayer matrix, as defined in . - - The Bayer colour matrix Y offset, as defined in . - Monochrome cameras must throw this exception, colour cameras must not. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. -

    Must be implemented by colour cameras, monochrome cameras must throw a PropertyNotImplementedException

    - Since monochrome cameras don't have a bayer colour matrix by definition, such cameras shold throw a . - Colour cameras should always return a value and must not throw a - The value returned must be in the range 0 to M-1 where M is the width of the Bayer matrix. The offset is relative to the 0,0 pixel in - the sensor array, and does not change to reflect subframe settings. - It is recommended that this function be called only after a connection is established with - the camera hardware, to ensure that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Camera has a fast readout mode - - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - true when the camera supports a fast readout mode -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - It is recommended that this function be called only after a connection is established with the camera hardware, to - ensure that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Returns the maximum exposure time supported by StartExposure. - - The maximum exposure time, in seconds, that the camera supports - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - It is recommended that this function be called only after - a connection is established with the camera hardware, to ensure that the driver is aware of the capabilities of the - specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Minimium exposure time - - The minimum exposure time, in seconds, that the camera supports through StartExposure - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - This must be a non-zero number representing the shortest possible exposure time supported by the camera model. - Please note that for bias frame acquisition an even shorter exposure may be possible; please see StartExposure - for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Exposure resolution - - The smallest increment in exposure time supported by StartExposure. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - This can be used, for example, to specify the resolution of a user interface "spin control" used to dial in the exposure time. - Please note that the Duration provided to StartExposure does not have to be an exact multiple of this number; - the driver should choose the closest available value. Also in some cases the resolution may not be constant over the full range - of exposure times; in this case the smallest increment would be appropriate. A value of 0.0 shall indicate that there is no minimum resulution - except that imposed by the resolution of the double value itself. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Gets or sets Fast Readout Mode - - true for fast readout mode, false for normal mode - Thrown if is false. - Thrown if the driver is not connected and a connection is required to obtain this information. -

    Must throw a PropertyNotImplementedException if CanFastReadout is false or - return a boolean value if CanFastReadout is true.

    - Must thrown an exception if no connection is established to the camera. Must throw - a if returns false. - Many cameras have a "fast mode" intended for use in focusing. When set to true, the camera will operate in Fast mode; when - set false, the camera will operate normally. This property, if implemented, should default to False. - Please note that this function may in some cases interact with ; for example, there may be modes where - the Fast/Normal switch is meaningless. In this case, it may be preferable to use the function to control - fast/normal switching. - If this feature is not available, then must return false. - This is only available for the Camera Interface Version 2 -
    -
    - - - Index into the array for the selected camera gain - - Short integer index for the current camera gain in the string array. - Index into the Gains array for the selected camera gain - Must throw an exception if gain is not supported - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. -

    May throw a PropertyNotImplementedException if Gain is not supported by the camera.

    - can be used to adjust the gain setting of the camera, if supported. There are two typical usage scenarios: -
      -
    • DSLR Cameras - will return a 0-based array of strings, which correspond to different gain settings such as - "ISO 800". must be set to an integer in this range. and must thrown an exception if - this mode is used.
    • -
    • Adjustable gain CCD cameras - and return integers, which specify the valid range for and .
    • -
    -The driver must default to a valid value. -Please note that may in some cases affect the gain of the camera; if so the driver must be written such - that the two properties do not conflict if both are used. - This is only available for the Camera Interface Version 2 -
    -
    - - - Maximum value of - - Short integer representing the maximum gain value supported by the camera. - The maximum gain value that this camera supports - Must throw an exception if GainMax is not supported - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    May throw a PropertyNotImplementedException if GainMax is not supported by the camera..

    - When specifying the gain setting with an integer value, is used in conjunction with to - specify the range of valid settings. - shall be greater than . If either is available, then both must be available. - Please see for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Minimum value of - - The minimum gain value that this camera supports - Must throw an exception if GainMin is not supported - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    May throw a PropertyNotImplementedException if GainMin is not supported by the camera.

    - When specifying the gain setting with an integer value, is used in conjunction with to - specify the range of valid settings. - shall be greater than . If either is available, then both must be available. - Please see for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Gains supported by the camera - - An ArrayList of gain names - Must throw an exception if Gains is not supported - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    May throw a PropertyNotImplementedException if Gains is not supported by the camera.

    - provides a 0-based array of available gain settings. This is often used to specify ISO settings for DSLR cameras. - Typically the application software will display the available gain settings in a drop list. The application will then supply - the selected index to the driver via the property. - The setting may alternatively be specified using integer values; if this mode is used then is invalid - and must throw an exception. Please see and for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, - to ensure that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Percent conpleted, Interface Version 2 only - - A value between 0 and 100% indicating the completeness of this operation - Must throw an exception if PercentCompleted is not supported - Thrown when it is inappropriate to call -

    May throw a PropertyNotImplementedException if PercentCompleted is not supported by the camera.

    - If valid, returns an integer between 0 and 100, where 0 indicates 0% progress (function just started) and - 100 indicates 100% progress (i.e. completion). - At the discretion of the driver author, may optionally be valid - when is in any or all of the following - states: , - , - or . In all other states an exception shall be thrown. - Typically the application user interface will show a progress bar based on the value. - Please note that client applications are not required to use this value, and in some cases may display status - information based on other information, such as time elapsed. - This is only available for the Camera Interface Version 2 -
    -
    - - - Readout mode, Interface Version 2 only - - - Short integer index into the ReadoutModes array of string readout mode names indicating - the camera's current readout mode. - Must throw an exception if set to an illegal or unavailable mode. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    Must be implemented if CanFastReadout is false, must throw a PropertyNotImplementedException if - CanFastReadout is true.

    - is an index into the array , and selects the desired readout mode for the camera. - Defaults to 0 if not set. Throws an exception if the selected mode is not available. - It is strongly recommended, but not required, that driver authors make the 0-index mode suitable for standard imaging operations, - since it is the default. - Please see for additional information. - This is only available for the Camera Interface Version 2 -
    -
    - - - List of available readout modes, Interface Version 2 only - - An ArrayList of readout mode names - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    Must be implemented if CanFastReadout is false, must throw a PropertyNotImplementedException if - CanFastReadout is true.

    - This property provides an array of strings, each of which describes an available readout mode of the camera. - At least one string must be present in the list. The user interface of a control application will typically present to the - user a drop-list of modes. The choice of available modes made available is entirely at the discretion of the driver author. - Please note that if the camera has many different modes of operation, then the most commonly adjusted settings should be in - ; additional settings may be provided using . - To select a mode, the application will set to the index of the desired mode. The index is zero-based. - This property should only be read while a connection to the camera is actually established. Drivers often support - multiple cameras with different capabilities, which are not known until the connection is made. If the available readout modes - are not known because no connection has been established, this property shall throw an exception. - Please note that the default setting is 0. It is strongly recommended, but not required, that - driver authors use the 0-index mode for standard imaging operations, since it is the default. - This feature may be used in parallel with ; however, care should be taken to ensure that the two - features work together consistently. If there are modes that are inconsistent having a separate fast/normal switch, then it - may be better to simply list Fast as one of the . - It is recommended that this function be called only after a connection is established with - the camera hardware, to ensure that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Sensor name, Interface Version 2 only - ## Mandatory must return an empty string if the sensor is unknown - - The name of the sensor used within the camera. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    May throw a PropertyNotImplementedException if the sensor's name is not known.

    - Returns the name (datasheet part number) of the sensor, e.g. ICX285AL. The format is to be exactly as shown on - manufacturer data sheet, subject to the following rules: - - All letters shall be uppercase. - Spaces shall not be included. - Any extra suffixes that define region codes, package types, temperature range, coatings, grading, color/monochrome, - etc. shall not be included. - For color sensors, if a suffix differentiates different Bayer matrix encodings, it shall be included. - The call shall return an empty string if the sensor name is not known. - - Examples: - - ICX285AL-F shall be reported as ICX285 - KAF-8300-AXC-CD-AA shall be reported as KAF-8300 - - Note: - The most common usage of this property is to select approximate color balance parameters to be applied to - the Bayer matrix of one-shot color sensors. Application authors should assume that an appropriate IR cutoff filter is - in place for color sensors. - It is recommended that this function be called only after a connection is established with - the camera hardware, to ensure that the driver is aware of the capabilities of the specific camera model. - This is only available for the Camera Interface Version 2 -
    -
    - - - Type of colour information returned by the the camera sensor, Interface Version 2 only - - - The enum value of the camera sensor - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) -

    May throw a PropertyNotImplementedException if the sensor type is not known.

    - This is only available for the Camera Interface Version 2 - returns a value indicating whether the sensor is monochrome, or what Bayer matrix it encodes. If this value - cannot be determined by interrogating the camera, the appropriate value may be set through the user setup dialogue or the property may - return a . Please note that for some cameras, changing , - or may change the apparent type of the sensor and so you should change the value returned here - to match if this is the case for your camera. - The following values are defined: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Value - Enumeration - Meaning
    - 0 - Monochrome - Camera produces monochrome array with no Bayer encoding
    - 1 - Colour - Camera produces color image directly, requiring not Bayer decoding
    - 2 - RGGB - Camera produces RGGB encoded Bayer array images
    - 3 - CMYG - Camera produces CMYG encoded Bayer array images
    - 4 - CMYG2 - Camera produces CMYG2 encoded Bayer array images
    - 5 - LRGB - Camera produces Kodak TRUESENSE Bayer LRGB array images
    -
    - Please note that additional values may be defined in future updates of the standard, as new Bayer matrices may be created - by sensor manufacturers in the future. If this occurs, then a new enumeration value shall be defined. The pre-existing enumeration - values shall not change. - can possibly change between exposures, for example if Camera.ReadoutMode is changed, and should always be checked after each exposure. - In the following definitions, R = red, G = green, B = blue, C = cyan, M = magenta, Y = yellow. The Bayer matrix is - defined with X increasing from left to right, and Y increasing from top to bottom. The pattern repeats every N x M pixels for the - entire pixel array, where N is the height of the Bayer matrix, and M is the width. - RGGB indicates the following matrix: - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 - R - G
    - Y = 1 - G - B
    -
    - - CMYG indicates the following matrix: - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 - Y - C
    - Y = 1 - G - M
    -
    - CMYG2 indicates the following matrix: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 - C - Y
    - Y = 1 - M - G
    - Y = 2 - C - Y
    - Y = 3 - G - M
    -
    - - LRGB indicates the following matrix (Kodak TRUESENSE): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1 - X = 2 - X = 3
    - Y = 0 - L - R - L - G
    - Y = 1 - R - L - G - L
    - Y = 2 - L - G - L - B
    - Y = 3 - G - L - B - L
    -
    - - The alignment of the array may be modified by and . - The offset is measured from the 0,0 position in the sensor array to the upper left corner of the Bayer matrix table. - Please note that the Bayer offset values are not affected by subframe settings. - For example, if a CMYG2 sensor has a Bayer matrix offset as shown below, is 0 and is 1: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 - G - M
    - Y = 1 - C - Y
    - Y = 2 - M - G
    - Y = 3 - C - Y
    -
    - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure that - the driver is aware of the capabilities of the specific camera model. -
    -
    - - - Defines the IDome Interface - - - This interface is used to handle a dome, with or without a controllable shutter, and also a roll off roof. - The dome implentation should be self explanatory. - A roll off roof is implemented using the shutter control as the roof. The properties and methods shoud be implented as follows: - - OpenShutter and CloseShutter open and close the roof. - CanFindHome, CanPark,CanSetAltitude, CanSetAzimuth, CanSetPark, CanSlave and CanSyncAzimuth all return false. - CanSetShutter returns true. - ShutterStatus is implemented. - Slewing always returns false. - AbortSlew should stop the shutter moving. - FindHome, Park, SetPark, SlewToAltitude, SlewToAzimuth and SyncToAzimuth all throw the - Altitude and Azimuth throw the . - - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Immediately cancel current dome operation. - - -

    Must be implemented, must not throw a MethodNotImplementedException.

    - Calling this method will immediately disable hardware slewing ( will become False). Raises an error if a communications failure occurs, or if the command is known to have failed. -
    -
    - - - The dome altitude (degrees, horizon zero and increasing positive to 90 zenith). - - If the property is not implemented - - Raises an error only if no altitude control. If actual dome altitude can not be read, then reports back the last slew position. - - - - - Indicates whether the dome is in the home position. Raises an error if not supported. - - This is normally used following a operation. The value is reset with any azimuth slew operation that moves the dome away from the home position. - - - may also become true durng normal slew operations, if the dome passes through the home position and the dome controller hardware is capable of detecting that; - or at the end of a slew operation if the dome comes to rest at the home position. - - - If the property is not implemented - - The home position is normally defined by a hardware sensor positioned around the dome circumference and represents a fixed, known azimuth reference. - For some devices, the home position may represent a small range of azimuth values, rather than a discrete value, since dome inertia, the resolution of the home position sensor and/or the azimuth encoder may be - insufficient to return the exact same azimuth value on each occasion. Some dome controllers, on the other hand, will always force the azimuth reading to a fixed value whenever the home position sensor is active. - Because of these potential differences in behaviour, applications should not rely on the reported azimuth position being identical each time is set true. - - [ASCOM-135] TPL - Updated documentation - - - - True if the dome is in the programmed park position. - - If the property is not implemented - - Set only following a operation and reset with any slew operation. Raises an error if not supported. - - - - - The dome azimuth (degrees, North zero and increasing clockwise, i.e., 90 East, 180 South, 270 West) - - If the property is not implemented - Raises an error only if no azimuth control. If actual dome azimuth can not be read, then reports back last slew position - - - - True if driver can do a search for home position. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - True if driver is capable of setting dome altitude. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - True if driver is capable of setting dome altitude. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - True if driver is capable of setting dome azimuth. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - True if driver can set the dome park position. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - True if driver is capable of automatically operating shutter. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - True if the dome hardware supports slaving to a telescope. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - See the notes for the property. -
    -
    - - - True if driver is capable of synchronizing the dome azimuth position using the method. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - Close shutter or otherwise shield telescope from the sky. - - If the method is not implemented - - - - Start operation to search for the dome home position. - - If the method is not implemented - - After Home position is established initializes to the default value and sets the flag. - Exception if not supported or communications failure. Raises an error if is True. - - - - - Open shutter or otherwise expose telescope to the sky. - - If the method is not implemented - - Raises an error if not supported or if a communications failure occurs. - - - - - Rotate dome in azimuth to park position. - - If the method is not implemented - - After assuming programmed park position, sets flag. Raises an error if is True, or if not supported, or if a communications failure has occurred. - - - - - Set the current azimuth, altitude position of dome to be the park position. - - If the method is not implemented - - Raises an error if not supported or if a communications failure occurs. - - - - - Status of the dome shutter or roll-off roof. - - If the property is not implemented - - Raises an error only if no shutter control. If actual shutter status can not be read, then reports back the last shutter state. - - - - - True if the dome is slaved to the telescope in its hardware, else False. - - -

    Slaved Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    Slaved Write can throw a PropertyNotImplementedException.

    - Set this property to True to enable dome-telescope hardware slaving, if supported (see ). Raises an exception on any attempt to set - this property if hardware slaving is not supported). Always returns False if hardware slaving is not supported. -
    -
    - - - True if any part of the dome is currently moving, False if all dome components are steady. - - -

    Slewing must be implemented and must not throw a PropertyNotImplementedException.

    - Raises an error if is True, if not supported, if a communications failure occurs, or if the dome can not reach indicated azimuth. -
    -
    - - - Slew the dome to the given altitude position. - - If the method is not implemented - If the supplied altitude is outside the range 0..90 degrees. - - Raises an error if is True, if not supported, if a communications failure occurs, or if the dome can not reach indicated altitude. - - Target dome altitude (degrees, horizon zero and increasing positive to 90 zenith) - - - - Slew the dome to the given azimuth position. - - If the method is not implemented - If the supplied azimuth is outside the range 0..360 degrees. - - Raises an error if is True, if not supported, if a communications failure occurs, or if the dome can not reach indicated azimuth. - - Target azimuth (degrees, North zero and increasing clockwise. i.e., 90 East, 180 South, 270 West) - - - - Synchronize the current position of the dome to the given azimuth. - - If the method is not implemented - If the supplied azimuth is outside the range 0..360 degrees. - - Raises an error if not supported or if a communications failure occurs. - - Target azimuth (degrees, North zero and increasing clockwise. i.e., 90 East, 180 South, 270 West) - - - - Defines the IFilterWheel Interface - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Focus offset of each filter in the wheel - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - For each valid slot number (from 0 to N-1), reports the focus offset for the given filter position. These values are focuser and filter dependent, and would usually be set up by the user via - the SetupDialog. The number of slots N can be determined from the length of the array. If focuser offsets are not available, then it should report back 0 for all array values. -
    -
    - - - Name of each filter in the wheel - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - For each valid slot number (from 0 to N-1), reports the name given to the filter position. These names would usually be set up by the user via the - SetupDialog. The number of slots N can be determined from the length of the array. If filter names are not available, then it should report back "Filter 1", "Filter 2", etc. -
    -
    - - - Sets or returns the current filter wheel position - - Must throw an InvalidValueException if an invalid position is set - Must throw an exception if the Filter Wheel is not connected - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - Write a position number between 0 and N-1, where N is the number of filter slots (see ). Starts filter wheel rotation immediately when written. Reading - the property gives current slot number (if wheel stationary) or -1 if wheel is moving. - Returning a position of -1 is mandatory while the filter wheel is in motion; valid slot numbers must not be reported back while the filter wheel is rotating past filter positions. - Note - Some filter wheels are built into the camera (one driver, two interfaces). Some cameras may not actually rotate the wheel until the exposure is triggered. In this case, the written value is available - immediately as the read value, and -1 is never produced. -
    -
    - - - Provides universal access to Focuser drivers - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. - The Connected property is not implemented in Version 1 drivers; these use the - property and will raise a Not Implemented exception for this property. Version 2 drivers must implement both Connected and Link. - Applications should check that InterfaceVersion returns 2 or more before using Connected. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - True if the focuser is capable of absolute position; that is, being commanded to a specific step location. - - If the driver must be connected in order to determine the property value. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Immediately stop any focuser motion due to a previous method call. - - Focuser does not support this method. - If the driver is not connected. - Must throw an exception if the call was not successful - -

    Can throw a not implemented exception

    Some focusers may not support this function, in which case an exception will be raised. - Recommendation: Host software should call this method upon initialization and, - if it fails, disable the Halt button in the user interface. -
    -
    - - - True if the focuser is currently moving to a new position. False if the focuser is stationary. - - If the driver is not connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - State of the connection to the focuser. - - - Must throw an exception if the call was not successful -

    Must be implemented

    Set True to start the connection to the focuser; set False to terminate the connection. - The current connection status can also be read back through this property. - An exception will be raised if the link fails to change state for any reason. - Note - The FocuserV1 interface was the only interface to name its "Connect" method "Link" all others named - their "Connect" method as "Connected". All interfaces including Focuser now have a method and this is - the recommended method to use to "Connect" to Focusers exposing the V2 and later interfaces. - Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. -
    -
    - - - Maximum increment size allowed by the focuser; - i.e. the maximum number of steps allowed in one move operation. - - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Must be implemented

    - For most focusers this is the same as the property. This is normally used to limit the Increment display in the host software. -
    -
    - - - Maximum step position permitted. - - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Must be implemented

    - The focuser can step between 0 and . If an attempt is made to move the focuser beyond these limits, it will automatically stop at the limit. -
    -
    - - - Moves the focuser by the specified amount or to the specified position depending on the value of the property. - - Step distance or absolute position, depending on the value of the property. - If a Move operation is requested when is True - If the device is not connected. - Must throw an exception if the call was not successful -

    Must be implemented

    - If the property is True, then this is an absolute positioning focuser. The Move command tells the focuser to move to an exact step position, and the Position parameter - of the Move method is an integer between 0 and . - If the property is False, then this is a relative positioning focuser. The Move command tells the focuser to move in a relative direction, and the Position parameter - of the Move method (in this case, step distance) is an integer between minus and plus . -
    -
    - - - Current focuser position, in steps. - - If the property is not available for this device. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Can throw a not implemented exception

    Valid only for absolute positioning focusers (see the property). - A PropertyNotImplementedException exception must be thrown if this device is a relative positioning focuser rather than an absolute position focuser. -
    -
    - - - Step size (microns) for the focuser. - - If the focuser does not intrinsically know what the step size is. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    Must throw an exception if the focuser does not intrinsically know what the step size is.
    -
    - - - The state of temperature compensation mode (if available), else always False. - - If is False and an attempt is made to set to true. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    TempComp Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    TempComp Write can throw a PropertyNotImplementedException.

    - If the property is True, then setting to True puts the focuser into temperature tracking mode. While in temperature tracking mode, - Move commands will be rejected by the focuser. Set to False to turn off temperature tracking. - If temperature compensation is not available, this property must always return False. - A exception must be thrown if is False and an attempt is made to set to true. -
    -
    - - - True if focuser has temperature compensation available. - - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Must be implemented

    - Will be True only if the focuser's temperature compensation can be turned on and off via the property. -
    -
    - - - Current ambient temperature as measured by the focuser. - - If the property is not available for this device. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    - Raises an exception if ambient temperature is not available. Commonly available on focusers with a built-in temperature compensation mode. -
    -
    - - - Provides universal access to Focuser drivers - Updated to IFocuserV3 - see remarks below - - - SPECIFICATION REVISION - Platform 6.4 - The method signatures in the revised interface specification are identical to the preceeding IFocuserV2, however, the IFocuserV3.Move command must - no longer throw an InvalidOperationException exception if a Move is attempted when temperature compensation is enabled. - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. - The Connected property is not implemented in Version 1 drivers; these use the - property and will raise a Not Implemented exception for this property. Version 2 drivers must implement both Connected and Link. - Applications should check that InterfaceVersion returns 2 or more before using Connected. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 3 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - True if the focuser is capable of absolute position; that is, being commanded to a specific step location. - - If the driver must be connected in order to determine the property value. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Immediately stop any focuser motion due to a previous method call. - - Focuser does not support this method. - If the driver is not connected. - Must throw an exception if the call was not successful - -

    Can throw a not implemented exception

    Some focusers may not support this function, in which case an exception will be raised. - Recommendation: Host software should call this method upon initialization and, - if it fails, disable the Halt button in the user interface. -
    -
    - - - True if the focuser is currently moving to a new position. False if the focuser is stationary. - - If the driver is not connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - State of the connection to the focuser. - - - Must throw an exception if the call was not successful -

    Must be implemented

    Set True to start the connection to the focuser; set False to terminate the connection. - The current connection status can also be read back through this property. - An exception will be raised if the link fails to change state for any reason. - Note - The FocuserV1 interface was the only interface to name its "Connect" method "Link" all others named - their "Connect" method as "Connected". All interfaces including Focuser now have a method and this is - the recommended method to use to "Connect" to Focusers exposing the V2 and later interfaces. - Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. -
    -
    - - - Maximum increment size allowed by the focuser; - i.e. the maximum number of steps allowed in one move operation. - - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Must be implemented

    - For most focusers this is the same as the property. This is normally used to limit the Increment display in the host software. -
    -
    - - - Maximum step position permitted. - - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Must be implemented

    - The focuser can step between 0 and . If an attempt is made to move the focuser beyond these limits, it will automatically stop at the limit. -
    -
    - - - Moves the focuser by the specified amount or to the specified position depending on the value of the property. - - Step distance or absolute position, depending on the value of the property. - If the device is not connected. - Must throw an exception if the call was not successful -

    Must be implemented

    - If the property is True, then this is an absolute positioning focuser. The Move command tells the focuser to move to an exact step position, and the Position parameter - of the Move method is an integer between 0 and . - If the property is False, then this is a relative positioning focuser. The Move command tells the focuser to move in a relative direction, and the Position parameter - of the Move method (in this case, step distance) is an integer between minus and plus . - BEHAVIOURAL CHANGE - Platform 6.4 - Prior to Platform 6.4, the interface specification mandated that drivers must throw an if a move was attempted when was True, even if the focuser - was able to execute the move safely without disrupting temperature compensation. - Following discussion on ASCOM-Talk in January 2018, the Focuser interface specification has been revised to IFocuserV3, removing the requrement to throw the InvalidOperationException exception. IFocuserV3 compliant drivers - are expected to execute Move requests when temperature compensation is active and to hide any specific actions required by the hardware from the client. For example this could be achieved by disabling temperature compensation, moving the focuser and re-enabling - temperature compensation or simply by moving the focuser with compensation enabled if the hardware supports this. - Conform will continue to pass IFocuserV2 drivers that throw InvalidOperationException exceptions. However, Conform will now fail IFocuserV3 drivers that throw InvalidOperationException exceptions, in line with this revised specification. -
    -
    - - - Current focuser position, in steps. - - If the property is not available for this device. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Can throw a not implemented exception

    Valid only for absolute positioning focusers (see the property). - A PropertyNotImplementedException exception must be thrown if this device is a relative positioning focuser rather than an absolute position focuser. -
    -
    - - - Step size (microns) for the focuser. - - If the focuser does not intrinsically know what the step size is. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    Must throw an exception if the focuser does not intrinsically know what the step size is.
    -
    - - - The state of temperature compensation mode (if available), else always False. - - If is False and an attempt is made to set to true. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    TempComp Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    TempComp Write can throw a PropertyNotImplementedException.

    - If the property is True, then setting to True puts the focuser into temperature tracking mode; setting it to False will turn off temperature tracking. - If temperature compensation is not available, this property must always return False. - A exception must be thrown if is False and an attempt is made to set to true. - BEHAVIOURAL CHANGE - Platform 6.4 - Prior to Platform 6.4, the interface specification mandated that drivers must throw an if a move was attempted when was True, even if the focuser - was able to execute the move safely without disrupting temperature compensation. - Following discussion on ASCOM-Talk in January 2018, the Focuser interface specification has been revised to IFocuserV3, removing the requrement to throw the InvalidOperationException exception. IFocuserV3 compliant drivers - are expected to execute Move requests when temperature compensation is active and to hide any specific actions required by the hardware from the client. For example this could be achieved by disabling temperature compensation, moving the focuser and re-enabling - temperature compensation or simply by moving the focuser with compensation enabled if the hardware supports this. - Conform will continue to pass IFocuserV2 drivers that throw InvalidOperationException exceptions. However, Conform will now fail IFocuserV3 drivers that throw InvalidOperationException exceptions, in line with this revised specification. -
    -
    - - - True if focuser has temperature compensation available. - - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful - -

    Must be implemented

    - Will be True only if the focuser's temperature compensation can be turned on and off via the property. -
    -
    - - - Current ambient temperature as measured by the focuser. - - If the property is not available for this device. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    - Raises an exception if ambient temperature is not available. Commonly available on focusers with a built-in temperature compensation mode. -
    -
    - - - Defines the IObservingConditions Interface. - This interface provides a limited set of values that are useful - for astronomical purposes for things such as determining if it is safe to open or operate the observing system, - for recording astronomical data or determining refraction corrections. - - It is NOT intended as a general purpose environmental sensor system. The Action method and - SupportedActions property can be used to extend your driver to present any further sensors that you need. - - - - - Set to True to connect to the device hardware. Set to False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and model number. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Must return 1 for this interface version. - -

    Must be implemented

    This value will be incremented if the interface - specification is extended in the future. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. - For ObservingConditions drivers the following conventions are recommended: - - The "ActionName" should be the name of a sensor in a form that makes sense to the user. - This must not be changed in the driver. - The "ActionParameter" should be "Value" to return the sensor value and - "Description" to return the sensor description. - The description must return a valid description, even if not connected. - - -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. - See Action for advice on how th implement this for ObservingConditions drivers. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Gets And sets the time period over which observations will be averaged - - Time period (hours) over which to average sensor readings - If the value set is not available for this driver. All drivers must accept 0.0 to specify that - an instantaneous value is available. - If the device is not connected and this information is only available when connected. - -

    Mandatory property, must be implemented, can NOT throw a PropertyNotImplementedException

    - This property should return the time period (hours) over which sensor readings will be averaged. If your driver is delivering instantaneous sensor readings this property should return a value of 0.0. - Please resist the temptation to throw exceptions when clients query sensor properties when insufficient time has passed to get a true average reading. - A best estimate of the average sensor value should be returned in these situations. -
    -
    - - - Amount of sky obscured by cloud - - percentage of the sky covered by cloud - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - This property should return a value between 0.0 and 100.0 where 0.0 = clear sky and 100.0 = 100% cloud coverage -
    -
    - - - Atmospheric dew point at the observatory - - Atmospheric dew point reported in °C. - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException when the property also throws a PropertyNotImplementedException.

    -

    Mandatory property, must NOT throw a PropertyNotImplementedException when the property is implemented.

    - The units of this property are degrees Celsius. Driver and application authors can use the method - to convert these units to and from degrees Farenhheit. - The ASCOM specification requires that DewPoint and Humidity are either both implemented or both throw PropertyNotImplementedExceptions. It is not allowed for - one to be implemented and the other to throw a PropertyNotImplementedException. The Utilities component contains methods ( and - ) to convert DewPoint to Humidity and vice versa given the ambient temperature. -
    -
    - - - Atmospheric humidity at the observatory - - Atmospheric humidity (%) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException when the property also throws a PropertyNotImplementedException.

    -

    Mandatory property, must NOT throw a PropertyNotImplementedException when the property is implemented.

    - The ASCOM specification requires that DewPoint and Humidity are either both implemented or both throw PropertyNotImplementedExceptions. It is not allowed for - one to be implemented and the other to throw a PropertyNotImplementedException. The Utilities component contains methods ( and - ) to convert DewPoint to Humidity and vice versa given the ambient temperature. - This property should return a value between 0.0 and 100.0 where 0.0 = 0% relative humidity and 100.0 = 100% relative humidity. -
    -
    - - - Atmospheric pressure at the observatory - - Atmospheric presure at the observatory (hPa) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The units of this property are hectoPascals. Client and driver authors can use the method - to convert these units to and from milliBar, mm of mercury and inches of mercury. - This must be the pressure at the observatory altitude and not the adjusted pressure at sea level. - Please check whether your pressure sensor delivers local observatory pressure or sea level pressure and, if it returns sea level pressure, - adjust this to actual pressure at the observatory's altitude before returning a value to the client. - The method can be used to effect this adjustment. - -
    -
    - - - Rain rate at the observatory - - Rain rate (mm / hour) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The units of this property are millimetres per hour. Client and driver authors can use the method - to convert these units to and from inches per hour. - This property can be interpreted as 0.0 = Dry any positive nonzero value = wet. - Rainfall intensity is classified according to the rate of precipitation: - - Light rain — when the precipitation rate is less than 2.5 mm (0.098 in) per hour - Moderate rain — when the precipitation rate is between 2.5 mm (0.098 in) and 10 mm (0.39 in) per hour - Heavy rain — when the precipitation rate is between 10 mm (0.39 in) and 50 mm (2.0 in) per hour - Violent rain — when the precipitation rate is > 50 mm (2.0 in) per hour - -
    -
    - - - Sky brightness at the observatory - - Sky brightness (Lux) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - This property returns the sky brightness measured in Lux. - Luminance Examples in Lux - - - IlluminanceSurfaces illuminated by: - - 0.0001 luxMoonless, overcast night sky (starlight) - 0.002 luxMoonless clear night sky with airglow - 0.27–1.0 luxFull moon on a clear night - 3.4 luxDark limit of civil twilight under a clear sky - 50 luxFamily living room lights (Australia, 1998) - 80 luxOffice building hallway/toilet lighting - 100 luxVery dark overcast day - 320–500 luxOffice lighting - 400 luxSunrise or sunset on a clear day. - 1000 luxOvercast day; typical TV studio lighting - 10000–25000 luxFull daylight (not direct sun) - 32000–100000 luxDirect sunlight - -
    -
    - - - Sky quality at the observatory - - Sky quality measured in magnitudes per square arc second - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - Sky quality is typically measured in units of magnitudes per square arc second. A sky quality of 20 magnitudes per square arc second means that the - overall sky appears with a brightness equivalent to having 1 magnitude 20 star in each square arc second of sky. - Examples of typical sky quality values were published by Sky and Telescope (http://www.skyandtelescope.com/astronomy-resources/rate-your-skyglow/) and, in slightly adpated form, are reproduced below: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Sky Quality (mag/arcsec2) - Description
    - 22.0 - By convention, this is often assumed to be the average brightness of a moonless night sky that's completely free of artificial light pollution.
    - 21.0 - This is typical for a rural area with a medium-sized city not far away. It's comparable to the glow of the brightest section of the northern Milky Way, from Cygnus through Perseus.
    - 20.0 - This is typical for the outer suburbs of a major metropolis. The summer Milky Way is readily visible but severely washed out.
    - 19.0 - Typical for a suburb with widely spaced single-family homes. It's a little brighter than a remote rural site at the end of nautical twilight, when the Sun is 12° below the horizon.
    - 18.0 - Bright suburb or dark urban neighborhood. It's also a typical zenith skyglow at a rural site when the Moon is full. The Milky Way is invisible, or nearly so.
    - 17.0 - Typical near the center of a major city.
    - 13.0 - The zenith skyglow at the end of civil twilight, roughly a half hour after sunset, when the Sun is 6° below the horizon. Venus and Jupiter are easy to see, but bright stars are just beginning to appear.
    - 7.0 - The zenith skyglow at sunrise or sunset
    -
    -
    -
    - - - Seeing at the observatory measured as star full width half maximum (FWHM) in arc secs. - - Seeing reported as star full width half maximum (arc seconds) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    -
    -
    - - - Sky temperature at the observatory - - Sky temperature in °C - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The units of this property are degrees Celsius. Driver and application authors can use the method - to convert these units to and from degrees Farenhheit. - This is expected to be returned by an infra-red sensor looking at the sky. The lower the temperature the more the sky is likely to be clear. -
    -
    - - - Temperature at the observatory - - Temperature in °C - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The units of this property are degrees Celsius. Driver and application authors can use the method - to convert these units to and from degrees Farenhheit. - This is expected to be the ambient temperature at the observatory. -
    -
    - - - Wind direction at the observatory - - Wind direction (degrees, 0..360.0) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The returned value must be between 0.0 and 360.0, interpreted according to the metereological standard, where a special value of 0.0 is returned when the wind speed is 0.0. - Wind direction is measured clockwise from north, through east, where East=90.0, South=180.0, West=270.0 and North=360.0. -
    -
    - - - Peak 3 second wind gust at the observatory over the last 2 minutes - - Wind gust (m/s) Peak 3 second wind speed over the last 2 minutes - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The units of this property are metres per second. Driver and application authors can use the method - to convert these units to and from miles per hour or knots. -
    -
    - - - Wind speed at the observatory - - Wind speed (m/s) - If this property is not available. - If the device is not connected and this information is only available when connected. - -

    Optional property, can throw a PropertyNotImplementedException

    - The units of this property are metres per second. Driver and application authors can use the method - to convert these units to and from miles per hour or knots. -
    -
    - - - Provides the time since the sensor value was last updated - - Name of the property whose time since last update is required - Time in seconds since the last sensor update for this property - If the sensor is not implemented. - If the device is not connected and this information is only available when connected. - If an invalid property name parameter is supplied. - -

    Must Not throw a MethodNotImplementedException when the specified sensor Is implemented but must throw a MethodNotImplementedException when the specified sensor Is Not implemented.

    - PropertyName must be the name of one of the sensor properties specified in the interface. If the caller supplies some other value, throw an InvalidValueException. - Return a negative value to indicate that no valid value has ever been received from the hardware. - If an empty string is supplied as the PropertyName, the driver must return the time since the most recent update of any sensor. A MethodNotImplementedException must not be thrown in this circumstance. -
    -
    - - - Provides a description of the sensor providing the requested property - - Name of the sensor whose description is required - The description of the specified sensor. - If the sensor is not implemented. - If the device is not connected and this information is only available when connected. - If an invalid property name parameter is supplied. - -

    Must Not throw a MethodNotImplementedException when the specified sensor Is implemented - but must throw a MethodNotImplementedException when the specified sensor Is Not implemented.

    - PropertyName must be the name of one of the sensor properties specified in the interface. If the caller supplies some other value, throw an InvalidValueException. - If the sensor is implemented, this must return a valid string, even if the driver is not connected, so that applications can use this to determine what sensors are available. - If the sensor is not implemented, this must throw a MethodNotImplementedException. -
    -
    - - - Forces the driver to immediately query its attached hardware to refresh sensor values - - If this method is not available. - If the device is not connected. - -

    Optional method, can throw a MethodNotImplementedException

    -
    -
    - - - Describes a range of rates supported by the method (degrees/per second) - These are contained within an collection and serve to describe one or more supported ranges of rates of motion about a mechanical axis. - It is possible that the and properties will be equal. In this case, the object expresses a single discrete rate. - Both the and properties are always expressed in units of degrees per second. - This is only using for Telescope InterfaceVersions 2 and 3 - - Values used must be non-negative and are scalar values. You do not need to supply complementary negative rates for each positive - rate that you specify. Movement in both directions is achieved by the application applying an appropriate positive or negative sign to the - rate when it is used in the command. - - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - The maximum rate (degrees per second) - This must always be a positive number. It indicates the maximum rate in either direction about the axis. - - - - - The minimum rate (degrees per second) - This must always be a positive number. It indicates the maximum rate in either direction about the axis. - - - - - Defines the IRotator Interface - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Indicates whether the Rotator supports the method. - - - True if the Rotator supports the method. - - -

    Must be implemented and must not throw a PropertyNotImplementedException.

    -
    -
    - - - Immediately stop any Rotator motion due to a previous Move or MoveAbsolute method call. - - This is an optional method. Raises an error if not supported. - Throw a MethodNotImplementedException if the rotator cannot halt. - - - - Indicates whether the rotator is currently moving - - True if the Rotator is moving to a new position. False if the Rotator is stationary. - If the property is not implemented. - Rotation is asynchronous, that is, when the Move method is called, it starts the rotation, then returns - immediately. During rotation, must be True, else it must be False. - - - - Causes the rotator to move Position degrees relative to the current value. - - If the method is not implemented. - If Position is invalid. - Relative position to move in degrees from current . - - Calling Move causes the property to change to the sum of the current angular position - and the value of the parameter (modulo 360 degrees), then starts rotation to . - - - - - Causes the rotator to move the absolute position of degrees. - - Absolute position in degrees. - If the method is not implemented. - If Position is invalid. - Calling MoveAbsolute causes the property to change to the value of the - parameter, then starts rotation to . - - - - Current instantaneous Rotator position, in degrees. - - If the property is not implemented. - - The position is expressed as an angle from 0 up to but not including 360 degrees, counter-clockwise against the - sky. This is the standard definition of Position Angle. However, the rotator does not need to (and in general will not) - report the true Equatorial Position Angle, as the attached imager may not be precisely aligned with the rotator's indexing. - It is up to the client to determine any offset between mechanical rotator position angle and the true Equatorial Position - Angle of the imager, and compensate for any difference. - The optional property is provided in order to manage rotators being used on optics with odd or - even number of reflections. With the Reverse switch in the correct position for the optics, the reported position angle must - be counter-clockwise against the sky. - - - - - Sets or Returns the rotator’s Reverse state. - - True if the rotation and angular direction must be reversed for the optics - Throw a PropertyNotImplementedException if the rotator cannot reverse and CanReverse is False. - See the definition of . Raises an error if not supported. - - - - The minimum StepSize, in degrees. - - Throw a PropertyNotImplementedException if the rotator does not know its step size. - - Raises an exception if the rotator does not intrinsically know what the step size is. - - - - - The destination position angle for Move() and MoveAbsolute(). - - The destination position angle forMove and MoveAbsolute. - If the property is not implemented. - - Upon calling Move or MoveAbsolute, this property immediately changes to the position angle to which the rotator is moving. The value is retained until a subsequent call - to Move or MoveAbsolute. - - - - - Defines the ISwitchV2 Interface - - - The Switch interface is used to define a number of 'switch devices'. A switch device can be used to control something, such as a power switch - or may be used to sense the state of something, such as a limit switch. - This SwitchV2 interface is an extension of the original Switch interface. The changes allow devices to have more than two states and - to distinguish between devices that are writable and those that are read only. - Compatibility between Switch and SwitchV2 interfaces: - Switch devices that implemented the original Switch interface and - client applications that use the original interface will still work together. - Client applications that implement the original - Switch interface should still work with drivers that implement the new interface. - Client applications that use the new features in this interface - will not work with drivers that do not implement the new interface. - - Each device has a CanWrite method, this is true if it can be written to or false if the device can only be read. - The new MinSwitchValue, MaxSwitchValue and SwitchStep methods are used to define the range and values that a device can handle. - This also defines the number of different values - states - that a device can have, from two for a traditional on-off switch, through - those with a small number of states to those which have many states. - The SetSwitchValue and GetSwitchValue methods are used to set and get the value of a device as a double. - There is no fundamental difference between devices with different numbers of states. - Naming Conventions - Each device handled by a Switch is known as a device or switch device for general cases, - a controller device if it can alter the state of the device and a sensor device if it can only be read. - For convenience devices are referred to as boolean if the device can only have two states, and multi-state if it can have more than two values. - These are treated the same in the interface definition. - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - The number of switch devices managed by this driver - - The number of devices managed by this driver. -

    Must be implemented, must not throw a

    -

    Devices are numbered from 0 to - 1

    -
    - - - Return the name of switch device n. - - The device number (0 to - 1) - The name of the device - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw an ASCOM.MethodNotImplementedException

    - Devices are numbered from 0 to - 1
    -
    - - - Set a switch device name to a specified value. - - The device number (0 to - 1) - The name of the device - If the device name cannot be set in the application code. - If id is outside the range 0 to - 1 -

    Can throw a if the device name can not be set by the application.

    - Devices are numbered from 0 to - 1 -
    -
    - - - Gets the description of the specified switch device. This is to allow a fuller description of - the device to be returned, for example for a tool tip. - - The device number (0 to - 1) - - String giving the device description. - - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw an ASCOM.MethodNotImplementedException

    - Decices are numbered from 0 to - 1 - This is a Version 2 method. -
    -
    - - - Reports if the specified switch device can be written to, default true. - This is false if the device cannot be written to, for example a limit switch or a sensor. - - The device number (0 to - 1) - - true if the device can be written to, otherwise false. - - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw an ASCOM.MethodNotImplementedException

    - Devices are numbered from 0 to - 1 - This is a Version 2 method, version 1 switch devices can be assumed to be writable. -
    -
    - - - Return the state of switch device id as a boolean - - The device number (0 to - 1) - True or false - If id is outside the range 0 to - 1 - If there is a temporary condition that prevents the device value being returned. -

    Must be implemented, must not throw a .

    - All devices must implement this. A multi-state device will return true if the device is at the maximum value, false if the value is at the minumum - and either true or false as specified by the driver developer for intermediate values. - Some devices do not support reading their state although they do allow state to be set. In these cases, on startup, the driver can not know the hardware state and it is recommended that the - driver either: - - Sets the device to a known state on connection - Throws an until the client software has set the device state for the first time - - In both cases the driver should save a local copy of the state which it last set and return this through and - Devices are numbered from 0 to - 1
    -
    - - - Sets a switch controller device to the specified state, true or false. - - The device number (0 to - 1) - The required control state - If id is outside the range 0 to - 1 - If is false. -

    Can throw a if is False.

    - must return if the set state is true and if the set state is false. - Devices are numbered from 0 to - 1
    -
    - - - Returns the maximum value for this switch device, this must be greater than . - - The device number (0 to - 1) - The maximum value to which this device can be set or which a read only sensor will return. - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw a .

    - If a two state device cannot report its state, should return the value 1.0. - Devices are numbered from 0 to - 1. - This is a Version 2 method. -
    -
    - - - Returns the minimum value for this switch device, this must be less than - - The device number (0 to - 1) - The minimum value to which this device can be set or which a read only sensor will return. - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw a .

    - If a two state device cannot report its state, should return the value 0.0. - Devices are numbered from 0 to - 1. - This is a Version 2 method. -
    -
    - - - Returns the step size that this device supports (the difference between successive values of the device). - - The device number (0 to - 1) - The step size for this device. - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw .

    - SwitchStep, MinSwitchValue and MaxSwitchValue can be used to determine the way the device is controlled and/or displayed, - for example by setting the number of decimal places or number of states for a display. - must be greater than zero and the number of steps can be calculated as: - (( - ) / ) + 1. - The switch range ( - ) must be an exact multiple of . - If a two state device cannot report its state, should return the value 1.0. - Devices are numbered from 0 to - 1. - This is a Version 2 method. -
    -
    - - - Returns the value for switch device id as a double - - The device number (0 to - 1) - The value for this switch, this is expected to be between and - . - If there is a temporary condition that prevents the device value being returned. - If id is outside the range 0 to - 1 -

    Must be implemented, must not throw a .

    - Some devices do not support reading their state although they do allow state to be set. In these cases, on startup, the driver can not know the hardware state and it is recommended that the - driver either: - - Sets the device to a known state on connection - Throws an until the client software has set the device state for the first time - - In both cases the driver should save a local copy of the state which it last set and return this through and - Devices are numbered from 0 to - 1. - This is a Version 2 method. -
    -
    - - - Set the value for this device as a double. - - The device number (0 to - 1) - The value to be set, between and - If id is outside the range 0 to - 1 - If value is outside the range to - If is false. -

    Can throw a if is False.

    - If the value is more than or less than - then the method must throw an . - A set value that is intermediate between the values specified by should result in the device being set to an achievable value close to the requested set value. - Devices are numbered from 0 to - 1. - This is a Version 2 method. -
    -
    - - - Defines the ITelescope Interface - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 3 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Stops a slew in progress. - - If the method is not implemented - - Effective only after a call to , , , or . - Does nothing if no slew/motion is in progress. Tracking is returned to its pre-slew state. Raises an error if is true. - - - - - The alignment mode of the mount (Alt/Az, Polar, German Polar). - - If the property is not implemented - - This is only available for telescope InterfaceVersions 2 and 3 - - - - - The Altitude above the local horizon of the telescope's current position (degrees, positive up) - - If the property is not implemented - - - - The area of the telescope's aperture, taking into account any obstructions (square meters) - - - This is only available for telescope InterfaceVersions 2 and 3 - - If the property is not implemented - - - - The telescope's effective aperture diameter (meters) - - - This is only available for telescope InterfaceVersions 2 and 3 - - If the property is not implemented - - - - True if the telescope is stopped in the Home position. Set only following a operation, - and reset with any slew operation. This property must be False if the telescope does not support homing. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if the telescope has been put into the parked state by the seee method. Set False by calling the Unpark() method. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - AtPark is True when the telescope is in the parked state. This is achieved by calling the method. When AtPark is true, - the telescope movement is stopped (or restricted to a small safe range of movement) and all calls that would cause telescope - movement (e.g. slewing, changing Tracking state) must not do so, and must raise an error. - The telescope is taken out of parked state by calling the method. If the telescope cannot be parked, - then AtPark must always return False. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - Determine the rates at which the telescope may be moved about the specified axis by the method. - - The axis about which rate information is desired (TelescopeAxes value) - Collection of rate objects - If an invalid Axis is specified. - -

    Must be implemented, must not throw a MethodNotImplementedException.

    - See the description of for more information. This method must return an empty collection if is not supported. - This is only available for telescope InterfaceVersions 2 and 3 - - Please note that the rate objects must contain absolute non-negative values only. Applications determine the direction by applying a - positive or negative sign to the rates provided. This obviates the need for the driver to to present a duplicate set of negative rates - as well as the positive rates. -
    -
    - - - The azimuth at the local horizon of the telescope's current position (degrees, North-referenced, positive East/clockwise). - - If the property is not implemented - - - - True if this telescope is capable of programmed finding its home position ( method). - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if this telescope can move the requested axis - - Primary, Secondary or Tertiary axis - Boolean indicating can or can not move the requested axis - If an invalid Axis is specified. - -

    Must be implemented, must not throw a MethodNotImplementedException.

    - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if this telescope is capable of programmed parking (method) - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if this telescope is capable of software-pulsed guiding (via the method) - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. -
    -
    - - - True if the property can be changed to provide offset tracking in the declination axis. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. -
    -
    - - - True if the guide rate properties used for can ba adjusted. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if this telescope is capable of programmed setting of its park position ( method) - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if the property can be set, meaning that the mount can be forced to flip. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - This will always return False for non-German-equatorial mounts that do not have to be flipped. - May raise an error if the telescope is not connected. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - True if the property can be changed to provide offset tracking in the right ascension axis. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. -
    -
    - - - True if the property can be changed, turning telescope sidereal tracking on and off. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed slewing (synchronous or asynchronous) to equatorial coordinates - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If this is true, then only the synchronous equatorial slewing methods are guaranteed to be supported. - See the property for the asynchronous slewing capability flag. - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed slewing (synchronous or asynchronous) to local horizontal coordinates - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If this is true, then only the synchronous local horizontal slewing methods are guaranteed to be supported. - See the property for the asynchronous slewing capability flag. - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed asynchronous slewing to local horizontal coordinates - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - This indicates the the asynchronous local horizontal slewing methods are supported. - If this is True, then will also be true. - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed asynchronous slewing to equatorial coordinates. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - This indicates the the asynchronous equatorial slewing methods are supported. - If this is True, then will also be true. - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed synching to equatorial coordinates. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed synching to local horizontal coordinates - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - May raise an error if the telescope is not connected. -
    -
    - - - True if this telescope is capable of programmed unparking ( method). - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - If this is true, then will also be true. May raise an error if the telescope is not connected. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - The declination (degrees) of the telescope's current equatorial coordinates, in the coordinate system given by the property. - Reading the property will raise an error if the value is unavailable. - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    -
    -
    - - - The declination tracking rate (arcseconds per SI second, default = 0.0) - - If DeclinationRate Write is not implemented. - -

    DeclinationRate Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    DeclinationRate Write can throw a PropertyNotImplementedException.

    - This property, together with , provides support for "offset tracking". - Offset tracking is used primarily for tracking objects that move relatively slowly against the equatorial coordinate system. - It also may be used by a software guiding system that controls rates instead of using the PulseGuide method. - - NOTES: - - - The property value represents an offset from zero motion. - If is False, this property will always return 0. - To discover whether this feature is supported, test the property. - The supported range of this property is telescope specific, however, if this feature is supported, - it can be expected that the range is sufficient to allow correction of guiding errors caused by moderate misalignment - and periodic error. - If this property is non-zero when an equatorial slew is initiated, the telescope should continue to update the slew - destination coordinates at the given offset rate. - This will allow precise slews to a fast-moving target with a slow-slewing telescope. - When the slew completes, the and properties should reflect the final (adjusted) destination. - The units of this property are arcseconds per SI (atomic) second. Please note that for historic reasons the units of the property are seconds of RA per sidereal second. - - - -This is not a required feature of this specification, however it is desirable. - -
    -
    - - - Predict side of pier for German equatorial mounts - - The destination right ascension (hours). - The destination declination (degrees, positive North). - The side of the pier on which the telescope would be on if a slew to the given equatorial coordinates is performed at the current instant of time. - If the method is not implemented - If an invalid RightAscension or Declination is specified. - - This is only available for telescope InterfaceVersions 2 and 3 - - - - - True if the telescope or driver applies atmospheric refraction to coordinates. - - Either read or write or both properties can throw PropertyNotImplementedException if not implemented - - If this property is True, the coordinates sent to, and retrieved from, the telescope are unrefracted. - This is only available for telescope InterfaceVersions 2 and 3 - - NOTES: - - If the driver does not know whether the attached telescope does its own refraction, and if the driver does not itself calculate - refraction, this property (if implemented) must raise an error when read. - Writing to this property is optional. Often, a telescope (or its driver) calculates refraction using standard atmospheric parameters. - If the client wishes to calculate a more accurate refraction, then this property could be set to False and these - client-refracted coordinates used. - If disabling the telescope or driver's refraction is not supported, the driver must raise an error when an attempt to set - this property to False is made. - Setting this property to True for a telescope or driver that does refraction, or to False for a telescope or driver that - does not do refraction, shall not raise an error. It shall have no effect. - - - - - - - Equatorial coordinate system used by this telescope (e.g. Topocentric or J2000). - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - Most amateur telescopes use topocentric coordinates. This coordinate system is simply the apparent position in the sky - (possibly uncorrected for atmospheric refraction) for "here and now", thus these are the coordinates that one would use with digital setting - circles and most amateur scopes. More sophisticated telescopes use one of the standard reference systems established by professional astronomers. - The most common is the Julian Epoch 2000 (J2000). These instruments apply corrections for precession,nutation, abberration, etc. to adjust the coordinates - from the standard system to the pointing direction for the time and location of "here and now". - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - Locates the telescope's "home" position (synchronous) - - If the method is not implemented and is False - - Returns only after the home position has been found. - At this point the property will be True. - Raises an error if there is a problem. - Raises an error if AtPark is true. - This is only available for telescope InterfaceVersions 2 and 3 - - - - - The telescope's focal length, meters - - If the property is not implemented - - This property may be used by clients to calculate telescope field of view and plate scale when combined with detector pixel size and geometry. - This is only available for telescope InterfaceVersions 2 and 3 - - - - - The current Declination movement rate offset for telescope guiding (degrees/sec) - - If the property is not implemented - If an invalid guide rate is set. - - This is the rate for both hardware/relay guiding and the PulseGuide() method. - This is only available for telescope InterfaceVersions 2 and 3 - - NOTES: - - To discover whether this feature is supported, test the property. - The supported range of this property is telescope specific, however, if this feature is supported, it can be expected that the range is sufficient to - allow correction of guiding errors caused by moderate misalignment and periodic error. - If a telescope does not support separate guiding rates in Right Ascension and Declination, then it is permissible for and GuideRateDeclination to be tied together. - In this case, changing one of the two properties will cause a change in the other. - Mounts must start up with a known or default declination guide rate, and this property must return that known/default guide rate until changed. - - - - - - - The current Right Ascension movement rate offset for telescope guiding (degrees/sec) - - If the property is not implemented - If an invalid guide rate is set. - - This is the rate for both hardware/relay guiding and the PulseGuide() method. - This is only available for telescope InterfaceVersions 2 and 3 - - NOTES: - - To discover whether this feature is supported, test the property. - The supported range of this property is telescope specific, however, if this feature is supported, it can be expected that the range is sufficient to allow correction of guiding errors caused by moderate - misalignment and periodic error. - If a telescope does not support separate guiding rates in Right Ascension and Declination, then it is permissible for GuideRateRightAscension and to be tied together. - In this case, changing one of the two properties will cause a change in the other. - Mounts must start up with a known or default right ascension guide rate, and this property must return that known/default guide rate until changed. - - - - - - - True if a command is in progress, False otherwise - - If is False - - Raises an error if the value of the property is false (the driver does not support the method). - - - - - Move the telescope in one axis at the given rate. - - The physical axis about which movement is desired - The rate of motion (deg/sec) about the specified axis - If the method is not implemented. - If an invalid axis or rate is given. - - This method supports control of the mount about its mechanical axes. - The telescope will start moving at the specified rate about the specified axis and continue indefinitely. - This method can be called for each axis separately, and have them all operate concurrently at separate rates of motion. - Set the rate for an axis to zero to restore the motion about that axis to the rate set by the property. - Tracking motion (if enabled, see note below) is suspended during this mode of operation. - - Raises an error if is true. - This must be implemented for the if the property returns True for the given axis. - This is only available for telescope InterfaceVersions 2 and 3 - - NOTES: - - The movement rate must be within the value(s) obtained from a object in the - the collection. This is a signed value with negative rates moving in the oposite direction to positive rates. - The values specified in are absolute, unsigned values and apply to both directions, determined by the sign used in this command. - The value of must be True if the telescope is moving about any of its axes as a result of this method being called. - This can be used to simulate a handbox by initiating motion with the MouseDown event and stopping the motion with the MouseUp event. - When the motion is stopped by setting the rate to zero the scope will be set to the previous or to no movement, depending on the state of the property. - It may be possible to implement satellite tracking by using the method to move the scope in the required manner to track a satellite. - - - - - - - Move the telescope to its park position, stop all motion (or restrict to a small safe range), and set to True. - - If the method is not implemented and is False - - Raises an error if there is a problem communicating with the telescope or if parking fails. Parking should put the telescope into a state where its pointing accuracy - will not be lost if it is power-cycled (without moving it).Some telescopes must be power-cycled before unparking. Others may be unparked by simply calling the method. - Calling this with = True does nothing (harmless) - - - - - Moves the scope in the given direction for the given interval or time at - the rate given by the corresponding guide rate property - - The direction in which the guide-rate motion is to be made - The duration of the guide-rate motion (milliseconds) - If the method is not implemented and is False - If an invalid direction or duration is given. - - This method returns immediately if the hardware is capable of back-to-back moves, - i.e. dual-axis moves. For hardware not having the dual-axis capability, - the method returns only after the move has completed. - - NOTES: - - Raises an error if is true. - The property must be be True during pulse-guiding. - The rate of motion for movements about the right ascension axis is - specified by the property. The rate of motion - for movements about the declination axis is specified by the - property. These two rates may be tied together - into a single rate, depending on the driver's implementation - and the capabilities of the telescope. - - - - - - - The right ascension (hours) of the telescope's current equatorial coordinates, - in the coordinate system given by the EquatorialSystem property - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - Reading the property will raise an error if the value is unavailable. -
    -
    - - - The right ascension tracking rate offset from sidereal (seconds per sidereal second, default = 0.0) - - If RightAscensionRate Write is not implemented. - If an invalid rate is set. - -

    RightAscensionRate Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    RightAscensionRate Write can throw a PropertyNotImplementedException.

    - This property, together with , provides support for "offset tracking". Offset tracking is used primarily for tracking objects that move relatively slowly - against the equatorial coordinate system. It also may be used by a software guiding system that controls rates instead of using the PulseGuide method. - - NOTES: - The property value represents an offset from the currently selected . - - If this property is zero, tracking will be at the selected . - If is False, this property must always return 0. - To discover whether this feature is supported, test the property. - The units of this property are seconds of right ascension per sidereal second. Please note that for historic reasons the units of the property are arcseconds per SI second. - To convert a given rate in (the more common) units of sidereal seconds per UTC (clock) second, multiply the value by 0.9972695677 - (the number of UTC seconds in a sidereal second) then set the property. Please note that these units were chosen for the Telescope V1 standard, - and in retrospect, this was an unfortunate choice. However, to maintain backwards compatibility, the units cannot be changed. - A simple multiplication is all that's needed, as noted. The supported range of this property is telescope specific, however, - if this feature is supported, it can be expected that the range is sufficient to allow correction of guiding errors - caused by moderate misalignment and periodic error. - If this property is non-zero when an equatorial slew is initiated, the telescope should continue to update the slew destination coordinates - at the given offset rate. This will allow precise slews to a fast-moving target with a slow-slewing telescope. When the slew completes, - the and properties should reflect the final (adjusted) destination. This is not a required - feature of this specification, however it is desirable. - Use the property to enable and disable sidereal tracking (if supported). - - -
    -
    - - - Sets the telescope's park position to be its current position. - - If the method is not implemented and is False - - - - Indicates the pointing state of the mount. - - If the property is not implemented. - If an invalid side of pier is set. - - For historical reasons, this property's name does not reflect its true meaning. The name will not be changed (so as to preserve - compatibility), but the meaning has since become clear. All conventional mounts have two pointing states for a given equatorial (sky) position. - Mechanical limitations often make it impossible for the mount to position the optics at given HA/Dec in one of the two pointing - states, but there are places where the same point can be reached sensibly in both pointing states (e.g. near the pole and - close to the meridian). In order to understand these pointing states, consider the following (thanks to Patrick Wallace for this info): - All conventional telescope mounts have two axes nominally at right angles. For an equatorial, the longitude axis is mechanical - hour angle and the latitude axis is mechanical declination. Sky coordinates and mechanical coordinates are two completely separate arenas. - This becomes rather more obvious if your mount is an altaz, but it's still true for an equatorial. Both mount axes can in principle - move over a range of 360 deg. This is distinct from sky HA/Dec, where Dec is limited to a 180 deg range (+90 to -90). Apart from - practical limitations, any point in the sky can be seen in two mechanical orientations. To get from one to the other the HA axis - is moved 180 deg and the Dec axis is moved through the pole a distance twice the sky codeclination (90 - sky declination). - Mechanical zero HA/Dec will be one of the two ways of pointing at the intersection of the celestial equator and the local meridian. - In order to support Dome slaving, where it is important to know which side of the pier the mount is actually on, ASCOM has adopted the - convention that the Normal pointing state will be the state where a German Equatorial mount is on the East side of the pier, looking West, with the - counterweights below the optical assembly and that will represent this pointing state. - Move your scope to this position and consider the two mechanical encoders zeroed. The two pointing states are, then: - - Normal ()Where the mechanical Dec is in the range -90 deg to +90 deg - Beyond the pole ()Where the mechanical Dec is in the range -180 deg to -90 deg or +90 deg to +180 deg. - - - "Side of pier" is a "consequence" of the former definition, not something fundamental. - Apart from mechanical interference, the telescope can move from one side of the pier to the other without the mechanical Dec - having changed: you could track Polaris forever with the telescope moving from west of pier to east of pier or vice versa every 12h. - Thus, "side of pier" is, in general, not a useful term (except perhaps in a loose, descriptive, explanatory sense). - All this applies to a fork mount just as much as to a GEM, and it would be wrong to make the "beyond pole" state illegal for the - former. Your mount may not be able to get there if your camera hits the fork, but it's possible on some mounts. Whether this is useful - depends on whether you're in Hawaii or Finland. - To first order, the relationship between sky and mechanical HA/Dec is as follows: - Normal state: - - HA_sky = HA_mech - Dec_sky = Dec_mech - - - Beyond the pole - - HA_sky = HA_mech + 12h, expressed in range ± 12h - Dec_sky = 180d - Dec_mech, expressed in range ± 90d - - - Astronomy software often needs to know which which pointing state the mount is in. Examples include setting guiding polarities - and calculating dome opening azimuth/altitude. The meaning of the SideOfPier property, then is: - - pierEastNormal pointing state - pierWestBeyond the pole pointing state - - - If the mount hardware reports neither the true pointing state (or equivalent) nor the mechanical declination axis position - (which varies from -180 to +180), a driver cannot calculate the pointing state, and *must not* implement SideOfPier. - If the mount hardware reports only the mechanical declination axis position (-180 to +180) then a driver can calculate SideOfPier as follows: - - pierEast = abs(mechanical dec) <= 90 deg - pierWest = abs(mechanical Dec) > 90 deg - - - It is allowed (though not required) that this property may be written to force the mount to flip. Doing so, however, may change - the right ascension of the telescope. During flipping, Telescope.Slewing must return True. - This property is only available in telescope InterfaceVersions 2 and 3. - Pointing State and Side of Pier - Help for Driver Developers - A further document, "Pointing State and Side of Pier", is installed in the Developer Documentation folder by the ASCOM Developer - Components installer. This further explains the pointing state concept and includes diagrams illustrating how it relates - to physical side of pier for German equatorial telescopes. It also includes details of the tests performed by Conform to determine whether - the driver correctly reports the pointing state as defined above. - - - - - The local apparent sidereal time from the telescope's internal clock (hours, sidereal) - - -

    Must be implemented, must not throw a PropertyNotImplementedException.

    - It is required for a driver to calculate this from the system clock if the telescope - has no accessible source of sidereal time. Local Apparent Sidereal Time is the sidereal - time used for pointing telescopes, and thus must be calculated from the Greenwich Mean - Sidereal time, longitude, nutation in longitude and true ecliptic obliquity. -
    -
    - - - The elevation above mean sea level (meters) of the site at which the telescope is located - - If the property is not implemented. - If an invalid elevation is set. - If the application must set the elevation before reading it, but has not. - - Setting this property will raise an error if the given value is outside the range -300 through +10000 metres. - Reading the property will raise an error if the value has never been set or is otherwise unavailable. - This is only available for telescope InterfaceVersions 2 and 3 - - - - - The geodetic(map) latitude (degrees, positive North, WGS84) of the site at which the telescope is located. - - If the property is not implemented. - If an invalid latitude is set. - If the application must set the latitude before reading it, but has not. - - Setting this property will raise an error if the given value is outside the range -90 to +90 degrees. - Reading the property will raise an error if the value has never been set or is otherwise unavailable. - This is only available for telescope InterfaceVersions 2 and 3 - - - - - The longitude (degrees, positive East, WGS84) of the site at which the telescope is located. - - If the property is not implemented. - If an invalid longitude is set. - If the application must set the longitude before reading it, but has not. - - Setting this property will raise an error if the given value is outside the range -180 to +180 degrees. - Reading the property will raise an error if the value has never been set or is otherwise unavailable. - Note that West is negative! - This is only available for telescope InterfaceVersions 2 and 3 - - - - - True if telescope is currently moving in response to one of the - Slew methods or the method, False at all other times. - - If the property is not implemented. - - Reading the property will raise an error if the value is unavailable. If the telescope is not capable of asynchronous slewing, this property will always be False. - The definition of "slewing" excludes motion caused by sidereal tracking, PulseGuide, , and . - It reflects only motion caused by one of the Slew commands, flipping caused by changing the property, or . - - - - - Specifies a post-slew settling time (sec.). - - If the property is not implemented. - If an invalid settle time is set. - - Adds additional time to slew operations. Slewing methods will not return, - and the property will not become False, until the slew completes and the SlewSettleTime has elapsed. - This feature (if supported) may be used with mounts that require extra settling time after a slew. - - - - - Move the telescope to the given local horizontal coordinates, return when slew is complete - - If the method is not implemented and is False - If an invalid azimuth or elevation is given. - - This Method must be implemented if returns True. Raises an error if the slew fails. The slew may fail if the target coordinates are beyond limits imposed within the driver component. - Such limits include mechanical constraints imposed by the mount or attached instruments, building or dome enclosure restrictions, etc. - The and properties are not changed by this method. - Raises an error if is True, or if is True. This is only available for telescope InterfaceVersions 2 and 3 - - Target azimuth (degrees, North-referenced, positive East/clockwise). - Target altitude (degrees, positive up) - - - - This Method must be implemented if returns True. - - Azimuth to which to move - Altitude to which to move to - If the method is not implemented and is False - If an invalid azimuth or elevation is given. - - This method should only be implemented if the properties , , - , and can be read while the scope is slewing. Raises an error if starting the slew fails. Returns immediately after starting the slew. - The client may monitor the progress of the slew by reading the , , and properties during the slew. When the slew completes, Slewing becomes False. - The slew may fail if the target coordinates are beyond limits imposed within the driver component. Such limits include mechanical constraints imposed by the mount or attached instruments, building or dome enclosure restrictions, etc. - The and properties are not changed by this method. - Raises an error if is True, or if is True. - This is only available for telescope InterfaceVersions 2 and 3 - - - - - Move the telescope to the given equatorial coordinates, return when slew is complete - - If an invalid right ascension or declination is given. - The destination right ascension (hours). Copied to . - The destination declination (degrees, positive North). Copied to . - If the method is not implemented and is False - - This Method must be implemented if returns True. Raises an error if the slew fails. - The slew may fail if the target coordinates are beyond limits imposed within the driver component. - Such limits include mechanical constraints imposed by the mount or attached instruments, - building or dome enclosure restrictions, etc. The target coordinates are copied to - and whether or not the slew succeeds. - Raises an error if is True, or if is False. - - - - - Move the telescope to the given equatorial coordinates, return immediately after starting the slew. - - The destination right ascension (hours). Copied to . - The destination declination (degrees, positive North). Copied to . - If the method is not implemented and is False - If an invalid right ascension or declination is given. - - This method must be implemented if returns True. Raises an error if starting the slew failed. - Returns immediately after starting the slew. The client may monitor the progress of the slew by reading - the , , and properties during the slew. When the slew completes, - becomes False. The slew may fail to start if the target coordinates are beyond limits - imposed within the driver component. Such limits include mechanical constraints imposed - by the mount or attached instruments, building or dome enclosure restrictions, etc. - The target coordinates are copied to and - whether or not the slew succeeds. - Raises an error if is True, or if is False. - - - - - Move the telescope to the and coordinates, return when slew complete. - - If the method is not implemented and is False - - This Method must be implemented if returns True. Raises an error if the slew fails. - The slew may fail if the target coordinates are beyond limits imposed within the driver component. - Such limits include mechanical constraints imposed by the mount or attached - instruments, building or dome enclosure restrictions, etc. - Raises an error if is True, or if is False. - - - - - Move the telescope to the and coordinates, - returns immediately after starting the slew. - - If the method is not implemented and is False - - This Method must be implemented if returns True. - Raises an error if starting the slew failed. Returns immediately after starting the slew. The client may monitor the progress of the slew by reading the RightAscension, Declination, - and Slewing properties during the slew. When the slew completes, becomes False. The slew may fail to start if the target coordinates are beyond limits imposed within - the driver component. Such limits include mechanical constraints imposed by the mount or attached instruments, building or dome enclosure restrictions, etc. - Raises an error if is True, or if is False. - - - - - Matches the scope's local horizontal coordinates to the given local horizontal coordinates. - - Target azimuth (degrees, North-referenced, positive East/clockwise) - Target altitude (degrees, positive up) - If the method is not implemented and is False - If an invalid azimuth or altitude is given. - - This must be implemented if the property is True. Raises an error if matching fails. - Raises an error if is True, or if is True. - This is only available for telescope InterfaceVersions 2 and 3 - - - - - Matches the scope's equatorial coordinates to the given equatorial coordinates. - - The corrected right ascension (hours). Copied to the property. - The corrected declination (degrees, positive North). Copied to the property. - If the method is not implemented and is False - If an invalid right ascension or declination is given. - - This must be implemented if the property is True. Raises an error if matching fails. - Raises an error if AtPark is True, or if is False. - The way that Sync is implemented is mount dependent and it should only be relied on to improve pointing for positions close to - the position at which the sync is done. - - - - - Matches the scope's equatorial coordinates to the given equatorial coordinates. - - If the method is not implemented and is False - - This must be implemented if the property is True. Raises an error if matching fails. - Raises an error if AtPark is True, or if is False. - The way that Sync is implemented is mount dependent and it should only be relied on to improve pointing for positions close to - the position at which the sync is done. - - - - - The declination (degrees, positive North) for the target of an equatorial slew or sync operation - - If the property is not implemented. - If an invalid declination is set. - If the property is read before being set for the first time. - - Setting this property will raise an error if the given value is outside the range -90 to +90 degrees. Reading the property will raise an error if the value has never been set or is otherwise unavailable. - - - - - The right ascension (hours) for the target of an equatorial slew or sync operation - - If the property is not implemented. - If an invalid right ascension is set. - If the property is read before being set for the first time. - - Setting this property will raise an error if the given value is outside the range 0 to 24 hours. Reading the property will raise an error if the value has never been set or is otherwise unavailable. - - - - - The state of the telescope's sidereal tracking drive. - - If Tracking Write is not implemented. - -

    Tracking Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    Tracking Write can throw a PropertyNotImplementedException.

    - Changing the value of this property will turn the sidereal drive on and off. - However, some telescopes may not support changing the value of this property - and thus may not support turning tracking on and off. - See the property. -
    -
    - - - The current tracking rate of the telescope's sidereal drive - - If TrackingRate Write is not implemented. - If an invalid drive rate is set. - -

    TrackingRate Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    TrackingRate Write can throw a PropertyNotImplementedException.

    - Supported rates (one of the values) are contained within the collection. - Values assigned to TrackingRate must be one of these supported rates. If an unsupported value is assigned to this property, it will raise an error. - The currently selected tracking rate can be further adjusted via the and properties. These rate offsets are applied to the currently - selected tracking rate. Mounts must start up with a known or default tracking rate, and this property must return that known/default tracking rate until changed. - If the mount's current tracking rate cannot be determined (for example, it is a write-only property of the mount's protocol), - it is permitted for the driver to force and report a default rate on connect. In this case, the preferred default is Sidereal rate. - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - Returns a collection of supported values that describe the permissible - values of the property for this telescope type. - - -

    Must be implemented and must not throw a PropertyNotImplementedException.

    - At a minimum, this must contain an item for . - This is only available for telescope InterfaceVersions 2 and 3 -
    -
    - - - Takes telescope out of the Parked state. - - If the method is not implemented and is False - - The state of after unparking is undetermined. Valid only after . Applications must check and change Tracking as needed after unparking. - Raises an error if unparking fails. Calling this with = False does nothing (harmless) - - - - - The UTC date/time of the telescope's internal clock - - If UTCDate Write is not implemented. - If an invalid is set. - When UTCDate is read and the mount cannot provide this property itslef and a value has not yet be established by writing to the property. - -

    UTCDate Read must be implemented and must not throw a PropertyNotImplementedException.

    -

    UTCDate Write can throw a PropertyNotImplementedException.

    - The driver must calculate this from the system clock if the telescope has no accessible source of UTC time. In this case, the property must not be writeable (this would change the system clock!) and will instead raise an error. - However, it is permitted to change the telescope's internal UTC clock if it is being used for this property. This allows clients to adjust the telescope's UTC clock as needed for accuracy. Reading the property - will raise an error if the value has never been set or is otherwise unavailable. -
    -
    - - - Returns a collection of supported DriveRate values that describe the permissible values of the TrackingRate property for this telescope type. - - - - - Returns a specified item from the collection - - Number of the item to return - A collection of supported DriveRate values that describe the permissible values of the TrackingRate property for this telescope type. - Returns a collection of supported DriveRate values - This is only used by telescope interface versions 2 and 3 - - - - Number of DriveRates supported by the Telescope - - Number of DriveRates supported by the Telescope - Integer count - - - - - Returns an enumerator for the collection - - An enumerator - - - - - Disposes of the TrackingRates object - - - - - - ASCOM Video Camera supported frame rates. - - - - - This is a video camera that supports variable frame rates. - - - - - 25 frames per second (fps) corresponding to a PAL (colour) or CCIR (black and white) video standard. - - - - - 29.97 frames per second (fps) corresponding to an NTSC (colour) or EIA (black and white) video standard. - - - - - ASCOM Video Camera status values. - - - - - Camera status running. The video is receiving signal and video frames are available for viewing or recording. - - - - - Camera status recording. The video camera is recording video to the file system. Video frames are available for viewing. - - - - - Camera status error. The video camera is in a state of an error and cannot continue its operation. Usually a reset will be required to resolve the error condition. - - - - - Defines the IVideoFrame Interface. - - - - - Returns a safearray of int32 containing the pixel values from the video frame. The array could be one of: ImageArray[Pixels], ImageArray[Height, Width], ImageArray[NumPlane, Pixels] - or ImageArray[NumPlane, Height, Width]. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - The application must inspect the Safearray parameters to determine the dimensions and also the to determine if the image is Color or not. - The following table should be used to determine the format of the data: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Dimensions - SensorType - Array Format
    1; int[]Monochrome, RGGB, CMYG, CMYG2, LRGBA row major ImageArray[Pixels] of * elements. The pixels in the array start from the top left part of the image and are listed by horizontal lines/rows. The second pixel in the array is the second pixel from the first horizontal row - and the second last pixel in the array is the second last pixels from the last horizontal row.
    1; int[]Color

    Invalid configuration.

    2; int[,]Monochrome, RGGB, CMYG, CMYG2, LRGBImageArray[Height, Width] of x elements.
    2; int[,]ColorImageArray[NumPlane, Pixels] of NumPlanes x * elements. The order of the three colour planes is - first is R, the second is G and third is B. The pixels in second dimension of the array start from the top left part of the image and are listed by horizontal lines/rows. The second pixel is the second pixel from the first horizontal row - and the second last pixel is the second last pixels from the last horizontal row.
    3; int[,,]Monochrome, RGGB, CMYG, CMYG2, LRGB

    Invalid configuration.

    3; int[,,]ColorImageArray[NumPlane, Height, Width] of NumPlanes x x elements. The order of the three colour planes is - first is R, the second is G and third is B.
    -
    - In Color SensorType mode, if the application cannot handle multispectral images, it should use just the first plane. -
    - The image array. -
    - - - Returns a preview bitmap for the last video frame as an array of byte. - - The following code can be used to create a Bitmap from the returned byte array - - using (var memStr = new MemoryStream(frame.PreviewBitmap)) - { - bmp = (Bitmap)Image.FromStream(memStr); - } - - - Using memStr = New MemoryStream(frame.PreviewBitmap) - bmp = DirectCast(Image.FromStream(memStr), Bitmap) - End Using - - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    The application can use this bitmap to show a preview image of the last video frame when required. This is a convenience property for - those applications that don't require to process the but usually only adjust the video camera settings and then record a video file. - When a 24bit RGB image can be returned by the driver this should be the preferred format. -
    - The preview bitmap image. -
    - - - Returns the frame number. - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - The frame number of the first exposed frame may not be zero and is dependent on the device and/or the driver. The frame number increases with each acquired frame not with each requested frame by the client. -
    - The frame number of the current video frame. -
    - - - Returns the actual exposure duration in seconds (i.e. shutter open time). - - - This may differ from the exposure time corresponding to the requested frame exposure due to shutter latency, camera timing precision, etc. - - The duration of the frame exposure. - Must throw an exception if not implemented. - - - - Returns the actual exposure start time in the FITS-standard CCYY-MM-DDThh:mm:ss[.sss...] format, if supported. - - The frame exposure start time. - Must throw an exception if not implemented. - - - - Returns additional information associated with the video frame as a list of named variables. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - The returned object contains entries for each value. For each entry, the Key property is the value's name, and the Value property is the string value itself. - This property must return an empty list if no video frame metadata is provided. - The Keys is a single word, or multiple words joined by underscore characters, that sensibly describes the variable. It is recommended that Keys - should be a maximum of 16 characters for legibility and all upper case. - The KeyValuePair objects are instances of the KeyValuePair class -
    - An ArrayList of KeyValuePair objects. -
    - - - Defines the IVideo Interface. - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and model number. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful. -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 1 for this interface version. - - Must throw an exception if the call was not successful. -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - The short name of the driver, for display purposes. - - Must throw an exception if the call was not successful. -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are supported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful. - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    May throw a MethodNotImplementedException if the device does not support any actions.

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - "General" will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    This method must return an empty arraylist if no actions are supported. - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - The name of the video capture device when such a device is used. - - Must throw an exception if not implemented. - For analogue video this is usually the video capture card or dongle attached to the computer. - - - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful. -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - The maximum supported exposure (integration time) in seconds. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - This value is for information purposes only. The exposure cannot be set directly in seconds, use property to change the exposure. -
    -
    - - - The minimum supported exposure (integration time) in seconds. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - This value is for information purposes only. The exposure cannot be set directly in seconds, use property to change the exposure. -
    -
    - - - The frame rate at which the camera is running. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - Analogue cameras run in one of the two fixed frame rates - 25fps for PAL video and 29.97fps for NTSC video. - Digital cameras usually can run at a variable frame rate. This value is for information purposes only and cannot be set. The FrameRate has the same value during the entire operation of the device. - Changing the property may change the actual variable frame rate but cannot changethe return value of this property. -
    -
    - - - Returns the list of integration rates supported by the video camera. - - - Digital and integrating analogue video cameras allow the effective exposure of a frame to be changed. If the camera supports setting the exposure directly i.e. 2.153 sec then the driver must only - return a range of useful supported exposures. For many video cameras the supported exposures (integration rates) increase by a factor of 2 from a base exposure e.g. 1, 2, 4, 8, 16 sec or 0.04, 0.08, 0.16, 0.32, 0.64, 1.28, 2.56, 5.12, 10.24 sec. - If the camers supports only one exposure that cannot be changed (such as all non integrating PAL or NTSC video cameras) then this property must throw . - - The list of supported integration rates in seconds. - Must throw exception if data unavailable. - Must throw exception if camera supports only one integration rate (exposure) that cannot be changed. - - - - Index into the array for the selected camera integration rate. - - Integer index for the current camera integration rate in the string array. - Index into the SupportedIntegrationRates array for the selected camera integration rate. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. - Must throw an exception if the camera supports only one integration rate (exposure) that cannot be changed. - - can be used to adjust the integration rate (exposure) of the camera, if supported. A 0-based array of strings - , - which correspond to different discrete integration rate settings supported by the camera will be returned. must be set to an integer in this range. - The driver must default to a valid value when integration rate is supported by the camera. - - - - - Returns an with its property populated. - - The current video frame. - Must throw exception if data unavailable. - If called before any video frame has been taken. - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - Sensor name. - - The name of sensor used within the camera. - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw exception if not implemented. - Returns the name (datasheet part number) of the sensor, e.g. ICX285AL. The format is to be exactly as shown on - manufacturer data sheet, subject to the following rules. All letter shall be uppercase. Spaces shall not be included. - Any extra suffixes that define region codes, package types, temperature range, coatings, grading, color/monochrome, - etc. shall not be included. For color sensors, if a suffix differentiates different Bayer matrix encodings, it shall be - included. - Examples: - - ICX285AL-F shall be reported as ICX285 - KAF-8300-AXC-CD-AA shall be reported as KAF-8300 - - Note: - The most common usage of this property is to select approximate color balance parameters to be applied to - the Bayer matrix of one-shot color sensors. Application authors should assume that an appropriate IR cutoff filter is - in place for color sensors. - It is recommended that this function be called only after a connection is established with - the camera hardware, to ensure that the driver is aware of the capabilities of the specific camera model. - - - - -Type of colour information returned by the the camera sensor. - - - The enum value of the camera sensor - Must throw an exception if the information is not available. (Some drivers may require an -active connection in order to retrieve necessary information from the camera.) - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - returns a value indicating whether the sensor is monochrome, or what Bayer matrix it encodes. -The following values are defined: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Value - Enumeration - Meaning
    -0 -Monochrome -Camera produces monochrome array with no Bayer encoding
    -1 -Colour -Camera produces color image directly, requiring not Bayer decoding. The monochome pixels for the R, G and B channels are returned in this order in the .
    -2 -RGGB -Camera produces RGGB encoded Bayer array images
    -3 -CMYG -Camera produces CMYG encoded Bayer array images
    -4 -CMYG2 -Camera produces CMYG2 encoded Bayer array images
    -5 -LRGB -Camera produces Kodak TRUESENSE Bayer LRGB array images
    -
    - Please note that additional values may be defined in future updates of the standard, as new Bayer matrices may be created -by sensor manufacturers in the future. If this occurs, then a new enumeration value shall be defined. The pre-existing enumeration -values shall not change. -In the following definitions, R = red, G = green, B = blue, C = cyan, M = magenta, Y = yellow. The Bayer matrix is -defined with X increasing from left to right, and Y increasing from top to bottom. The pattern repeats every N x M pixels for the -entire pixel array, where N is the height of the Bayer matrix, and M is the width. -RGGB indicates the following matrix: - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 -R -G
    - Y = 1 -G -B
    -
    - CMYG indicates the following matrix: - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 -Y -C
    - Y = 1 -G -M
    -
    - CMYG2 indicates the following matrix: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1
    - Y = 0 -C -Y
    - Y = 1 -M -G
    - Y = 2 -C -Y
    - Y = 3 -G -M
    -
    - LRGB indicates the following matrix (Kodak TRUESENSE): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - X = 0 - X = 1 - X = 2 - X = 3
    - Y = 0 -L -R -L -G
    - Y = 1 -R -L -G -L
    - Y = 2 -L -G -L -B
    - Y = 3 -G -L -B -L
    -
    - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure that -the driver is aware of the capabilities of the specific camera model. -
    -
    - - - Returns the width of the video frame in pixels. - - The video frame width. - Must throw exception if the value is not known. - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - For analogue video cameras working via a frame grabber the dimensions of the video frames may be different than the dimension of the CCD chip -
    -
    - - - Returns the height of the video frame in pixels. - - The video frame height. - Must throw exception if the value is not known. - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - For analogue video cameras working via a frame grabber the dimensions of the video frames may be different than the dimension of the CCD chip -
    -
    - - - Returns the width of the CCD chip pixels in microns. - - The pixel size X if known. - Must throw exception if not implemented. - - - - Returns the height of the CCD chip pixels in microns. - - The pixel size Y if known. - Must throw exception if not implemented. - - - - Reports the bit depth the camera can produce. - - The bit depth per pixel. Typical analogue videos are 8-bit while some digital cameras can provide 12, 14 or 16-bit images. - Must throw exception if data unavailable. - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - Returns the video codec used to record the video file. - - Must throw exception if not implemented. - For AVI files this is usually the FourCC identifier of the codec- e.g. XVID, DVSD, YUY2, HFYU etc. - If the recorded video file doesn't use codecs an empty string must be returned. - - - - - Returns the file format of the recorded video file, e.g. AVI, MPEG, ADV etc. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - The size of the video frame buffer. - - The size of the video frame buffer. -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    When retrieving video frames using the property - the driver may use a buffer to queue the frames waiting to be read by the client. This property returns the size of the buffer in frames or - if no buffering is supported then the value of less than 2 should be returned. The size of the buffer can be controlled by the end user from the driver setup dialog. -
    -
    - - - Starts recording a new video file. - - The file name requested by the client. Some systems may not allow the file name to be controlled directly and they should ignore this parameter. - The actual file name of the file that is being recorded. - Must throw exception if not implemented. - Must throw exception if not connected. - Must throw exception if the current camera state doesn't allow to begin recording a file. - Must throw exception if there is any other problem as result of which the recording cannot begin. - - - - Stops the recording of a video file. - - Must throw exception if not implemented. - Must throw exception if not connected. - Must throw exception if the current camera state doesn't allow to stop recording the file or no file is currently being recorded. - Must throw exception if there is any other problem as result of which the recording cannot stop. - - - - Returns the current camera operational state. - - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    - Returns one of the following status information: - - Value State Meaning - 0 CameraRunning The camera is running and video frames are available for viewing and recording - 1 CameraRecording The camera is running and recording a video - 2 CameraError Camera error condition serious enough to prevent further operations (connection fail, etc.). - - CameraIdle and CameraBusy are optional states. Free running cameras cannot be stopped and don't have a CameraIdle state. When those cameras are powered they immediately enter CameraRunning state. - Some digital cameras or vdeo systems may suport operations that take longer to complete. Whlie those longer operations are running the camera will remain in the state it was before the operation started. - The video camera state diagram is shown below: - - -
    - The state of the camera. - Must return an exception if the camera status is unavailable. -
    - - - Maximum value of . - - Short integer representing the maximum gain value supported by the camera. - The maximum gain value that this camera supports - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if GainMax is not supported. - When specifying the gain setting with an integer value, is used in conjunction with to - specify the range of valid settings. - shall be greater than . If either is available, then both must be available. - Please see for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - - - - - Minimum value of . - - The minimum gain value that this camera supports - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if GainMin is not supported. - When specifying the gain setting with an integer value, is used in conjunction with to - specify the range of valid settings. - shall be greater than . If either is available, then both must be available. - Please see for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - - - - - Index into the array for the selected camera gain. - - Short integer index for the current camera gain in the string array. - Index into the Gains array for the selected camera gain - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. - Must throw an exception if gain is not supported. - - can be used to adjust the gain setting of the camera, if supported. There are two typical usage scenarios: -
      -
    • Discrete gain video cameras will return a 0-based array of strings - , which correspond to different discrete gain settings supported by the camera. must be set to an integer in this range. and must thrown an exception if - this mode is used.
    • -
    • Adjustable gain video cameras - and return integers, which specify the valid range for .
    • -
    - The driver must default to a valid value. -
    -
    - - - Gains supported by the camera. - - An ArrayList of gain names or values - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if Gains is not supported - provides a 0-based array of available gain settings. - Typically the application software will display the available gain settings in a drop list. The application will then supply - the selected index to the driver via the property. - The setting may alternatively be specified using integer values; if this mode is used then is invalid - and must throw an exception. Please see and for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, - to ensure that the driver is aware of the capabilities of the specific camera model. - - - - - Maximum value of . - - Short integer representing the maximum gamma value supported by the camera. - The maximum gain value that this camera supports - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if GammaMax is not supported - When specifying the gamma setting with an integer value, is used in conjunction with to - specify the range of valid settings. - shall be greater than . If either is available, then both must be available. - Please see for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - - - - - Minimum value of . - - The minimum gamma value that this camera supports - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if GammaMin is not supported. - When specifying the gamma setting with an integer value, is used in conjunction with to - specify the range of valid settings. - shall be greater than . If either is available, then both must be available. - Please see for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, to ensure - that the driver is aware of the capabilities of the specific camera model. - - - - - Index into the array for the selected camera gamma. - - Short integer index for the current camera gamma in the string array. - Index into the Gammas array for the selected camera gamma - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if not valid. - Must throw an exception if Gamma is not supported. - - can be used to adjust the gamma setting of the camera, if supported. There are two typical usage scenarios: -
      -
    • Discrete gamma video cameras will return a 0-based array of strings - , which correspond to different discrete gamma settings supported by the camera. must be set to an integer in this range. and must thrown an exception if - this mode is used.
    • -
    • Adjustable gain video cameras - and return integers, which specify the valid range for .
    • -
    - The driver must default to a valid value. -
    -
    - - - Gammas supported by the camera. - - An ArrayList of gamma names or values - Must throw an exception if the information is not available. (Some drivers may require an - active connection in order to retrieve necessary information from the camera.) - Must throw an exception if Gammas is not supported - provides a 0-based array of available gamma settings. This list can contain the widely used values of OFF, LO and HI that correspond to gammas of 1.00, 0.45 and 0.35 as well as other extended values. - Typically the application software will display the available gamma settings in a drop list. The application will then supply - the selected index to the driver via the property. - The setting may alternatively be specified using integer values; if this mode is used then is invalid - and must throw an exception. Please see and for more information. - It is recommended that this function be called only after a connection is established with the camera hardware, - to ensure that the driver is aware of the capabilities of the specific camera model. - - - - - Returns True if the driver supports custom device properties configuration via the method. - -

    Must be implemented, must not throw an ASCOM.PropertyNotImplementedException.

    -
    -
    - - - Displays a device properties configuration dialog that allows the configuration of specialized settings. - - Must throw an exception if the camera is not connected. - Must throw an exception if not implemented. - - The dialog could also provide buttons for cameras that can be controlled via 'on screen display' menues and a set of navigation buttons such as Up, Down, Left, Right and Enter. - This dialog is not intended to be used in unattended mode but can give greater control over video cameras that provide special features. The dialog may also allow - changing standard interface settings such as Gamma and Gain. If a client software - displays any interface settings then it should take care to keep in sync the values changed by this method and those changed directly via the interface. - To support automated and unattended control over the specialized device settings or functions available on this dialog the driver should also allow their control via . - This dialog is meant to be used by the applications to allow the user to adjust specialized device settings when those applications don't specifically use the specialized settings in their functionality. - Examples for specialized settings that could be supported are white balance and sharpness. - - - - - Defines the ISafetyMonitor Interface - - - - - Set True to connect to the device hardware. Set False to disconnect from the device hardware. - You can also read the property to check whether it is connected. This reports the current hardware state. - - true if connected to the hardware; otherwise, false. - Must throw an exception if the call was not successful - -

    Must be implemented

    Do not use a NotConnectedException here, that exception is for use in other methods that require a connection in order to succeed. - The Connected property sets and reports the state of connection to the device hardware. - For a hub this means that Connected will be true when the first driver connects and will only be set to false - when all drivers have disconnected. A second driver may find that Connected is already true and - setting Connected to false does not report Connected as false. This is not an error because the physical state is that the - hardware connection is still true. - Multiple calls setting Connected to true or false will not cause an error. -
    -
    - - - Returns a description of the device, such as manufacturer and modelnumber. Any ASCII characters may be used. - - The description. - If the device is not connected and this information is only available when connected. - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Descriptive and version information about this ASCOM driver. - - Must throw an exception if the call was not successful - -

    Must be implemented

    This string may contain line endings and may be hundreds to thousands of characters long. - It is intended to display detailed information on the ASCOM driver, including version and copyright data. - See the property for information on the device itself. - To get the driver version in a parseable string, use the property. -
    -
    - - - A string containing only the major and minor version of the driver. - - Must throw an exception if the call was not successful -

    Must be implemented

    This must be in the form "n.n". - It should not to be confused with the property, which is the version of this specification supported by the - driver. -
    -
    - - - The interface version number that this device supports. Should return 2 for this interface version. - - Must throw an exception if the call was not successful -

    Must be implemented

    Clients can detect legacy V1 drivers by trying to read ths property. - If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. - In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver. -
    -
    - - - The short name of the driver, for display purposes - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Launches a configuration dialog box for the driver. The call will not return - until the user clicks OK or cancel manually. - - Must throw an exception if the call was not successful -

    Must be implemented

    -
    - - - Invokes the specified device-specific action. - - - A well known name agreed by interested parties that represents the action to be carried out. - - List of required parameters or an Empty String if none are required. - - A string response. The meaning of returned strings is set by the driver author. - Throws this exception if no actions are suported. - It is intended that the SupportedActions method will inform clients - of driver capabilities, but the driver must still throw an ASCOM.ActionNotImplemented exception if it is asked to - perform an action that it does not support. - If the driver is not connected. - Must throw an exception if the call was not successful - Suppose filter wheels start to appear with automatic wheel changers; new actions could - be “FilterWheel:QueryWheels” and “FilterWheel:SelectWheel”. The former returning a - formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate - values to indicate success or failure. - -

    Can throw a not implemented exception

    - This method is intended for use in all current and future device types and to avoid name clashes, management of action names - is important from day 1. A two-part naming convention will be adopted - DeviceType:UniqueActionName where: - - DeviceType is the same value as would be used by e.g. Telescope, Camera, Switch etc. - UniqueActionName is a single word, or multiple words joined by underscore characters, that sensibly describes the action to be performed. - - - It is recommended that UniqueActionNames should be a maximum of 16 characters for legibility. - Should the same function and UniqueActionName be supported by more than one type of device, the reserved DeviceType of - “General” will be used. Action names will be case insensitive, so FilterWheel:SelectWheel, filterwheel:selectwheel - and FILTERWHEEL:SELECTWHEEL will all refer to the same action. - The names of all supported actions must be returned in the property. -
    -
    - - - Returns the list of action names supported by this driver. - - An ArrayList of strings (SafeArray collection) containing the names of supported actions. - Must throw an exception if the call was not successful -

    Must be implemented

    This method must return an empty arraylist if no actions are supported. Please do not throw a - . - This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. - Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in - the Action method. -An array list collection has been selected as the vehicle for action names in order to make it easier for clients to - determine whether a particular action is supported. This is easily done through the Contains method. Since the - collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned - about hom many members are in the collection. - Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET - the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM. -
    -
    - - - Transmits an arbitrary string to the device and does not wait for a response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a boolean response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the interpreted boolean response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Transmits an arbitrary string to the device and waits for a string response. - Optionally, protocol framing characters may be added to the string before transmission. - - The literal command string to be transmitted. - - if set to true the string is transmitted 'as-is'. - If set to false then protocol framing characters may be added prior to transmission. - - - Returns the string response received from the device. - - If the method is not implemented - If the driver is not connected. - Must throw an exception if the call was not successful -

    Can throw a not implemented exception

    -
    - - - Dispose the late-bound interface, if needed. Will release it via COM - if it is a COM object, else if native .NET will just dereference it - for GC. - - - - - Indicates whether the monitored state is safe for use. - - True if the state is safe, False if it is unsafe. - -

    Must be implemented and must not throw a PropertyNotImplementedException.

    -
    -
    -
    -
    diff --git a/MeadeAutostar497/bin/Debug/ASCOM.Exceptions.xml b/MeadeAutostar497/bin/Debug/ASCOM.Exceptions.xml deleted file mode 100644 index d5c6d57..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.Exceptions.xml +++ /dev/null @@ -1,693 +0,0 @@ - - - - ASCOM.Exceptions - - - - - Exception thrown by a driver when it receives an unknown command through the Action method. - - - If you need to throw this error as a COM exception use the error number: 0x8004040C. - - - - - Create a new exception object and identify the specified driver method as the source. - - The name of the action that caused the exception. - - - - Create a new exception object and identify the specified driver method as the source, - and include an inner exception object containing a caught exception. - - The name of the driver method that caused the exception - The caught exception - - - - For Code Analysis, please don't use - - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - The method that is not implemented - - - - - Exception thrown by DriverAccess to return a driver COM error to the client. This exception appears as a COMException - to the client having the original exception's description and error number as well as the original exception as - the inner exception. - - - - - Creates a new DriverAccessCOException - - The error message to display - The COM error code to attach to this exception - Any inner exception that is to be attached to the exception, or null if there is no inner exception - - - - This exception should be raised by the driver to reject a command from the client. - - - The exception is intended to be used for "logical" errors e.g. trying to use a command when the current configuration of the device does - not allow it rather than for device errors such as a communications error. - Its the error to use when the client attempts something, which at another time would be sensible, - but which is not sensible right now. If you expect the condition causing the issue to be short - lived, you may choose to stall the request until the condition is cleared rather than throwing this exception. - Clearly, that is a judgement that you can only make given a specific scenario. - If you need to throw this error as a COM exception use the error number: 0x8004040B. - - - - - Default public constructor for NotConnectedException takes no parameters. - - - - - Initializes a new instance of the class - from another exception. - - The inner exception. - - - - Initializes a new instance of the class - with a non-default error message. - - A descriptive human-readable message. - - - - Initializes a new instance of the class - based on another exception. - - Descriptive text documenting the cause or source of the error. - The inner exception the led to the throwing of this exception. - - - - Added to keep Code Analysis happy - - - - - - - All methods defined by the relevant ASCOM standard interface must exist in each driver. However, those methods do not all have to be implemented. The minimum requirement - for each defined method is to throw the ASCOM.MethodNotImplementedException. Note that no default constructor is supplied. Throwing this requires the the method name. - - - If you need to throw this error as a COM exception use the error number: 0x80040400. - - - - - Create a new exception object and identify the specified driver method as the source. - - The name of the driver method that caused the exception. - - - - Create a new exception object and identify the specified driver method as the source, - and include an inner exception object containing a caught exception. - - The name of the driver method that caused the exception - The caught exception - - - - For Code Analysis, please don't use - - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - The method that is not implemented - - - - - This is the generic driver exception. Drivers are permitted to directly throw this - exception as well as any derived exceptions. Note that the Message property is - a member of , the base class of DriverException. The - property of is simply renamed to Number. - This exception should only be thrown if there is no other more appropriate exception already defined, e.g. PropertyNotImplemented, - InvalidOperationException, InvalidValueException, NotConnectedException etc. These specific exceptions should be thrown where appropriate - rather than using the more generic DriverException. Conform will not accept DriverExceptions where more appropriate exceptions - are already defined. - As good programming practice, the Message property should not be empty, so that users understand why the exception was thrown. - - - - - Create a new ASCOM exception using the specified text message and error code. - - Descriptive text describing the cause of the exception - Error code for the exception (80040400 - 80040FFF). - - - - Create a new ASCOM exception based on another exception plus additional descriptive text and error code. This member is - required for a well-behaved exception class. For example, if a driver receives an exception - (perhaps a COMException) from some other component yet it wants to report some meaningful - error that resulted from the other error, it can package the original error in the - InnerException member of the exception it generates. - - Descriptive text describing the cause of the exception - Error code for the exception (80040400 - 80040FFF). - The inner exception that led to throwing this exception - - - - Initializes a new instance of the class that will return the 'unspecified error' number: 0x800404FF. - Sets the COM HResult to . - - - - - Initializes a new instance of the class - with a human-readable descriptive message. - - The human-readable description of the problem. - - - - Initializes a new instance of the class from another caught exception and a human-readable descriptinve message. - - The human-readable description of the problem. - The caught (inner) exception. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - The COM error code for this exception (hex 80040400 - 800404FF) - - - - - Error numbers for use by drivers. - - - The range of permitted values falls within the class FACILTY_ITF as - defined by the operating system and COM. These values will never clash with - COM, RPC, or OS error codes. - - Driver developers may extend this class by making use of the partial keyword. - - - - - - Reserved error number (0x80040400) for property or method not implemented. - - - See ASCOM.Exception.NotImplementedException. - - - - - Reserved error code (0x80040401) for reporting an invalid value. - - - See ASCOM.Exception.InvalidValueException. - - - - - Reserved error code (0x80040402) for reporting that a value has not been set. - - - See ASCOM.Exception.ValueNotSetException. - - - - - Reserved error code (0x80040407) used to indicate that the communications channel is not connected. - - - - - Reserved error code (0x80040408) used to indicate that the attempted operation is invalid because the mount - is currently in a Parked state. - - - - - Reserved error code (0x80040409) used to indicate that the attempted operation is invalid because the mount - is currently in a Slaved state. - - - - - Reserved error code (0x8004040A) related to settings. - - - - - Reserved error code (0x8004040B) to indicate that the requested operation can not be undertaken at this time. - - - - - Reserved error code (0x8004040C) to indicate that the requested action is not implemented in this driver. - - - - - Reserved error code (0x8004040D) to indicate that the requested item is not present in the ASCOM cache. - - - The exception is defined in the ASCOM.Cache component rather than ASCOM.Exceptions. - - - - - Reserved 'catch-all' error code (0x800404FF) used when nothing else was specified. - - - - - The starting value (0x80040500) for driver-specific error numbers. - - - Drivers are free to choose their own numbers starting with DriverBase, up to and including DriverMax. - - - - - The maximum value (0x80040FFF) for driver-specific error numbers. - - - Drivers are free to choose their own numbers starting with DriverBase, up to and including DriverMax. - - - - - Exception to report an invalid value supplied to a driver. - - - The most useful way to use this exception is to inform the user which property/method/parameter received the invalid value and also the range of allowed values. - If you need to throw this error as a COM exception use the error number: 0x80040401. - - - - - Create a new exception object and identify the specified driver property or method as the source. - - The name of the driver property/accessor or method that caused the exception - The invalid value that was supplied - - - - - - Create a new exception object and identify the specified driver property or method as the source. - - The name of the driver property/accessor or method that caused the exception - The invalid value that was supplied - The valid value range - - - - Create a new exception object and identify the specified driver property as the source, - and include an inner exception object containing a caught exception. - - The name of the driver property/accessor or method that caused the exception - The invalid value that was supplied - The caught exception - The valid value range - - - - Create a new exception - - Exception description - - - - Create a new exception - - Exception description - The underlying exception that caused this exception to be thrown. - - - - Create a new exception object - - - - - Added to keep Code Analysis happy - - - - - - - The property/accessor or method that has an invalid value. - - - - - The invalid value. - - - - - The valid range for this property. - - - - - The lower value of the valid range. - - - - - The higher end of the valid range. - - - - - This exception should be raised when an operation is attempted that requires communication with the device, but the device is disconnected. - - - If you need to throw this error as a COM exception use the error number: 0x80040400. - - - - - Default public constructor for NotConnectedException takes no parameters. - - - - - Initializes a new instance of the class - from another exception. - - The inner exception. - - - - Initializes a new instance of the class - with a non-default error message. - - A descriptive human-readable message. - - - - Initializes a new instance of the class - based on another exception. - - Descriptive text documenting the cause or source of the error. - The inner exception the led to the throwing of this exception. - - - - Added to keep Code Analysis happy - - - - - - - All properties and methods defined by the relevant ASCOM standard interface must exist in each driver. However, - those properties and methods do not all have to be implemented. This exception is a base class for - PropertyNotImplementedException and MethodNotImplementedException, which drivers should use for throwing - the relevant exception(s). This class is intended to be used by clients who wish to catch either of - the two specific exceptions in a single catch() clause. - - - If you need to throw this error as a COM exception use the error number: 0x80040400. - - - - - A format string used to create the exception's human-readable message. - - - - - Create a new exception object and identify the specified driver property or method as the source. - - The name of the driver property/accessor or method that caused the exception - - - - Create a new exception object and identify the specified driver property as the source, - and include an inner exception object containing a caught exception. - - The name of the driver property/accessor or method that caused the exception - The caught exception - - - - Added to keep Code analysis happy, please don't use it. - - - - - Added to keep Code Analysis happy - - - - - - - The property/accessor or method that is not implemented - - - - - This exception should be used to indicate that movement (or other invalid operation) was attempted while the device was in a parked state. - - - If you need to throw this error as a COM exception use the error number: 0x80040408. - - - - - Initializes a new instance of the class - using default error text and error codes. - - - - - Initializes a new instance of the class - with a caught (inner) exception. - - The inner. - - - - Create a new exception - - Exception description - - - - Create a new exception - - Exception description - Underlying exception that caused this exception to be thrown. - - - - Added to keep Code Analysis happy - - - - - - - All properties defined by the relevant ASCOM standard interface must exist in each driver. However, those properties do not all have to be implemented. The minimum requirement - for each defined property is to throw the ASCOM.PropertyNotImplementedException for each of its accessors. Note that no default constructor is supplied. Throwing this requires both the - property name and unimplemented accessor type to be supplied. - - - If you need to throw this error as a COM exception use the error number: 0x80040400. - - - - - Create a new exception object and identify the specified driver property and accessor as the source. - - The name of the driver property that caused the exception. - True if the exception is being thrown for the 'set' accessor, else false - - - - Create a new exception object and identify the specified driver property as the source, - and include an inner exception object containing a caught exception. - - The name of the driver property that caused the exception - True if the exception is being thrown for the 'set' accessor, else false - The caught exception - - - - Create a new exception - - Exception description - Underlying exception that caused this exception to be thrown. - - - - Create a new exception - - - - - Create a new exception - - Exception description - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - The property that is not implemented - - - - - True if the 'set' accessor is not implemented, else false - - - - - This exception should be used to indicate that movement (or other invalid operation) was attempted while the device was in slaved mode. This applies primarily to domes drivers. - - - If you need to throw this error as a COM exception use the error number: 0x80040409. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a caught (inner) exception. - - Inner exception - - - - Create a new exception - - Exception description - - - - Create a new exception - - Exception description - Underlying exception that caused this exception to be thrown. - - - - Create a new exception - - Information required to serialise the exception - Information of the serialising stream context. - - - - Exception to report that no value has yet been set for this property. - - - If you need to throw this error as a COM exception use the error number: 0x80040402. - - - - - Create a new exception object and identify the specified driver property or method as the source. - - The name of the driver property/accessor or method that caused the exception - - - - Create a new exception object and identify the specified driver property as the source, - and include an inner exception object containing a caught exception. - - The name of the driver property/accessor or method that caused the exception - The caught exception - - - - Added to keep Code Analysis happy - - - - - Added to keep Code Analysis happy - - - - - - - The property/accessor or method that has no value - - - - diff --git a/MeadeAutostar497/bin/Debug/ASCOM.Internal.Extensions.xml b/MeadeAutostar497/bin/Debug/ASCOM.Internal.Extensions.xml deleted file mode 100644 index 2478a6c..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.Internal.Extensions.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - ASCOM.Internal.Extensions - - - - - Extension methods relating to . - - - - - The recognized ASCOM device classes. - - - This list is specifically intended to support the Template Project Wizard - and contains a list of the device types for which the Wizard can expand - a project template. - - - - - Determines whether the specified file is device specific. - - The file. - - true if it is device specific; otherwise, false. - - - A file is considered 'device specific' if it meets the following criteria: - - - The filename contains at least two dots ('.'); - - - The first dot-delimited segment of the filename matches one of the - recognized interface types contained in - - - - - - - tring extension methods - - - - - Defines a lookup table of bit masks, for a fast method of determining - a mask for any given bit position. - N.B. It might just be quicker to raise to a power of two, - the compiler might be smart enough to optimize that. - - - - - Returns a boolean value corresponding to the value at the specified bit position. - - The register, an unsigned integer, containing bit values. - The bit position to be tested, where bit 0 is the least significant bit. - A boolean value corresponding to the bit at the specified bit position. - - - - Returns a boolean value corresponding to the value at the specified bit position. - - The register, an integer, containing bit values. - The bit position to be tested, where bit 0 is the least significant bit. - A boolean value corresponding to the bit at the specified bit position. - - - - String extension methods. - - - Internal use only. Driver and application developers should not rely on this class, - because the interface and method signatures may change at any time. - - - - - Returns the specified number of characters from the head of a string. - - The source string. - The number of characters to be returned, must not be greater than the length of the string. - The specified number of characters from the head of the source string, as a new string. - Thrown if the requested number of characters exceeds the string length. - - - - Returns the specified number of characters from the tail of a string. - - The source string. - The number of characters to be returned, must not be greater than the length of the string. - The specified number of characters from the tail of the source string, as a new string. - Thrown if the requested number of characters exceeds the string length. - - - - Cleans (that is, removes all unwanted characters) from the string. - - The source string. - A list of the allowed characters. All other characters will be removed. - A new string with all of the unwanted characters deleted. - - - - Remove the head of the string, leaving the tail. - - The source string. - Number of characters to remove from the head. - - A new string containing the old string with characters removed from the head. - - - - - Remove the tail of the string, leaving the head. - - The source string. - Number of characters to remove from the tail. - A new string containing the old string with characters removed from the tail. - - - diff --git a/MeadeAutostar497/bin/Debug/ASCOM.MeadeAutostar497.Telescope.dll.config b/MeadeAutostar497/bin/Debug/ASCOM.MeadeAutostar497.Telescope.dll.config deleted file mode 100644 index e4eb090..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.MeadeAutostar497.Telescope.dll.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - -
    - - - diff --git a/MeadeAutostar497/bin/Debug/ASCOM.SettingsProvider.xml b/MeadeAutostar497/bin/Debug/ASCOM.SettingsProvider.xml deleted file mode 100644 index 18d293e..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.SettingsProvider.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - ASCOM.SettingsProvider - - - - - The Diagnostics class provides a few helper methods that make it easier to produce coherent - debugging output. The class is implemented as a singleton that is created as soon as the assembly - is loaded. The level of trace output that is produced is controlled by a - that in turn loads its configuration from the App.config file. If there is no App.Config file, - the default is to produce verbose output for debug builds and errors/warnings for release builds. - - We recommend SysInternals DbgView for viewing and capturing the trace output. - See http://www.sysinternals.com - - - - - - Text versions of the various trace levels. - - - - - Construct and initialise diagnostics. - - - - - Gets a reference to the one and only instance of this singleton class. - - a reference to the one and only instance of this singleton class. - - - - Send an object to the trace channel at severity level Error. - - The object (which may be a string) to display. - - - - Format and send a list of objects to the trace channel at severity level Error. - - Format string used to format the objects. - List of objects to be displayed. - - - - Send an object to the trace channel at severity level Warning. - - The object (which may be a string) to display. - - - - Format and send a list of objects to the trace channel at severity level Warning. - - Format string used to format the objects. - List of objects to be displayed. - - - - Send an object to the trace channel at severity level Information. - - The object (which may be a string) to display. - - - - Format and send a list of objects to the trace channel at severity level Information. - - Format string used to format the objects. - List of objects to be displayed. - - - - Send an object to the trace channel at severity level Verbose Information. - - The object (which may be a string) to display. - - - - Format and send a list of objects to the trace channel at severity level Verbose Information. - - Format string used to format the objects. - List of objects to be displayed. - - - - Provides settings storage for ASCOM device drivers. - Settings are persisted in the ASCOM Device Profile store. - - - Original version by Tim Long, March 2009. - Copyright © 2009 TiGra Astronomy, all rights reserved. - http://www.tigranetworks.co.uk/Astronomy - - - - - A reference to an ASCOM profile provider. Normally, this will be the default implementation defined in - , but unit tests can also use dependency injection to provide - a mock provider. This value will be initialized (once) in the constructor. - - - - - Backing store for the ApplicationName property. - - - - - Initializes a new instance of the class with the default - profile provider . - - - - - Initializes a new instance of the class with the supplied - Profile Provider. This is useful for injecting a mock profile object during unit testing. - - The to be used. - - - - Returns the provider's friendly name used during configuration. - - - - - Gets the provider's friendly description. - - - - - Gets the name of the driver or application for which settings are being managed. - This value is set during provider initialization and cannot be changed thereafter. - - - - - Initializes the ASCOM Settings Provider. - - Ignored. - Not used. - - This method is called by to initialize the settings provider. - Normally, this will set the provider's property to the assembly name - of the application. This is later used to determine the storage location of each of the settings. - However, for ASCOM purposes, we can't use the application name and we need to key off the - ASCOM DeviceID of the driver, so in ASCOM.SettingsProvider, the application name is set but never used. - - - - - Retrieves a collection of settings values from the underlying ASCOM Profile store. - - Not used. - The list of properties to be retrieved. - - Returns a collection of the retrieved property values as a - . - - - If any properties are absent in the underlying store, or if an error occurs while - retrieving them, then the property's default value is used. This will be the case - if the driver has never been registered with ASCOM. - - - - - Persists a collection of settings values to the underlying ASCOM Profile store. - - Context to which the settings will be saved - Settings to be saved - - - - Checks whether the driver is registered with ASCOM and, if not, registers it. - - - A reference to a object - that is used to query the ASCOM Device Profile. - - The full ASCOM DeviceID to be verified. - - - diff --git a/MeadeAutostar497/bin/Debug/ASCOM.Utilities.xml b/MeadeAutostar497/bin/Debug/ASCOM.Utilities.xml deleted file mode 100644 index 84210d5..0000000 --- a/MeadeAutostar497/bin/Debug/ASCOM.Utilities.xml +++ /dev/null @@ -1,3867 +0,0 @@ - - - - -ASCOM.Utilities - - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Class that represents a whole device Profile and which contains a set of methods for for manipulating its contents - - - This class is used by the Profile.GetProfile and Profile.SetProfile methods, do not confuse it with the Profile Class itself. - - - - - Add a new subkey - - Name of the subkey - - - - - Clears all contents - - - - - - Retrieve a registry value - - Name of the value - "SubKey in which the value is located - String value - - - - - Removes a complete subkey - - Subkey to be removed - - - - - Remove a value - - Name of the value to be removed - "SubKey containing the value - - - - - Set a value - - Name of the value to set - Value to be set - "Subkey continaining the value - Changing a value with this method does NOT change the underlying profile store, only the value in this class. - In order to persist the new value, the class should be written back to the profile store through Profile.SetProfile. - - - - Get the collection of values in this profile - - All values in the collection - SortedList(Of SubKey as String, SortedList(Of ValueName as String, Value as String)) - - - - - Retrieve a registry value from the driver top level subkey - - Name of the value - String value - - - - - Remove a value from the driver top level subkey - - Name of the value to be removed - - - - - Set a value in the driver top level subkey - - Name of the value to set - Value to be set - - - - - List of available conversion units for use in the Util.ConvertUnits method - - - - - The Chooser object provides a way for your application to let your user select the telescope to use. - - - Calling Chooser.Choose() causes a chooser window to appear, with a drop down selector list containing all of the registered Telescope - drivers, listed by the driver's friendly/display name. The user sees a list of telescope types and selects one. - Before the OK button will light up, however, the user must click the Setup button, causing the selected driver's setup dialog to appear - (it calls the driver's Telescope.SetupDialog() method). When the setup dialog is closed, the OK button will light and allow the user - to close the Chooser itself. - - The Choose() method returns the DriverID of the selected driver. Choose() allows you to optionally pass the DriverID of a "current" - driver (you probably save this in the registry), and the corresponding telescope type is pre-selected in the Chooser's list. In this case, - the OK button starts out enabled (lit-up); the assumption is that the pre-selected driver has already been configured. - - - - - Creates a new Chooser object - - - - - - Does the work of cleaning up objects used by Chooser - - True if called by the user, false if called by the system - You can't call this directly, use Dispose with no arguments instead. - - - - Cleans up and disposes objects used by Chooser - - - - - - The type of device for which the Chooser will select a driver. (String, default = "Telescope") - - The type of device for which the Chooser will select a driver. (String, default = "Telescope") - - The device type that has been set - Thrown on setting the device type to empty string - This property changes the "personality" of the Chooser, allowing it to be used to select a driver for any arbitrary - ASCOM device type. The default value for this is "Telescope", but it could be "Focuser", "Camera", etc. - This property is independent of the Profile object's DeviceType property. Setting Chooser's DeviceType - property doesn't set the DeviceType property in Profile, you must set that also when needed. - - - - - Select ASCOM driver to use including pre-selecting one in the dropdown list - - Driver to preselect in the chooser dialogue - Driver ID of chosen driver - Thrown if the Chooser.DeviceType property has not been set before Choose is called. - It must be set in order for Chooser to know which list of devices to display. - The supplied driver will be pre-selected in the Chooser's list when the chooser window is first opened. - - - - - Select ASCOM driver to use without pre-selecting in the dropdown list - - Driver ID of chosen driver - No driver will be pre-selected in the Chooser's list when the chooser window is first opened. - Thrown if the Chooser.DeviceType property has not been set before Choose is called. - It must be set in order for Chooser to know which list of devices to display. - This overload is not available through COM, please use "Choose(ByVal DriverProgID As String)" - with an empty string parameter to achieve this effect. - - - - - Class that returns a key and associated value - - This class is used by some Profile properties and methods and - compensates for the inability of .NET to return Generic classes to COM clients. - The properties and methods are: - Profile.RegisteredDevices, - Profile.SubKeys and - Profile.Values. - - - - COM visible default constructor - - - - - - Constructor that can set the key and value simultaneously. - - The Key element of a key value pair - The Value element of a key value pair - - - - - The Key element of a key value pair - - Key - Key as a string - - - - - The Value element of a key value pair. - - Value - Value as a string - - - - - Enum containing all the possible registry access rights values. The buit-in RegistryRights enum only has a partial collection - and often returns values such as -1 or large positive and negative integer values when converted to a string - The Flags attribute ensures that the ToString operation returns an aggregate list of discrete values - - - - - Common code for the new method - - If true, suppresses the exception normally thrown if a valid profile is not present - - - - - Base exception for the Utilities components - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message and inner exception - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when the profile is not found. This is internally trapped and should not appear externally to an application. - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an invalid value is passed to a Utilities component - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when a serial port method is already in progress and a second attempt is made to use the serial port. - - This exception is only thrown after 5 attempts, each with a 1 second timeout, have been made to - acquire the serial port. It may indicate that you have more than one thread attempting to access the serial - port and that you have not synchronised these within your application. The serial port can only handle - one transaction at a time e.g. Serial.Receive or Serial.Transmit etc. - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown if there is any problem in reading or writing the profile from or to the file system - - This is an ifrastructural exception indicatig that there is a problem at the file access layer - in the profile code. Possible underlying reasons are security access permissions, file system full and hardware failure. - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when a profile request is made for a driver that is not registered - - Drivers must be registered before other profile commands are used to manipulate their - values. - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an attempt is made to write to a protected part of the the Profile store that is - reserved for Platform use. An example is attempting to write to the the default value of a device driver - profile. This value is reserved for use by the Chooser to display the device description and is set by the - Profile.Register method. - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Exception thrown when an attempt is made to read a value that has not yet been set. - - - - - - - Create a new exception with message - - Message to be reported by the exception - - - - - Create a new exception with message - - Message to be reported by the exception - Exception to be reported as the inner exception - - - - - Serialise the exception - - Serialisation information - Serialisation context - - - - - Interface for KeyValuePair class - - This is a return type only used by a small number of the Profile.XXXCOM commands. Including - IProfile.RegisteredDevices, - IProfile.SubKeys and - IProfile.Values. - - - - Key member of a key value pair - - Key - Ky as string - - - - - Value memeber of a key value pair - - Value - Value as string - - - - - Interface to the TraceLogger component - - - - - - Writes the time and identifier to the log, leaving the line ready for further content through LogContinue and LogFinish - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - Use this to start a log line where you want to write further information on the line at a later time. - E.g. You might want to use this to record that an action has started and then append the word OK if all went well. - You would then end up with just one line to record the whole transaction even though you didn't know that it would be - successful when you started. If you just used LogMsg you would have ended up with two log lines, one showing - the start of the transaction and the next the outcome. - Will create a LOGISSUE message in the log if called before a line started by LogStart has been closed with LogFinish. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Appends further message to a line started by LogStart, appends a hex translation of the message to the line, does not terminate the line. - - The additional message to appear in the line - True to append a hex translation of the message at the end of the message - - This can be called multiple times to build up a complex log line if required. - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Closes a line started by LogStart with option to append a translation of the supplied message into HEX - - The final message to appear in the line - True to append a hex translation of the message at the end of the message - - - - - Closes a line started by LogStart with the supplied message and a hex translation of the message - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - The final message to terminate the line - True to append a hex translation of the message at the end of the message - - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Enables or disables logging to the file. - - True to enable logging - Boolean, current logging status (enabled/disabled). - If this property is false then calls to LogMsg, LogStart, LogContinue and LogFinish do nothing. If True, - supplied messages are written to the log file. - - - - Logs an issue, closing any open line and opening a continuation line if necessary after the - issue message. - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - Use this for reporting issues that you don't want to appear on a line already opened - with StartLine - - - - Sets the log filename and type if the constructor is called without parameters - - Fully qualified trace file name or null string to use automatic file naming (recommended) - String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11 - The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the - information of interest. - Note This command is only required if the tracelogger constructor is called with no - parameters. It is provided for use in COM clients that can not call constructors with parameters. - If you are writing a COM client then create the trace logger as: - - TL = New TraceLogger() - TL.SetLogFile("","TraceName") - - If you are writing a .NET client then you can achieve the same end in one call: - - TL = New TraceLogger("",TraceName") - - - - - - Insert a blank line into the log file - - - - - - Return the full filename of the log file being created - - Full filename of the log file - String filename - This call will return an empty string until the first line has been written to the log file - as the file is not created until required. - - - - Displays a message respecting carriage return and linefeed characters - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - The final message to terminate the line - - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Set or return the path to a directory in which the log file will be created - - Path to the log directory - String path - Introduced with Platform 6.4.If set, this path will be used instead of the the user's Documents directory default path. This must be Set before the first message Is logged. - - - - Set or return the width of the identifier field in the log message - - Width of the identifier field - Integer width - Introduced with Platform 6.4.If set, this width will be used instead of the default identifier field width. - - - - Addiitonal methods that are only visible to .NET clients and not to COM clients - - - - - - Appends further message to a line started by LogStart, does not terminate the line. - - The additional message to appear in the line - - This can be called multiple times to build up a complex log line if required. - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - This overload is not available through COM, please use - "LogContinue(ByVal Message As String, ByVal HexDump As Boolean)" - with HexDump set False to achieve this effect. - - - - - Closes a line started by LogStart with the supplied message - - The final message to terminate the line - - Can only be called once for each line started by LogStart. - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - This overload is not available through COM, please use - "LogFinish(ByVal Message As String, ByVal HexDump As Boolean)" - with HexDump set False to achieve this effect. - - - - - Logs a complete message in one call - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - - Use this for straightforward logging requrements. Writes all information in one command. - Will create a LOGISSUE message in the log if called before a line started by LogStart has been closed with LogFinish. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - This overload is not available through COM, please use - "LogMessage(ByVal Identifier As String, ByVal Message As String, ByVal HexDump As Boolean)" - with HexDump set False to achieve this effect. - - - - - Interface to the .NET Chooser component - - - - - - The type of device for which the Chooser will select a driver. (String, default = "Telescope") - - The type of device for which the Chooser will select a driver. (String, default = "Telescope") - - The device type that has been set - This property changes the "personality" of the Chooser, allowing it to be used to select a driver for any arbitrary - ASCOM device type. The default value for this is "Telescope", but it could be "Focuser", "Camera", etc. - This property is independent of the Profile object's DeviceType property. Setting Chooser's DeviceType - property doesn't set the DeviceType property in Profile, you must set that also when needed. - - - - - Select ASCOM driver to use including pre-selecting one in the dropdown list - - Driver to preselect in the chooser dialogue - Driver ID of chosen driver - The supplied driver will be pre-selected in the Chooser's list when the chooser window is first opened. - - - - - Addiitonal methods that are only visible to .NET clients and not to COM clients - - - - - - Select ASCOM driver to use without pre-selecting in the dropdown list - - Driver ID of chosen driver - No driver will be pre-selected in the Chooser's list when the chooser window is first opened. - This overload is not available through COM, please use "Choose(ByVal DriverProgID As String)" - with an empty string parameter to achieve this effect. - - - - - Interface to the .NET Util component - - - - - - Pauses for a given interval in milliseconds. - - The number of milliseconds to wait - Repeatedly puts the calling Win32 process to sleep, totally freezing it, for 10 milliseconds, - then pumps events so the script or program calling it will receive its normal flow of events, until the - pause interval elapses. If the pause interval is 20 milliseconds or less, the sleep interval is reduced - to 0, causing the calling Win32 process to give up control to the kernel scheduler and then immediately - become eligible for scheduling. - - - - Convert sexagesimal degrees to binary double-precision degrees - - The sexagesimal input string (degrees) - The double-precision binary value (degrees) represented by the sexagesimal input - The sexagesimal to real conversion methods such as this one are flexible enough to convert just - about anything that resembles sexagesimal. Thee way they operate is to first separate the input string - into numeric "tokens", strings consisting only of the numerals 0-9, plus and minus, and period. All other - characters are considered delimiters. Once the input string is parsed into tokens they are converted to - numerics. - If there are more than three numeric tokens, only the first three are considered, the remainder - are ignored. Left to right positionally, the tokens are assumed to represent units (degrees or hours), - minutes, and seconds. If only two tokens are present, they are assumed to be units and minutes, and if - only one token is present, it is assumed to be units. Any token can have a fractionsl part. Of course it - would not be normal (for example) for both the minutes and seconds parts to have fractional parts, but it - would be legal. So 00:30.5:30 would convert to 1.0 unit. - Note that plain units, for example 23.128734523 are acceptable to the method. - - - - - Convert sexagesimal hours to binary double-precision hours - - The sexagesimal input string (hours) - The double-precision binary value (hours) represented by the sexagesimal input - - The sexagesimal to real conversion methods such as this one are flexible enough to convert just about - anything that resembles sexagesimal. Thee way they operate is to first separate the input string into - numeric "tokens", strings consisting only of the numerals 0-9, plus and minus, and period. All other - characters are considered delimiters. Once the input string is parsed into tokens they are converted to - numerics. - - If there are more than three numeric tokens, only the first three are considered, the remainder - are ignored. Left to right positionally, the tokens are assumed to represent units (degrees or hours), - minutes, and seconds. If only two tokens are present, they are assumed to be units and minutes, and if - only one token is present, it is assumed to be units. Any token can have a fractionsl part. - - Of course it would not be normal (for example) for both the minutes and seconds parts to have - fractional parts, but it would be legal. So 00:30.5:30 would convert to 1.0 unit. Note that plain units, - for example 23.128734523 are acceptable to the method. - - - - - Convert sexagesimal hours to binary double-precision hours - - The sexagesimal input string (hours) - The double-precision binary value (hours) represented by the sexagesimal input - - The sexagesimal to real conversion methods such as this one are flexible enough to convert just about - anything that resembles sexagesimal. Thee way they operate is to first separate the input string into - numeric "tokens", strings consisting only of the numerals 0-9, plus and minus, and period. All other - characters are considered delimiters. Once the input string is parsed into tokens they are converted to - numerics. - - If there are more than three numeric tokens, only the first three are considered, the remainder - are ignored. Left to right positionally, the tokens are assumed to represent units (degrees or hours), - minutes, and seconds. If only two tokens are present, they are assumed to be units and minutes, and if - only one token is present, it is assumed to be units. Any token can have a fractionsl part. - - Of course it would not be normal (for example) for both the minutes and seconds parts to have - fractional parts, but it would be legal. So 00:30.5:30 would convert to 1.0 unit. Note that plain units, - for example 23.128734523 are acceptable to the method. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with specified second decimal places - - The degrees value to convert - The delimiter string separating degrees and minutes - The delimiter string to append to the minutes part - The delimiter string to append to the seconds part - The number of digits after the decimal point on the seconds part - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with specified number of second decimal places - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - The number of digits after the decimal point on the seconds part - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert degrees to sexagesimal degrees and minutes with the specified number of minute decimal places - - The degrees value to convert - The delimiter string separating degrees - The delimiter string to append to the minutes - The number of digits after the decimal point on the minutes part - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert hours to sexagesimal hours and minutes with supplied number of minute decimal places - - The hours value to convert - The delimiter string separating hours - The delimiter string to append to the minutes part - The number of digits after the decimal point on the minutes part - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with the specified number of second decimal places - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - The number of digits after the decimal point on the seconds part - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert degrees to sexagesimal hours and minutes with supplied number of minute decimal places - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string to append to the minutes part - The number of minutes decimal places - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - - - - - Current Platform version in m.n form - - Current Platform version in m.n form - - - - - Change the serial trace file (default C:\SerialTrace.txt) - - Serial trace file name including fully qualified path e.g. C:\SerialTrace.txt - Serial trace file name - Change this before setting the SerialTrace property to True. - - - - Enable/disable serial I/O tracing - - Boolean - Enable/disable serial I/O tracing - Enabled - disabled state of serial tracing - If you want to change the serial trace file path, change the SerialTraceFile property before setting this to True. - After setting this to True, serial trace info will be written to the last-set serial trace file. - - - - The name of the computer's time zone - - The name of the computer's time zone - This will be in the local language of the operating system, and will reflect any daylight/summer time that may be in - effect. - - - - UTC offset (hours) for the computer's clock - - UTC offset (hours) for the computer's clock - The offset is in hours, such that UTC = local + offset. The offset includes any daylight/summer time that may be - in effect. - - - - The current UTC Date - - The current UTC Date - - - - - Current Julian date - - Current Julian date - This is quantised to the second in the COM component but to a small decimal fraction in the .NET component - - - - Convert local-time Date to Julian date - - Date in local-time - Julian date - Julian dates are always in UTC - - - - Convert Julian date to local-time Date - - Julian date to convert - Date in local-time for the given Julian date - Julian dates are always in UTC - - - - Convert UTC Date to Julian date - - UTC date to convert - Julian date - Julian dates are always in UTC - - - - Convert Julian date to UTC Date - - Julian date - Date in UTC for the given Julian date - Julian dates are always in UTC - - - - Convert UTC Date to local-time Date - - Date in UTC - Date in local-time - - - - - Convert local-time Date to UTC Date - - Date in local-time - Date in UTC - - - - - Tests whether the current platform version is at least equal to the supplied major and minor - version numbers, returns false if this is not the case - - The required major version number - The required minor version number - True if the current platform version equals or exceeds the major and minor values provided - This function provides a simple way to test for a minimum platform level. - If for example, your application requires at least platform version 5.5 then you can use - code such as this to make a test and display information as appropriate. - Const Int requiredMajorVersion = 5; - Const Int requiredMinorVersion = 5; // Requires Platform version 5.5 - Bool isOK = ASCOM.Utilities.IsMinimumRequiredVersion(requiredMajorVersion, - requiredMinorVersion); - If (isOK) - // Do the install (or whatever) - Else - // Abort, throw exception, print an error. - - - - - Converts a safearray of strings to a collection that can be used in scripting. - This is required to do things such as handling the array of names returned by the FilterWheel.Names property. - This string array won't work in scripting languages. - - array of strings - Collection of strings - - - - - Converts a safearray of integers to a collection that can be used in scripting languages. - This is required to handle properties that are returned as safearrays of integers, for example FilterWheel.FocusOffsets - SafeArrays don't work in scripting languages. - - array of integers - Collection of Integers - - - - - Convert an array of .NET built-in types to an equivalent Variant arrray (array of .NET Objects) - - The array to convert to variant types - A Variant array - If the supplied array contains elements of an unsuported Type. - If the array rank is outside the range 1 to 5. - If the supplied object is not an array. - This function will primarily be of use to Scripting Language programmers who need to convert Camera and Video ImageArrays from their native types to Variant types. If this is not done, - the scripting language will throw a type mismatch exception when it receives, for example, Int32 element types instead of the expected Variant types. - A VBScript Camera usage example is: Image = UTIL.ArrayToVariantArray(CAMERA.ImageArray) This example assumes that the camera and utilities objects have already been created with CreateObject statements. - The supported .NET types are: - - Int16 - Int32 - UInt16 - UInt32 - UInt64 - Byte - SByte - Single - Double - Boolean - DateTime - String - - - The function supports arrays with 1 to 5 dimensions (Rank = 1 to 5). If the supplied array already contains elements of Variant type, it is returned as-is without any processing. - - - - Platform major version number - - Platform major version number - Integer version number - - - - - Platform minor version number - - Platform minor version number - Integer version number - - - - - Platform service pack number - - Platform service pack number - Integer service pack number - - - - - Platform build number - - Platform build number - Integer build number - - - - - Convert from one set of units to another - - Value to convert - Integer value from the Units enum indicating the value's current units - Integer value from the Units enum indicating the units to which the input value should be converted - Input value converted to the new specified units - - - - Calculate the dew point given the ambient temperature and humidity - - Humidity expressed in percent (0.0 .. 100.0) - Ambient temperature in degrees C - Dew point in degrees C - - - - Calculate the humidity given the ambient temperature and dew point - - Dewpoint in degrees C - Ambient temperature in degrees C - Humidity expressed in percent (0.0 .. 100.0) - - - - Convert atmospheric pressure from one altitude above mean sea level to another - - Measured pressure in hPa at the "From" altitude - "Altitude at which the input pressure was measured - Altitude to which the pressure is to be converted - Pressure in hPa at the "To" altitude - - - - Addiitonal methods that are only visible to .NET clients and not to COM clients - - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with default delimiters DD° MM' SS" - - The degrees value to convert - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use "Choose(ByVal DriverProgID As String)" - with an empty string parameter to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with with default minute and second delimiters MM' SS" - - The degrees value to convert - The delimiter string separating degrees and minutes - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with default second delimiter SS" - - The degrees value to convert - The delimiter string separating degrees and minutes - The delimiter string to append to the minutes part - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds - - The degrees value to convert - The delimiter string separating degrees and minutes - The delimiter string to append to the minutes part - The delimiter string to append to the seconds part - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with default delimiters HH:MM:SS - - The hours value to convert - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with default minutes and seconds delimters MM:SS - - The hours value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with default second delimiter of null string - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees and minutes with default delimiters DD° MM' - - The degrees value to convert - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToDM(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees and minutes with the default minutes delimeter MM' - - The degrees value to convert - The delimiter string separating degrees - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToDM(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees and minutes - - The degrees value to convert - The delimiter string separating degrees - The delimiter string to append to the minutes - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToDM(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours and minutes with default delimiters HH:MM - - The hours value to convert - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHM(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with an suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours and minutes with default minutes delimiter MM (null string) - - The hours value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHM(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with an suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours and minutes - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string to append to the minutes part - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHM(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with an suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with default delimters of HH:MM:SS - - The degrees value to convert - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with the default second and minute delimiters of MM:SS - - The degrees value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with the default second delimiter SS (null string) - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours and minutes with default delimiters HH:MM - - The degrees value to convert - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - This overload is not available through COM, please use - "DegreesToHM(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours and minutes with default minute delimiter MM (null string) - - The degrees value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - This overload is not available through COM, please use - "DegreesToHM(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours and minutes - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string to append to the minutes part - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - This overload is not available through COM, please use - "DegreesToHM(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Interface to the .NET Timer component - - - - - - The interval between Tick events when the timer is Enabled in milliseconds, (default = 1000) - - The interval between Tick events when the timer is Enabled (milliseconds, default = 1000) - The interval between Tick events when the timer is Enabled in milliseconds - - - - - Enable the timer tick events - - True means the timer is active and will deliver Tick events every Interval milliseconds. - Enabled state of timer tick events - - - - - Timer event interface - - - - - - Fired once per Interval when timer is Enabled. - - To sink this event in Visual Basic, declare the object variable using the WithEvents keyword. - - - - Interface to the .NET Profile component - - - - - - The type of ASCOM device for which profile data and registration services are provided - (String, default = "Telescope") - - String describing the type of device being accessed - String describing the type of device being accessed - - - - - List the device types registered in the Profile store - - List of registered device types - An ArrayList of device types - Use this to find which types of device are registered in the Profile store. - - - - List the devices of a given device type that are registered in the Profile store - - Type of devices to list - An ArrayList of KeyValuePair objects of installed devices and associated device descriptions - Throw if the supplied DeviceType is empty string or - null value. - - Use this to find all the registerd devices of a given type that are in the Profile store. - If a DeviceType is supplied, where no device of that type has been registered before on this system, - an empty list will be returned - Platform 6 Profile.RegisteredDevices was introduced in Platform 5.5 as a read only property that took - DeviceType as a parameter, which is legal syntax in Visual Basic .NET but is not interpreted correctly in C#. Consequently, - a breaking change has been introduced in Platform 6 that changes the property into a parameterised method which works correctly in - all .NET languages. - This change does not require you to alter your source code but you may need to recompile your application under Platform 6 - to ensure that there are no runtime errors. - - - - - Confirms whether a specific driver is registered ort unregistered in the profile store - - String reprsenting the device's ProgID - Boolean indicating registered or unregisteredstate of the supplied DriverID - - - - - Registers a supplied DriverID and associates a descriptive name with the device - - ProgID of the device to register - Descriptive name of the device - Does nothing if already registered, so safe to call on driver load. - - - - Remove all data for the given DriverID from the registry. - - ProgID of the device to unregister - This deletes the entire device profile tree, including the DriverID root key. - - - - Retrieve a string value from the profile using the supplied subkey for the given Driver ID - and variable name. Set and return the default value if the requested variable name has not yet been set. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Subkey from the profile root from which to read the value - Default value to be used if there is no value currently set - Retrieved variable value - - Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key. - Does not provide access to other registry data types such as binary and doubleword. - If a default value is supplied and the value is not already present in the profile store, - the default value will be set in the profile store and then returned as the value of the - DriverID/SubKey/Name. If the default value is set to null (C#) or Nothing (VB) then no value will - be set in the profile and an empty string will be returned as the value of the - DriverID/SubKey/Name. - - - - - Writes a string value to the profile using the supplied subkey for the given Driver ID and variable name. - - ProgID of the device to read from - Name of the variable whose value is retrieved - The string value to be written - Subkey from the profile root in which to write the value - - - - - Return a list of the (unnamed and named variables) under the given DriverID and subkey. - - ProgID of the device to read from - Subkey from the profile root from which to return values - An ArrayList of KeyValuePair objects. - The returned object contains entries for each value. For each entry, - the Key property is the value's name, and the Value property is the string value itself. Note that the unnamed (default) - value will be included if it has a value, even if the value is a blank string. The unnamed value will have its entry's - Key property set to an empty string. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Delete the value from the registry. Name may be an empty string for the unnamed value. Value will be deleted from the subkey supplied. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Subkey from the profile root in which to write the value - Specify "" to delete the unnamed value which is also known as the "default" value for a registry key. - - - - Create a registry key for the given DriverID. - - ProgID of the device to read from - Subkey from the profile root in which to write the value - If the SubKey argument contains a \ separated path, the intermediate keys will be created if needed. - - - - Return a list of the sub-keys under the given DriverID (for COM clients) - - ProgID of the device to read from - Subkey from the profile root in which to search for subkeys - An ArrayList of key-value pairs - The returned object (scripting.dictionary) contains entries for each sub-key. For each KeyValuePair in the list, - the Key property is the sub-key name, and the Value property is the value. The unnamed ("default") value for that key is also returned. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Delete a registry key for the given DriverID. SubKey may contain \ separated path to key to be deleted. - - ProgID of the device to read from - Subkey from the profile root in which to write the value - The sub-key and all data and keys beneath it are deleted. - - - - Read an entire device profile - - The ProgID of the device - Device profile encoded in XML - This method will be implemented in a future update - This is not implemented and returns a MethodNotImplemented exception, - it will be implemented in a future update. An XML schema will also be made available to support - this method. - - - - Set an entire device profile - - The ProgID of the device - An XML encoding of the profile - This method will be implemented in a future update - This is not implemented and returns a MethodNotImplemented exception, - it will be implemented in a future update. An XML schema will also be made available to support - this method. - - - - Addiitonal methods that are only visible to .NET clients and not to COM clients - - - - - - Migrate the ASCOM profile from registry to file store - - The platform version number of the current profile store beig migrated - - - - - Delete the value from the registry. Name may be an empty string for the unnamed value. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Specify "" to delete the unnamed value which is also known as the "default" value for a registry key. - This overload is not available through COM, please use - "DeleteValue(ByVal DriverID As String, ByVal Name As String, ByVal SubKey As String)" - with SubKey set to empty string achieve this effect. - - - - - Retrieve a string value from the profile for the given Driver ID and variable name - - ProgID of the device to read from - Name of the variable whose value is retrieved - Retrieved variable value - - Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key. - Does not provide access to other registry data types such as binary and doubleword. - This overload is not available through COM, please use - "GetValue(ByVal DriverID As String, ByVal Name As String, ByVal SubKey As String)" - with SubKey set to empty string achieve this effect. - - - - - Retrieve a string value from the profile using the supplied subkey for the given Driver ID and variable name. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Subkey from the profile root from which to read the value - Retrieved variable value - - Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key. - Does not provide access to other registry data types such as binary and doubleword. - - - - - Return a list of the sub-keys under the root of the given DriverID - - ProgID of the device to read from - An ArrayList of key-value pairs - The returned object (scripting.dictionary) contains entries for each sub-key. For each KeyValuePair in the list, - the Key property is the sub-key name, and the Value property is the value. The unnamed ("default") value for that key is also returned. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Return a list of the (unnamed and named variables) under the given DriverID. - - ProgID of the device to read from - An ArrayList of KeyValuePair objects. - The returned object contains entries for each value. For each entry, - the Key property is the value's name, and the Value property is the string value itself. Note that the unnamed (default) - value will be included if it has a value, even if the value is a blank string. The unnamed value will have its entry's - Key property set to an empty string. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Writes a string value to the profile using the given Driver ID and variable name. - - ProgID of the device to read from - Name of the variable whose value is retrieved - The string value to be written - - This overload is not available through COM, please use - "WriteValue(ByVal DriverID As String, ByVal Name As String, ByVal Value As String, ByVal SubKey As String)" - with SubKey set to empty string achieve this effect. - - - - - Read an entire device profile and return it as an XML encoded string - - The ProgID of the device - Device profile represented as a recusrive class - Returns a whole driver profile encoded as an XML string - - - - Set an entire device profile from an XML encoded string - - The ProgID of the device - A class representing the profile - Set a whole device Profile in one call using a recusrive ProfileKey class - - - - Interface to the .NET Serial component - - - - - - Returns a list of all available ASCOM serial ports with COMnnn ports sorted into ascending port number order - - String array of available serial ports - A string array of available serial ports - Update in platform 6.0.0.0 This call uses the .NET Framework to retrieve available - COM ports and this has been found not to return names of some USB serial adapters. Additional - code has been added to attempt to open all COM ports up to COM32. Any ports that can be - successfully opened are now returned alongside the ports returned by the .NET call. - If this new approach still does not detect a COM port it can be forced to appear in the list by adding its name - as a string entry in the ForceCOMPorts key of the ASCOM Profile. In the event that this scanning causes issues, a COM port can be - omitted from the scan by adding its name as a string entry in the IgnoreCOMPorts key of the ASCOM Profile. - - - - Gets or sets the number of data bits in each byte - - The number of data bits in each byte, default is 8 data bits - Integer number of data bits in each byte - The data bits value is less than 5 or more than 8 - - - - - Gets or sets the state of the DTR line - - The state of the DTR line, default is enabled - Boolean true/false indicating enabled/disabled - - - - - Gets or sets the type of parity check used over the serial link - - The type of parity check used over the serial link, default none - One of the Ports.Parity enumeration values - - - - - Gets or sets the number of stop bits used on the serial link - - the number of stop bits used on the serial link, default 1 - One of the Ports.StopBits enumeration values - - - - - Gets or sets the type of serial handshake used on the serial line - - The type of handshake used on the serial line, default is none - One of the Ports.Handshake enumeration values - Use of the RTS line can additionally be controlled by the property. - - - - Gets or sets the connected state of the ASCOM serial port. - - Connected state of the serial port. - True if the serial port is connected. - Set this property to True to connect to the serial (COM) port. You can read the property to determine if the object is connected. - - - - Gets or sets the number of the ASCOM serial port (Default is 1, giving COM1 as the serial port name). - - COM port number of the ASCOM serial port. - Integer, number of the ASCOM serial port - This works for serial port names of the form COMnnn. Use PortName if your COM port name does not fit the form COMnnn. - - - - The maximum time that the ASCOM serial port will wait for incoming receive data (seconds, default = 5) - - Integer, serial port timeout in seconds - Integer, serial port timeout in seconds. - The minimum delay timout that can be set through this command is 1 seconds. Use ReceiveTimeoutMs to set a timeout less than 1 second. - - - - The maximum time that the ASCOM serial port will wait for incoming receive data (milliseconds, default = 5000) - - Integer, serial port timeout in milli-seconds - Integer, serial port timeout in milli-seconds - If a timeout occurs, an IO timeout error is raised. See ReceiveTimeout for an alternate form - using the timeout in seconds. - - - - Sets the ASCOM serial port name as a string - - Serial port name to be used - Current serial port name - This property allows any serial port name to be used, even if it doesn't conform to a format of COMnnn - If the required port name is of the form COMnnn then Serial.Port=nnn and Serial.PortName="COMnnn" are - equivalent. - - - - Gets and sets the baud rate of the ASCOM serial port - - Port speed using the PorSpeed enum - Port speed using the PortSpeed enum - This is modelled on the COM component with possible values enumerated in the PortSpeed enum. - - - - Clears the ASCOM serial port receive and transmit buffers - - - - - - Transmits a string through the ASCOM serial port - - String to transmit - - - - - Transmit an array of binary bytes through the ASCOM serial port - - Byte array to transmit - - - - - Adds a message to the ASCOM serial trace file - - String identifying the module logging the message - Message text to be logged. - - This can be called regardless of whether logging is enabled - - - - - Receive at least one text character from the ASCOM serial port - - The characters received - This method reads all of the characters currently in the serial receive buffer. It will not return - unless it reads at least one character. A timeout will cause a TimeoutException to be raised. Use this for - text data, as it returns a String. - - - - Receive one binary byte from the ASCOM serial port - - The received byte - Use this for 8-bit (binary data). If a timeout occurs, a TimeoutException is raised. - - - - Receive exactly the given number of characters from the ASCOM serial port and return as a string - - The number of characters to return - String of length "Count" characters - If a timeout occurs a TimeoutException is raised. - - - - Receive exactly the given number of characters from the ASCOM serial port and return as a byte array - - The number of characters to return - Byte array of size "Count" elements - - If a timeout occurs, a TimeoutException is raised. - This function exists in the COM component but is not documented in the help file. - - - - - Receive characters from the ASCOM serial port until the given terminator string is seen - - The character string that indicates end of message - Received characters including the terminator string - If a timeout occurs, a TimeoutException is raised. - - - - Receive characters from the ASCOM serial port until the given terminator bytes are seen, return as a byte array - - Array of bytes that indicates end of message - Byte array of received characters - - If a timeout occurs, a TimeoutException is raised. - This function exists in the COM component but is not documented in the help file. - - - - - Gets or sets use of the RTS handshake control line - - The state of RTS line use, default is disabled (false) - Boolean true/false indicating RTS line use enabled/disabled - By default the serial component will not drive the RTS line. If RTSEnable is true, the RTS line will be raised before - characters are sent. Please also see the associated property. - - - - Update a COM registration assembly executable reference (mscoree.dll) from a relative path to an absolute path - - This is necessary to ensure that the mscoree.dll can be found when the SetSearchDirectories function has been called in an application e.g. by Inno installer post v5.5.9. - The COM class name and ClassID are determined from the supplied type definition. If the ClassID cannot be determined it is looked up through the COM registration registry entry through the class's ProgID - - - - - Add an event record to the ASCOM Windows event log - - Name of routine creating the event - Event message - Event severity - Id number - Initiating exception or Nothing - - - - - Returns true when the application is 32bit and running on a 64bit OS - - True when the application is 32bit and running on a 64bit OS - - - - - Determines whether the specified process is running under WOW64 i.e. is a 32bit application running on a 64bit OS. - - A handle to the process. The handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION access right. - For more information, see Process Security and Access Rights.Windows Server 2003 and Windows XP: - The handle must have the PROCESS_QUERY_INFORMATION access right. - A pointer to a value that is set to TRUE if the process is running under WOW64. If the process is running under - 32-bit Windows, the value is set to FALSE. If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE. - If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended - error information, call GetLastError. - - - - - Return a message when a driver is not compatible with the requested 32/64bit application type. Returns an empty string if the driver is compatible - - ProgID of the driver to be assessed - Application bitness for which application compatibility should be tested - String compatibility message or empty string if driver is fully compatible - - - - - - - - - - ASCOM Scope Driver Helper Registry Profile Object - - - This object provides facilities for registering ASCOM drivers with the Chooser, and for storing - persistence information in a shared area of the file system. - Please code to the IProfile interface - - - - - Create a new Profile object - - - - - - Create a new profile object ignoring profile not found exceptions if generated - - Ignore ProfileNotFound exceptions - - - - - Disposes of resources used by the profile object - called by IDisposable interface - - - - - - - Disposes of resources used by the profile object - - - - - - The type of ASCOM device for which profile data and registration services are provided - (String, default = "Telescope") - - String describing the type of device being accessed - String describing the type of device being accessed - Thrown on setting the device type to empty string - - - - - List the device types registered in the Profile store - - List of registered device types - A sorted arraylist of device type strings - Use this to find the types of device that are registered in the Profile store. - Device types are returned without the suffix " Devices" that is used in key names within the - profile store; this allows direct use of returned device types inside For Each loops as shown in - the Profile code example. - - - - - List the devices of a given device type that are registered in the Profile store - - Type of devices to list - An ArrayList of installed devices and associated device descriptions - Throw if the supplied DeviceType is empty string or - null value. - - Use this to find all the registerd devices of a given type that are in the Profile store - If a DeviceType is supplied, where no device of that type has been registered before on this system, - an empty list will be returned - - - - - Confirms whether a specific driver is registered ort unregistered in the profile store - - String reprsenting the device's ProgID - Boolean indicating registered or unregisteredstate of the supplied DriverID - - - - - Registers a supplied DriverID and associates a descriptive name with the device - - ProgID of the device to register - Descriptive name of the device - Does nothing if already registered, so safe to call on driver load. - - - - Remove all data for the given DriverID from the registry. - - ProgID of the device to unregister - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - This deletes the entire device profile tree, including the DriverID root key. - Unregister must only be called if the driver has already been registered. If you are not sure - use the IsRegistered function to check the status and only unregister if the driver is registered. - - - - - Retrieve a string value from the profile using the supplied subkey for the given Driver ID - and variable name. Set and return the default value if the requested variable name has not yet been set. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Subkey from the profile root from which to read the value - Default value to be used if there is no value currently set - Retrieved variable value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - - Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key. - Does not provide access to other registry data types such as binary and doubleword. - If a default value is supplied and the value is not already present in the profile store, - the default value will be set in the profile store and then returned as the value of the - DriverID/SubKey/Name. If the default value is set to null (C#) or Nothing (VB) then no value will - be set in the profile and an empty string will be returned as the value of the - DriverID/SubKey/Name. - - - - - Writes a string value to the profile using the supplied subkey for the given Driver ID and variable name. - - ProgID of the device to read from - Name of the variable whose value is retrieved - The string value to be written - Subkey from the profile root in which to write the value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - Thrown if Name and SubKey are both empty strings. This - value is reserved for the device description as it appears in Chooser and is set by Profile.Register - - - - - Return a list of the (unnamed and named variables) under the given DriverID and subkey. - - ProgID of the device to read from - Subkey from the profile root in which to write the value - An ArrayList of KeyValuePairs - The returned object contains entries for each value. For each entry, - the Key property is the value's name, and the Value property is the string value itself. Note that the unnamed (default) - value will be included if it has a value, even if the value is a blank string. The unnamed value will have its entry's - Key property set to an empty string. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Delete the value from the registry. Name may be an empty string for the unnamed value. Value will be deleted from the subkey supplied. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Subkey from the profile root in which to write the value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - Specify "" to delete the unnamed value which is also known as the "default" value for a registry key. - - - - Create a registry key for the given DriverID. - - ProgID of the device to read from - Subkey from the profile root in which to write the value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - If the SubKey argument contains a \ separated path, the intermediate keys will be created if needed. - - - - Return a list of the sub-keys under the given DriverID - - ProgID of the device to read from - Subkey from the profile root in which to write the value - An ArrayList of key-value pairs - The returned object contains entries for each sub-key. For each KeyValuePair in the list, - the Key property is the sub-key name, and the Value property is the value. The unnamed ("default") value for that key is also returned. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Delete a registry key for the given DriverID. SubKey may contain \ separated path to key to be deleted. - - ProgID of the device to read from - Subkey from the profile root in which to write the value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - The sub-key and all data and keys beneath it are deleted. - - - - Read an entire device profile and return it as an XML encoded string - - The ProgID of the device - Device profile encoded in XML - Please see the code examples in this help file for a description of how to use this method. -The format of the returned XML is shown below. The SubKey element repeats for as many subkeys as are present while the Value element with its - Name and Data memebers repeats as often as there are values in a particular subkey. -
    - <?xml version="1.0" encoding="utf-8" ?> 
    - <ASCOMProfileAL>
    - <SubKey>
    - <SubKeyName /> 
    - <DefaultValue>Default text value</DefaultValue> 
    -    <Values>
    -      <Value>
    -        <Name>Valuename 1</Name> 
    -        <Data>False</Data> 
    -      </Value>
    -      <Value>
    -        <Name>Valuename 2</Name> 
    -        <Data>True</Data> 
    -      </Value>
    -    </Values>
    -  </SubKey>
    -  <SubKey>
    -    <SubKeyName>Settings</SubKeyName> 
    -    <DefaultValue /> 
    -    <Values>
    -      <Value>
    -        <Name>Valuename 3</Name> 
    -        <Data>1</Data> 
    -      </Value>
    -      <Value>
    -        <Name>Valuename 4</Name> 
    -        <Data>53.4217</Data> 
    -      </Value>
    -    </Values>
    -  </SubKey>
    - </ASCOMProfileAL>
    - 
    -
    - - - Set an entire device profile from an XML encoded string - - The ProgID of the device - An XML encoding of the profile - Please see the code examples in this help file for a description of how to use this method. See GetProfileXML for a - description of the XML format. - - - - Read an entire device profile and return it as an ASCOMProfile class instance - - The ProgID of the device - Device profile represented as a recusrive class - Please see the code examples in this help file for a description of how to use this method. - - - - Set an entire device profile from an ASCOMProfile class instance - - The ProgID of the device - A class representing the profile - Please see the code examples in this help file for a description of how to use this method. - - - - Migrate the ASCOM profile from registry to file store - - The platform version number of the current profile store beig migrated - - - - - Delete the value from the registry. Name may be an empty string for the unnamed value. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - Specify "" to delete the unnamed value which is also known as the "default" value for a registry key. - This overload is not available through COM, please use - "DeleteValue(ByVal DriverID As String, ByVal Name As String, ByVal SubKey As String)" - with SubKey set to empty string achieve this effect. - - - - - Retrieve a string value from the profile for the given Driver ID and variable name - - ProgID of the device to read from - Name of the variable whose value is retrieved - Retrieved variable value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - - Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key. - Does not provide access to other registry data types such as binary and doubleword. - This overload is not available through COM, please use - "GetValue(ByVal DriverID As String, ByVal Name As String, ByVal SubKey As String)" - with SubKey set to empty string achieve this effect. - - - - - Retrieve a string value from the profile using the supplied subkey for the given Driver ID and variable name. - - ProgID of the device to read from - Name of the variable whose value is retrieved - Subkey from the profile root from which to read the value - Retrieved variable value - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - - Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key. - Does not provide access to other registry data types such as binary and doubleword. - - - - - Return a list of the sub-keys under the root of the given DriverID - - ProgID of the device to read from - An ArrayList of key-value pairs - The returned object contains entries for each sub-key. For each KeyValuePair in the list, - the Key property is the sub-key name, and the Value property is the value. The unnamed ("default") value for that key is also returned. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Return a list of the (unnamed and named variables) under the root of the given DriverID. - - ProgID of the device to read from - An ArrayList of KeyValuePairs - The returned object contains entries for each value. For each entry, - the Key property is the value's name, and the Value property is the string value itself. Note that the unnamed (default) - value will be included if it has a value, even if the value is a blank string. The unnamed value will have its entry's - Key property set to an empty string. - The KeyValuePair objects are instances of the KeyValuePair class - - - - - Writes a string value to the profile using the given Driver ID and variable name. - - ProgID of the device to read from - Name of the variable whose value is retrieved - The string value to be written - Thrown if DriverID is an empty string. - Thrown if the driver is not registered, - - This overload is not available through COM, please use - "WriteValue(ByVal DriverID As String, ByVal Name As String, ByVal Value As String, ByVal SubKey As String)" - with SubKey set to empty string achieve this effect. - - - - - Enumeration of serial port speeds for use with the Serial port - - This contains an additional speed 230,400 baud that the COM component doesn't support. - - - - Number of stop bits appended to a serial character - - - This enumeration specifies the number of stop bits to use. Stop bits separate each unit of data - on an asynchronous serial connection. - The None option is not supported. Setting the StopBits property to None raises an - ArgumentOutOfRangeException. - - - - - No stop bits are used. This value is not supported. Setting the StopBits property to None raises an ArgumentOutOfRangeException. - - - - - - One stop bit is used. - - - - - - 1.5 stop bits are used. - - - - - - Two stop bits are used. - - - - - - The type of parity used on the serial port - - - Parity is an error-checking procedure in which the number of 1s must always be the - same — either even or odd — for each group of bits that is transmitted without error. - Parity is one of the parameters that must be - agreed upon by both sending and receiving parties before transmission can take place. - - - - - Sets the parity bit so that the count of bits set is an even number. - - - - - - Leaves the parity bit set to 1. - - - - - - No parity check occurs. - - - - - - Sets the parity bit so that the count of bits set is an odd number. - - - - - - Leaves the parity bit set to 0. - - - - - - The control protocol used by the serial port - - - - - - No control is used for the handshake. - - - - - - Request-to-Send (RTS) hardware flow control is used. RTS signals that data is available - for transmission. If the input buffer becomes full, the RTS line will be set to false. - The RTS line will be set to true when more room becomes available in the input buffer. - - - - - - Both the Request-to-Send (RTS) hardware control and the XON/XOFF software controls are used. - - - - - - The XON/XOFF software control protocol is used. The XOFF control is sent to stop - the transmission of data. The XON control is sent to resume the transmission. - These software controls are used instead of Request to Send (RTS) and Clear to Send (CTS) - hardware controls. - - - - - - Creates a .NET serial port and provides a simple set of commands to use it. - - This object provides an easy to use interface to a serial (COM) port. - It provides ASCII and binary I/O with controllable timeout. - The interface is callable from any .NET client. - The platform allows you to control use of the DTR and RTS/CTS lines for a particular - COM port and to remove or force listing of individual COM ports in the AvailableComPorts - list through configuration in the ASCOM Profile. - Please see the Tools and Features section of this help file for further details. - - - Example of how to create and use an ASCOM serial port. - - - - - - Disposes of resources used by the profile object - - - - - - Disposes of resources used by the profile object - called by IDisposable interface - - - - - - - Gets or sets the number of data bits in each byte - - The number of data bits in each byte, default is 8 data bits - Integer number of data bits in each byte - The data bits value is less than 5 or more than 8 - - - - - Gets or sets the state of the DTR line - - The state of the DTR line, default is enabled - Boolean true/false indicating enabled/disabled - - - - - Gets or sets use of the RTS handshake control line - - The state of RTS line use, default is disabled (false) - Boolean true/false indicating RTS line use enabled/disabled - By default the serial component will not drive the RTS line. If RTSEnable is true, the RTS line will be raised before - characters are sent. Please also see the associated property. - - - - Gets or sets the type of serial handshake used on the serial link - - The type of flow control handshake used on the serial line, default is none - One of the SerialHandshake enumeration values - Use of the RTS line can additionally be controlled by the property. - - - - Gets or sets the type of parity check used over the serial link - - The type of parity check used over the serial link, default none - One of the SerialParity enumeration values - - - - - Gets or sets the number of stop bits used on the serial link - - the number of stop bits used on the serial link, default 1 - One of the SerialStopBits enumeration values - - - - - Gets or sets the connected state of the ASCOM serial port. - - Connected state of the serial port. - True if the serial port is connected. - Set this property to True to connect to the serial (COM) port. You can read the property to determine if the object is connected. - Throws this exception if the requested - COM port does not exist. - - - - Gets or sets the number of the ASCOM serial port (Default is 1, giving COM1 as the serial port name). - - COM port number of the ASCOM serial port. - Integer, number of the ASCOM serial port - This works for serial port names of the form COMnnn. Use PortName if your COM port name does not fit the form COMnnn. - - - - The maximum time that the ASCOM serial port will wait for incoming receive data (seconds, default = 5) - - Integer, serial port timeout in seconds - Integer, serial port timeout in seconds. - The minimum delay timout that can be set through this command is 1 seconds. Use ReceiveTimeoutMs to set a timeout less than 1 second. - Thrown when value is invalid (outside the range 1 to 120 seconds.) - - - - The maximum time that the ASCOM serial port will wait for incoming receive data (milliseconds, default = 5000) - - Integer, serial port timeout in milli-seconds - Integer, serial port timeout in milli-seconds - If a timeout occurs, an IO timeout error is raised. See ReceiveTimeout for an alternate form - using the timeout in seconds. - Thrown when value is invalid. - - - - Gets and sets the baud rate of the ASCOM serial port - - Port speed using the PortSpeed enum - Port speed as a SerialSpeed enum value - This is modelled on the COM component with possible values enumerated in the PortSpeed enum. - - - - Clears the ASCOM serial port receive and transmit buffers - - Thrown when unable to acquire the serial port - - - - - Receive at least one text character from the ASCOM serial port - - The characters received - Thrown when a receive timeout occurs. - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - This method reads all of the characters currently in the serial receive buffer. It will not return - unless it reads at least one character. A timeout will cause a TimeoutException to be raised. Use this for - text data, as it returns a String. - - - - Receive one binary byte from the ASCOM serial port - - The received byte - Thrown when a receive timeout occurs. - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - Use this for 8-bit (binary data). If a timeout occurs, a TimeoutException is raised. - - - - Receive exactly the given number of characters from the ASCOM serial port and return as a string - - The number of characters to return - String of length "Count" characters - Thrown when a receive timeout occurs. - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - If a timeout occurs a TimeoutException is raised. - - - - Receive exactly the given number of characters from the ASCOM serial port and return as a byte array - - The number of characters to return - Byte array of size "Count" elements - Thrown when a receive timeout occurs. - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - - If a timeout occurs, a TimeoutException is raised. - This function exists in the COM component but is not documented in the help file. - - - - - Receive characters from the ASCOM serial port until the given terminator string is seen - - The character string that indicates end of message - Received characters including the terminator string - Thrown when a receive timeout occurs. - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - If a timeout occurs, a TimeoutException is raised. - - - - Receive characters from the ASCOM serial port until the given terminator bytes are seen, return as a byte array - - Array of bytes that indicates end of message - Byte array of received characters - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - - If a timeout occurs, a TimeoutException is raised. - This function exists in the COM component but is not documented in the help file. - - - - - Transmits a string through the ASCOM serial port - - String to transmit - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - - - - - Transmit an array of binary bytes through the ASCOM serial port - - Byte array to transmit - Thrown when unable to acquire the serial port - Thrown when this command is used before setting Connect = True - - - - - Sets the ASCOM serial port name as a string - - Serial port name to be used - Current serial port name - This property allows any serial port name to be used, even if it doesn't conform to a format of COMnnn - If the required port name is of the form COMnnn then Serial.Port=nnn and Serial.PortName="COMnnn" are - equivalent. - - - - Returns a list of all available ASCOM serial ports with COMnnn ports sorted into ascending port number order - - String array of available serial ports - A string array of available serial ports - Update in platform 6.0.0.0 This call uses the .NET Framework to retrieve available - COM ports and this has been found not to return names of some USB serial adapters. Additional - code has been added to attempt to open all COM ports up to COM32. Any ports that can be - successfully opened are now returned alongside the ports returned by the .NET call. - If this new approach still does not detect a COM port it can be forced to appear in the list by adding its name - as a string entry in the ForceCOMPorts key of the ASCOM Profile. In the event that this scanning causes issues, a COM port can be - omitted from the scan by adding its name as a string entry in the IgnoreCOMPorts key of the ASCOM Profile. - - - - Adds a message to the ASCOM serial trace file - - String identifying the module logging the message - Message text to be logged. - - This can be called regardless of whether logging is enabled - - - - - Translates a supplied string into hex characters - - The string to convert - A string with each character represented as [xx] - - - - - OS level blocking wait for an event - - The triggering even't handle - Length of time to wait before timing out - Status, 0 = success - - - - - Sleep the calling thread until the worker thread has completed - - ThreadData class holding required inputs, outputs and thread management information - - - - - Worker thread data - - - - - - Initialises a new ThreadData synchronisation object - - - - - - Signals that this thread has completed its work - - - - - - Provides a repeating timer with associated tick event. - - - The interval resolution is about 20ms.If you need beter than this, you could use the WaitForMilliseconds - method to create your own solution. - You can create multiple instances of this object. When enabled, the Timer delivers Tick events periodically - (determined by setting the Interval property). - This component is now considered obsolete for use in .NET clients and drivers. It is reliable under almost - all circumstances but there are some environments, noteably console and some scripted applications, where it fails to fire. - The Platform 6 component improves performance over the Platform 5 component in this respect and can be further tuned - for particular applications by placing an entry in the ForceSystemTimer Profile key. - For .NET applications, use of System.Timers.Timer is recommended but atention must be paid to getting threading correct - when using this control. The Windows.Forms.Timer control is not an improvement over the ASCOM timer which is based upon it. - Developers using non .NET languages are advised to use timers provided as part of their development environment, only falling - back to the ASCOM Timer if no viable alternative can be found. - - - - - Timer tick event handler - - - - - - Fired once per Interval when timer is Enabled. - - To sink this event in Visual Basic, declare the object variable using the WithEvents keyword. - - - - Create a new timer component - - - - - - Disposes of resources used by the profile object - called by IDisposable interface - - - - - - - Disposes of resources used by the profile object - - - - - - The interval between Tick events when the timer is Enabled in milliseconds, (default = 1000) - - The interval between Tick events when the timer is Enabled (milliseconds, default = 1000) - The interval between Tick events when the timer is Enabled in milliseconds - - - - - Enable the timer tick events - - True means the timer is active and will deliver Tick events every Interval milliseconds. - Enabled state of timer tick events - - - - - Timer event handler - - Raises the Tick event - - - - Creates a log file for a driver or application. Uses a similar file name and internal format to the serial logger. Multiple logs can be created simultaneously if needed. - - -In automatic mode the file will be stored in an ASCOM folder within XP's My Documents folder or equivalent places - in other operating systems. Within the ASCOM folder will be a folder named Logs yyyy-mm-dd where yyyy, mm and dd are - today's year, month and day numbers. The trace file will appear within the day folder with the name - ASCOM.Identifier.hhmm.ssffff where hh, mm, ss and ffff are the current hour, minute, second and fraction of second - numbers at the time of file creation. - - Within the file the format of each line is hh:mm:ss.fff Identifier Message where hh, mm, ss and fff are the hour, minute, second - and fractional second at the time that the message was logged, Identifier is the supplied identifier (usually the subroutine, - function, property or method from which the message is sent) and Message is the message to be logged. - - - - - Creates a new TraceLogger instance - - The LogFileType is used in the file name to allow you to quickly identify which of - several logs contains the information of interest. - This call enables automatic logging and sets the filetype to "Default". - - - - Creates a new TraceLogger instance and initialises filename and type - - Fully qualified trace file name or null string to use automatic file naming (recommended) - String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11 - The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the information of interest. - - - - Create and enable a new TraceLogger instance with automatic naming based on the supplied log file type - - String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11 - The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the information of interest. - - - - Disposes of the TraceLogger object - - True if being disposed by the application, False if disposed by the finalizer. - - - - - Disposes of the TraceLogger object - - - - - - Finalizes the TraceLogger object - - - - - - Logs an issue, closing any open line and opening a continuation line if necessary after the - issue message. - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - Use this for reporting issues that you don't want to appear on a line already opened - with StartLine - - - - Insert a blank line into the log file - - - - - - Logs a complete message in one call, including a hex translation of the message - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - True to append a hex translation of the message at the end of the message - - Use this for straightforward logging requrements. Writes all information in one command. - Will create a LOGISSUE message in the log if called before a line started by LogStart has been closed with LogFinish. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Displays a message respecting carriage return and linefeed characters - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - The final message to terminate the line - - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Writes the time and identifier to the log, leaving the line ready for further content through LogContinue and LogFinish - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - Use this to start a log line where you want to write further information on the line at a later time. - E.g. You might want to use this to record that an action has started and then append the word OK if all went well. - You would then end up with just one line to record the whole transaction even though you didn't know that it would be - successful when you started. If you just used LogMsg you would have ended up with two log lines, one showing - the start of the transaction and the next the outcome. - Will create a LOGISSUE message in the log if called before a line started by LogStart has been closed with LogFinish. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Appends further message to a line started by LogStart, appends a hex translation of the message to the line, does not terminate the line. - - The additional message to appear in the line - True to append a hex translation of the message at the end of the message - - This can be called multiple times to build up a complex log line if required. - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Closes a line started by LogStart with the supplied message and a hex translation of the message - - The final message to terminate the line - True to append a hex translation of the message at the end of the message - - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - - - - - Enables or disables logging to the file. - - True to enable logging - Boolean, current logging status (enabled/disabled). - If this property is false then calls to LogMsg, LogStart, LogContinue and LogFinish do nothing. If True, - supplied messages are written to the log file. - - - - Sets the log filename and type if the constructor is called without parameters - - Fully qualified trace file name or null string to use automatic file naming (recommended) - String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11 - The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the - information of interest. - Note This command is only required if the tracelogger constructor is called with no - parameters. It is provided for use in COM clients that can not call constructors with parameters. - If you are writing a COM client then create the trace logger as: - - TL = New TraceLogger() - TL.SetLogFile("","TraceName") - - If you are writing a .NET client then you can achieve the same end in one call: - - TL = New TraceLogger("",TraceName") - - - - - - Return the full filename of the log file being created - - Full filename of the log file - String filename - This call will return an empty string until the first line has been written to the log file - as the file is not created until required. - - - - Set or return the path to a directory in which the log file will be created - - String path - Introduced with Platform 6.4.If set, this path will be used instead of the the user's Documents directory default path. This must be Set before the first message Is logged. - - - - Set or return the width of the identifier field in the log message - - Width of the identifier field - Integer width - Introduced with Platform 6.4.If set, this width will be used instead of the default identifier field width. - - - - Logs a complete message in one call - - Identifies the meaning of the the message e.g. name of modeule or method logging the message. - Message to log - - Use this for straightforward logging requrements. Writes all information in one command. - Will create a LOGISSUE message in the log if called before a line started by LogStart has been closed with LogFinish. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - This overload is not available through COM, please use - "LogMessage(ByVal Identifier As String, ByVal Message As String, ByVal HexDump As Boolean)" - with HexDump set False to achieve this effect. - - - - - Appends further message to a line started by LogStart, does not terminate the line. - - The additional message to appear in the line - - This can be called multiple times to build up a complex log line if required. - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - This overload is not available through COM, please use - "LogContinue(ByVal Message As String, ByVal HexDump As Boolean)" - with HexDump set False to achieve this effect. - - - - - Closes a line started by LogStart with the supplied message - - The final message to terminate the line - - Can only be called once for each line started by LogStart. - Will create a LOGISSUE message in the log if called before a line has been started with LogStart. - Posible reasons for this are exceptions causing the normal flow of code to be bypassed or logic errors. - This overload is not available through COM, please use - "LogFinish(ByVal Message As String, ByVal HexDump As Boolean)" - with HexDump set False to achieve this effect. - - - - - Provides a set of utility functions for ASCOM clients and drivers - - - - - - Disposes of resources used by the profile object - called by IDisposable interface - - - - - - - Disposes of resources used by the profile object - - - - - - Pauses for a given interval in milliseconds. - - The number of milliseconds to wait - Repeatedly puts the calling Win32 process to sleep, totally freezing it, for 10 milliseconds, - then pumps events so the script or program calling it will receive its normal flow of events, until the - pause interval elapses. If the pause interval is 20 milliseconds or less, the sleep interval is reduced - to 0, causing the calling Win32 process to give up control to the kernel scheduler and then immediately - become eligible for scheduling. - - - - Convert sexagesimal degrees to binary double-precision degrees - - The sexagesimal input string (degrees) - The double-precision binary value (degrees) represented by the sexagesimal input - The sexagesimal to real conversion methods such as this one are flexible enough to convert just - about anything that resembles sexagesimal. Thee way they operate is to first separate the input string - into numeric "tokens", strings consisting only of the numerals 0-9, plus and minus, and period. All other - characters are considered delimiters. Once the input string is parsed into tokens they are converted to - numerics. - If there are more than three numeric tokens, only the first three are considered, the remainder - are ignored. Left to right positionally, the tokens are assumed to represent units (degrees or hours), - minutes, and seconds. If only two tokens are present, they are assumed to be units and minutes, and if - only one token is present, it is assumed to be units. Any token can have a fractionsl part. Of course it - would not be normal (for example) for both the minutes and seconds parts to have fractional parts, but it - would be legal. So 00:30.5:30 would convert to 1.0 unit. - Note that plain units, for example 23.128734523 are acceptable to the method. - - - - - Convert sexagesimal hours to binary double-precision hours - - The sexagesimal input string (hours) - The double-precision binary value (hours) represented by the sexagesimal input - - The sexagesimal to real conversion methods such as this one are flexible enough to convert just about - anything that resembles sexagesimal. Thee way they operate is to first separate the input string into - numeric "tokens", strings consisting only of the numerals 0-9, plus and minus, and period. All other - characters are considered delimiters. Once the input string is parsed into tokens they are converted to - numerics. - - If there are more than three numeric tokens, only the first three are considered, the remainder - are ignored. Left to right positionally, the tokens are assumed to represent units (degrees or hours), - minutes, and seconds. If only two tokens are present, they are assumed to be units and minutes, and if - only one token is present, it is assumed to be units. Any token can have a fractionsl part. - - Of course it would not be normal (for example) for both the minutes and seconds parts to have - fractional parts, but it would be legal. So 00:30.5:30 would convert to 1.0 unit. Note that plain units, - for example 23.128734523 are acceptable to the method. - - - - - Convert sexagesimal hours to binary double-precision hours - - The sexagesimal input string (hours) - The double-precision binary value (hours) represented by the sexagesimal input - - The sexagesimal to real conversion methods such as this one are flexible enough to convert just about - anything that resembles sexagesimal. Thee way they operate is to first separate the input string into - numeric "tokens", strings consisting only of the numerals 0-9, plus and minus, and period. All other - characters are considered delimiters. Once the input string is parsed into tokens they are converted to - numerics. - - If there are more than three numeric tokens, only the first three are considered, the remainder - are ignored. Left to right positionally, the tokens are assumed to represent units (degrees or hours), - minutes, and seconds. If only two tokens are present, they are assumed to be units and minutes, and if - only one token is present, it is assumed to be units. Any token can have a fractionsl part. - - Of course it would not be normal (for example) for both the minutes and seconds parts to have - fractional parts, but it would be legal. So 00:30.5:30 would convert to 1.0 unit. Note that plain units, - for example 23.128734523 are acceptable to the method. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with default delimiters DD° MM' SS" - - The degrees value to convert - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with with default minute and second delimiters MM' SS" - - The degrees value to convert - The delimiter string separating degrees and minutes - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with default second delimiter SS" - - The degrees value to convert - The delimiter string separating degrees and minutes - The delimiter string to append to the minutes part - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds - - The degrees value to convert - The delimiter string separating degrees and minutes - The delimiter string to append to the minutes part - The delimiter string to append to the seconds part - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - This overload is not available through COM, please use - "DegreesToDMS(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal SecDelim As String)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees, minutes and seconds with specified second decimal places - - The degrees value to convert - The delimiter string separating degrees and minutes - The delimiter string to append to the minutes part - The delimiter string to append to the seconds part - The number of digits after the decimal point on the seconds part - Sexagesimal representation of degrees input value, degrees, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single - characters. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with default delimiters HH:MM:SS - - The hours value to convert - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with default minutes and seconds delimters MM:SS - - The hours value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with default second delimiter of null string - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHMS(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours, minutes, and seconds with specified number of second decimal places - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - The number of digits after the decimal point on the seconds part - Sexagesimal representation of hours input value, hours, minutes and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with default delimters of HH:MM:SS - - The degrees value to convert - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with the default second and minute delimiters of MM:SS - - The degrees value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with the default second delimiter SS (null string) - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToHMS(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal SecDelim As String, ByVal SecDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours, minutes, and seconds with the specified number of second decimal places - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string separating minutes and seconds - The delimiter string to append to the seconds part - The number of digits after the decimal point on the seconds part - Sexagesimal representation of degrees input value, as hours, minutes, and seconds - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert degrees to sexagesimal degrees and minutes with default delimiters DD° MM' - - The degrees value to convert - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToDM(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees and minutes with the default minutes delimeter MM' - - The degrees value to convert - The delimiter string separating degrees - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToDM(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees and minutes - - The degrees value to convert - The delimiter string separating degrees - The delimiter string to append to the minutes - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "DegreesToDM(ByVal Degrees As Double, ByVal DegDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal degrees and minutes with the specified number of minute decimal places - - The degrees value to convert - The delimiter string separating degrees - The delimiter string to append to the minutes - The number of digits after the decimal point on the minutes part - Sexagesimal representation of degrees input value, as degrees and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert hours to sexagesimal hours and minutes with default delimiters HH:MM - - The hours value to convert - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHM(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with an suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours and minutes with default minutes delimiter MM (null string) - - The hours value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHM(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with an suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours and minutes - - The hours value to convert - The delimiter string separating hours and minutes - The delimiter string to append to the minutes part - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - This overload is not available through COM, please use - "HoursToHM(ByVal Hours As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with an suitable parameters to achieve this effect. - - - - - Convert hours to sexagesimal hours and minutes with supplied number of minute decimal places - - The hours value to convert - The delimiter string separating hours - The delimiter string to append to the minutes part - The number of digits after the decimal point on the minutes part - Sexagesimal representation of hours input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. - - - - - Convert degrees to sexagesimal hours and minutes with default delimiters HH:MM - - The degrees value to convert - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - This overload is not available through COM, please use - "DegreesToHM(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours and minutes with default minute delimiter MM (null string) - - The degrees value to convert - The delimiter string separating hours and minutes - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - This overload is not available through COM, please use - "DegreesToHM(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours and minutes - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string to append to the minutes part - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - This overload is not available through COM, please use - "DegreesToHM(ByVal Degrees As Double, ByVal HrsDelim As String, ByVal MinDelim As String, ByVal MinDecimalDigits As Integer)" - with suitable parameters to achieve this effect. - - - - - Convert degrees to sexagesimal hours and minutes with supplied number of minute decimal places - - The degrees value to convert - The delimiter string separating hours and minutes - The delimiter string to append to the minutes part - Number of minutes decimal places - Sexagesimal representation of degrees input value as hours and minutes - - If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters - - - - - Current Platform version in Major.Minor form - - Current Platform version in Major.Minor form - Please be careful if you wish to convert this string into a number within your application - because the ASCOM Platform is used internationally and some countries use characters other - than point as the decimal separator. - If your application tries to convert 5.5 into a Double value when running on a PC localised to - France, you will get an exception because the French decimal separater is comma and 5.5 is not - a valid representation of a decimal number in that locale. - If you still wish to turn the Platform Version into a Double value, you can use an - approach such as this: - If Double.Parse(Util.PlatformVersion, CultureInfo.InvariantCulture) < 5.5 Then... - If you just wish to test whether the platform is greater than a particular level, - you can use the IsMinimumRequiredVersion method. - - - - - Tests whether the current platform version is at least equal to the supplied major and minor - version numbers, returns false if this is not the case - - The required major version number - The required minor version number - True if the current platform version equals or exceeds the major and minor values provided - This function provides a simple way to test for a minimum platform level. - If for example, your application requires at least platform version 5.5 then you can use - code such as this to make a test and display information as appropriate. - Const requiredMajorVersion as Integer = 5 - Const requiredMinorVersion as Integer = 5 ' Requires Platform version 5.5 - Dim Utils as New ASCOM.Utilities.Util - isOK = Utils.IsMinimumRequiredVersion(requiredMajorVersion, requiredMinorVersion) - If Not isOK Then - ' Abort, throw exception, print an error or whatever. - End - EndIf - - - - - - Change the serial trace file (default C:\SerialTrace.txt) - - Serial trace file name including fully qualified path e.g. C:\SerialTrace.txt - Serial trace file name - Change this before setting the SerialTrace property to True. - - - - Enable/disable serial I/O tracing - - Boolean - Enable/disable serial I/O tracing - Enabled - disabled state of serial tracing - If you want to change the serial trace file path, change the SerialTraceFile property before setting this to True. - After setting this to True, serial trace info will be written to the last-set serial trace file. - - - - The name of the computer's time zone - - The name of the computer's time zone - This will be in the local language of the operating system, and will reflect any daylight/summer time that may be in - effect. - - - - UTC offset (hours) for the computer's clock - - UTC offset (hours) for the computer's clock - The offset is in hours, such that UTC = local + offset. The offset includes any daylight/summer time that may be - in effect. - - - - The current UTC Date - - The current UTC Date - - - - - Current Julian date - - Current Julian date - This is quantised to the second in the COM component but to a small decimal fraction in the .NET component - - - - Convert local-time Date to Julian date - - Date in local-time - Julian date - Julian dates are always in UTC - - - - Convert Julian date to local-time Date - - Julian date to convert - Date in local-time for the given Julian date - Julian dates are always in UTC - - - - Convert UTC Date to Julian date - - UTC date to convert - Julian date - Julian dates are always in UTC - - - - Convert Julian date to UTC Date - - Julian date - Date in UTC for the given Julian date - Julian dates are always in UTC - - - - Convert UTC Date to local-time Date - - Date in UTC - Date in local-time - - - - - Convert local-time Date to UTC Date - - Date in local-time - Date in UTC - - - - - Convert a string safearray to an ArrayList that can be used in scripting languages - - Array of strings - Collection of integers - - - - - Convert an integer safearray to an ArrayList collection that can be used in scripting languages - - Safearray of integers - Colection of integers - - - - - Convert from one set of speed / temperature / pressure rain rate units to another - - Value to convert - Integer value from the Units enum indicating the value's current units - Integer value from the Units enum indicating the units to which the input value should be converted - Input value expressed in the new units - When the specified from and to units can not refer to the same value. e.g. attempting to convert miles per hour to degrees Celsius - - Conversions available: - - metres per second <==> miles per hour <==> knots - Celsius <==> Farenheit <==> Kelvin - hecto Pascals (hPa) <==> milli bar(mbar) <==> mm of mercury <==> inches of mercury - mm per hour <==> inches per hour - - Knots conversions use the international nautical mile definition (1 nautical mile = 1852m) rather than the orginal UK or US Admiralty definitions. - For convenience, milli bar and hecto Pascals are shown as separate units even though they have numerically identical values and there is a 1:1 conversion between them. - - - - - Calculate the dew point (°Celsius) given the ambient temperature (°Celsius) and relative humidity (%) - - Relative humidity expressed in percent (0.0 .. 100.0) - Ambient temperature (°Celsius) - Dew point (°Celsius) - When relative humidity < 0.0% or > 100.0%> - When ambient temperature < absolute zero or > 100.0C> - 'Calculation uses Vaisala formula for water vapour saturation pressure and is accurate to 0.083% over -20C - +50°C - http://www.vaisala.com/Vaisala%20Documents/Application%20notes/Humidity_Conversion_Formulas_B210973EN-F.pdf - - - - - Calculate the relative humidity (%) given the ambient temperature (°Celsius) and dew point (°Celsius) - - Dewpoint in (°Celsius) - Ambient temperature (°Celsius) - Humidity expressed in percent (0.0 .. 100.0) - When dew point < absolute zero or > 100.0C> - When ambient temperature < absolute zero or > 100.0C> - 'Calculation uses the Vaisala formula for water vapour saturation pressure and is accurate to 0.083% over -20C - +50°C - http://www.vaisala.com/Vaisala%20Documents/Application%20notes/Humidity_Conversion_Formulas_B210973EN-F.pdf - - - - - Convert atmospheric pressure from one altitude above mean sea level to another - - Measured pressure in hPa (mBar) at the "From" altitude - "Altitude at which the input pressure was measured (metres) - Altitude to which the pressure is to be converted (metres) - Pressure in hPa at the "To" altitude - Uses the equation: p = p0 * (1.0 - 2.25577E-05 h)^5.25588 - - - - Convert an array of .NET built-in types to an equivalent Variant arrray (array of .NET Objects) - - The array to convert to variant types - A Variant array - If the supplied array contains elements of an unsuported Type. - If the array rank is outside the range 1 to 5. - If the supplied object is not an array. - This function will primarily be of use to Scripting Language programmers who need to convert Camera and Video ImageArrays from their native types to Variant types. If this is not done, - the scripting language will throw a type mismatch exception when it receives, for example, Int32 element types instead of the expected Variant types. - A VBScript Camera usage example is: Image = UTIL.ArrayToVariantArray(CAMERA.ImageArray) This example assumes that the camera and utilities objects have already been created with CreateObject statements. - The supported .NET types are: - - Int16 - Int32 - UInt16 - UInt32 - UInt64 - Byte - SByte - Single - Double - Boolean - DateTime - String - - - The function supports arrays with 1 to 5 dimensions (Rank = 1 to 5). If the supplied array already contains elements of Variant type, it is returned as-is without any processing. - - - - Turns an array of type T into a variant array of Object - - The type to convert to Variant - The supplied array of Type T as an Object - The supplied array of Type T as an Array - The array with all elements represented as Variant objects - Works for 1 to 5 dimensional arrays of any Type - - - - Platform major version number - - Platform major version number - Integer version number - - - - - Platform minor version number - - Platform minor version number - Integer version number - - - - - Platform service pack number - - Platform service pack number - Integer service pack number - - - - - Platform build number - - Platform build number - Integer build number - - - - - Function that is called by RegAsm when the assembly is registered for COM - - This is necessary to ensure that the mscoree.dll can be found when the SetSearchDirectories function has been called in an application e.g. by Inno installer post v5.5.9 - - - - Function that is called by RegAsm when the assembly is registered for COM - - -
    -
    diff --git a/MeadeAutostar497/obj/Debug/ASCOM.MeadeAutostar497.Properties.Resources.resources b/MeadeAutostar497/obj/Debug/ASCOM.MeadeAutostar497.Properties.Resources.resources deleted file mode 100644 index a83256e..0000000 Binary files a/MeadeAutostar497/obj/Debug/ASCOM.MeadeAutostar497.Properties.Resources.resources and /dev/null differ diff --git a/MeadeAutostar497/obj/Debug/ASCOM.MeadeAutostar497.SetupDialogForm.resources b/MeadeAutostar497/obj/Debug/ASCOM.MeadeAutostar497.SetupDialogForm.resources deleted file mode 100644 index 6c05a97..0000000 Binary files a/MeadeAutostar497/obj/Debug/ASCOM.MeadeAutostar497.SetupDialogForm.resources and /dev/null differ diff --git a/MeadeAutostar497/obj/Debug/MeadeAutostar497.csproj.CopyComplete b/MeadeAutostar497/obj/Debug/MeadeAutostar497.csproj.CopyComplete deleted file mode 100644 index e69de29..0000000 diff --git a/MeadeAutostar497/obj/Debug/MeadeAutostar497.csproj.FileListAbsolute.txt b/MeadeAutostar497/obj/Debug/MeadeAutostar497.csproj.FileListAbsolute.txt deleted file mode 100644 index 7a0d159..0000000 --- a/MeadeAutostar497/obj/Debug/MeadeAutostar497.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,29 +0,0 @@ -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.MeadeAutostar497.Telescope.dll.config -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.MeadeAutostar497.Telescope.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.MeadeAutostar497.Telescope.pdb -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.MeadeAutostar497.Telescope.tlb -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Astrometry.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Attributes.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Controls.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.DeviceInterfaces.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Exceptions.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.SettingsProvider.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Utilities.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Utilities.Video.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Internal.Extensions.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Astrometry.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Attributes.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Controls.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.DeviceInterfaces.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Exceptions.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.SettingsProvider.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Utilities.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\bin\Debug\ASCOM.Internal.Extensions.xml -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\ASCOM.MeadeAutostar497.Properties.Resources.resources -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\ASCOM.MeadeAutostar497.SetupDialogForm.resources -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\MeadeAutostar497.csproj.GenerateResource.cache -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\MeadeAutostar497.csproj.CoreCompileInputs.cache -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\MeadeAutostar497.csproj.CopyComplete -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\ASCOM.MeadeAutostar497.Telescope.dll -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\ASCOM.MeadeAutostar497.Telescope.pdb -D:\Code\BitBucket\cjdSkunkWorks\Ascom\MeadeAutostar497\MeadeAutostar497\obj\Debug\MeadeAutostar497.csprojAssemblyReference.cache