Files
MeadeGeneric/MeadeAutostar497/bin/Debug/ASCOM.Utilities.xml
T

3868 lines
199 KiB
XML

<?xml version="1.0"?>
<doc>
<assembly>
<name>
ASCOM.Utilities
</name>
</assembly>
<members>
<member name="T:ASCOM.Utilities.My.Resources.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:ASCOM.Utilities.My.Resources.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:ASCOM.Utilities.My.Resources.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="T:ASCOM.Utilities.ASCOMProfile">
<summary>
Class that represents a whole device Profile and which contains a set of methods for for manipulating its contents
</summary>
<remarks>
This class is used by the Profile.GetProfile and Profile.SetProfile methods, do not confuse it with the Profile Class itself.
</remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.AddSubkey(System.String)">
<summary>
Add a new subkey
</summary>
<param name="SubKeyName">Name of the subkey</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.Clear">
<summary>
Clears all contents
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.GetValue(System.String,System.String)">
<summary>
Retrieve a registry value
</summary>
<param name="Name">Name of the value</param>
<param name="SubKeyName">"SubKey in which the value is located</param>
<returns>String value</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.RemoveSubKey(System.String)">
<summary>
Removes a complete subkey
</summary>
<param name="SubKeyName">Subkey to be removed</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.RemoveValue(System.String,System.String)">
<summary>
Remove a value
</summary>
<param name="ValueName">Name of the value to be removed</param>
<param name="SubKeyName">"SubKey containing the value</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.SetValue(System.String,System.String,System.String)">
<summary>
Set a value
</summary>
<param name="Name">Name of the value to set</param>
<param name="Value">Value to be set</param>
<param name="SubKeyName">"Subkey continaining the value</param>
<remarks>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.</remarks>
</member>
<member name="P:ASCOM.Utilities.ASCOMProfile.ProfileValues">
<summary>
Get the collection of values in this profile
</summary>
<value>All values in the collection</value>
<returns>SortedList(Of SubKey as String, SortedList(Of ValueName as String, Value as String))</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.GetValue(System.String)">
<summary>
Retrieve a registry value from the driver top level subkey
</summary>
<param name="Name">Name of the value </param>
<returns>String value</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.RemoveValue(System.String)">
<summary>
Remove a value from the driver top level subkey
</summary>
<param name="ValueName">Name of the value to be removed</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.ASCOMProfile.SetValue(System.String,System.String)">
<summary>
Set a value in the driver top level subkey
</summary>
<param name="Name">Name of the value to set</param>
<param name="Value">Value to be set</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Units">
<summary>
List of available conversion units for use in the Util.ConvertUnits method
</summary>
</member>
<member name="T:ASCOM.Utilities.Chooser">
<summary>
The Chooser object provides a way for your application to let your user select the telescope to use.
</summary>
<remarks>
<para>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.</para>
<para>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. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Chooser.#ctor">
<summary>
Creates a new Chooser object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Chooser.Dispose(System.Boolean)">
<summary>
Does the work of cleaning up objects used by Chooser
</summary>
<param name="disposing">True if called by the user, false if called by the system</param>
<remarks>You can't call this directly, use Dispose with no arguments instead.</remarks>
</member>
<member name="M:ASCOM.Utilities.Chooser.Dispose">
<summary>
Cleans up and disposes objects used by Chooser
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Chooser.DeviceType">
<summary>
The type of device for which the Chooser will select a driver. (String, default = "Telescope")
</summary>
<value>The type of device for which the Chooser will select a driver. (String, default = "Telescope")
</value>
<returns>The device type that has been set</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown on setting the device type to empty string</exception>
<remarks>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.
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Chooser.Choose(System.String)">
<summary>
Select ASCOM driver to use including pre-selecting one in the dropdown list
</summary>
<param name="DriverProgID">Driver to preselect in the chooser dialogue</param>
<returns>Driver ID of chosen driver</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">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.</exception>
<remarks>The supplied driver will be pre-selected in the Chooser's list when the chooser window is first opened.
</remarks>
</member>
<member name="M:ASCOM.Utilities.Chooser.Choose">
<summary>
Select ASCOM driver to use without pre-selecting in the dropdown list
</summary>
<returns>Driver ID of chosen driver</returns>
<remarks>No driver will be pre-selected in the Chooser's list when the chooser window is first opened.
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">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.</exception>
<para>This overload is not available through COM, please use "Choose(ByVal DriverProgID As String)"
with an empty string parameter to achieve this effect.</para>
</remarks>
</member>
<member name="T:ASCOM.Utilities.KeyValuePair">
<summary>
Class that returns a key and associated value
</summary>
<remarks>This class is used by some Profile properties and methods and
compensates for the inability of .NET to return Generic classes to COM clients.
<para>The properties and methods are:
<see cref="M:ASCOM.Utilities.Profile.RegisteredDevices(System.String)">Profile.RegisteredDevices</see>,
<see cref="M:ASCOM.Utilities.Profile.SubKeys(System.String)">Profile.SubKeys</see> and
<see cref="M:ASCOM.Utilities.Profile.Values(System.String)">Profile.Values</see>.</para></remarks>
</member>
<member name="M:ASCOM.Utilities.KeyValuePair.#ctor">
<summary>
COM visible default constructor
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.KeyValuePair.#ctor(System.String,System.String)">
<summary>
Constructor that can set the key and value simultaneously.
</summary>
<param name="Key">The Key element of a key value pair</param>
<param name="Value">The Value element of a key value pair</param>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.KeyValuePair.Key">
<summary>
The Key element of a key value pair
</summary>
<value>Key</value>
<returns>Key as a string</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.KeyValuePair.Value">
<summary>
The Value element of a key value pair.
</summary>
<value>Value</value>
<returns>Value as a string</returns>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.RegistryAccess.AccessRights">
<summary>
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
</summary>
</member>
<member name="M:ASCOM.Utilities.RegistryAccess.NewCode(System.Boolean)">
<summary>
Common code for the new method
</summary>
<param name="p_IgnoreChecks">If true, suppresses the exception normally thrown if a valid profile is not present</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.HelperException">
<summary>
Base exception for the Utilities components
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.HelperException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.HelperException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message and inner exception
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.HelperException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.ProfileNotFoundException">
<summary>
Exception thrown when the profile is not found. This is internally trapped and should not appear externally to an application.
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ProfileNotFoundException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ProfileNotFoundException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ProfileNotFoundException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.InvalidValueException">
<summary>
Exception thrown when an invalid value is passed to a Utilities component
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.InvalidValueException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.InvalidValueException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.InvalidValueException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">
<summary>
Exception thrown when a serial port method is already in progress and a second attempt is made to use the serial port.
</summary>
<remarks>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.</remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.SerialPortInUseException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.SerialPortInUseException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.SerialPortInUseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.ProfilePersistenceException">
<summary>
Exception thrown if there is any problem in reading or writing the profile from or to the file system
</summary>
<remarks>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.
</remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ProfilePersistenceException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ProfilePersistenceException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ProfilePersistenceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">
<summary>
Exception thrown when a profile request is made for a driver that is not registered
</summary>
<remarks>Drivers must be registered before other profile commands are used to manipulate their
values.</remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.DriverNotRegisteredException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.DriverNotRegisteredException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.DriverNotRegisteredException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.RestrictedAccessException">
<summary>
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.
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.RestrictedAccessException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.RestrictedAccessException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.RestrictedAccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Exceptions.ValueNotSetException">
<summary>
Exception thrown when an attempt is made to read a value that has not yet been set.
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ValueNotSetException.#ctor(System.String)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ValueNotSetException.#ctor(System.String,System.Exception)">
<summary>
Create a new exception with message
</summary>
<param name="message">Message to be reported by the exception</param>
<param name="inner">Exception to be reported as the inner exception</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Exceptions.ValueNotSetException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialise the exception
</summary>
<param name="info">Serialisation information</param>
<param name="context">Serialisation context</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IKeyValuePair">
<summary>
Interface for KeyValuePair class
</summary>
<remarks>This is a return type only used by a small number of the Profile.XXXCOM commands. Including
<see cref="M:ASCOM.Utilities.Interfaces.IProfile.RegisteredDevices(System.String)">IProfile.RegisteredDevices</see>,
<see cref="M:ASCOM.Utilities.Interfaces.IProfile.SubKeys(System.String,System.String)">IProfile.SubKeys</see> and
<see cref="M:ASCOM.Utilities.Interfaces.IProfile.Values(System.String,System.String)">IProfile.Values</see>.</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IKeyValuePair.Key">
<summary>
Key member of a key value pair
</summary>
<value>Key</value>
<returns>Ky as string</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IKeyValuePair.Value">
<summary>
Value memeber of a key value pair
</summary>
<value>Value</value>
<returns>Value as string</returns>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.ITraceLogger">
<summary>
Interface to the TraceLogger component
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.LogStart(System.String,System.String)">
<summary>
Writes the time and identifier to the log, leaving the line ready for further content through LogContinue and LogFinish
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<remarks><para>Use this to start a log line where you want to write further information on the line at a later time.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.LogContinue(System.String,System.Boolean)">
<summary>
Appends further message to a line started by LogStart, appends a hex translation of the message to the line, does not terminate the line.
</summary>
<param name="Message">The additional message to appear in the line</param>
<param name="HexDump">True to append a hex translation of the message at the end of the message</param>
<remarks>
<para>This can be called multiple times to build up a complex log line if required.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.LogFinish(System.String,System.Boolean)">
<summary>
Closes a line started by LogStart with option to append a translation of the supplied message into HEX
</summary>
<param name="Message">The final message to appear in the line</param>
<param name="HexDump">True to append a hex translation of the message at the end of the message</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.LogMessage(System.String,System.String,System.Boolean)">
<summary>
Closes a line started by LogStart with the supplied message and a hex translation of the message
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">The final message to terminate the line</param>
<param name="HexDump">True to append a hex translation of the message at the end of the message</param>
<remarks>
<para>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.</para>
</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ITraceLogger.Enabled">
<summary>
Enables or disables logging to the file.
</summary>
<value>True to enable logging</value>
<returns>Boolean, current logging status (enabled/disabled).</returns>
<remarks>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.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.LogIssue(System.String,System.String)">
<summary>
Logs an issue, closing any open line and opening a continuation line if necessary after the
issue message.
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<remarks>Use this for reporting issues that you don't want to appear on a line already opened
with StartLine</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.SetLogFile(System.String,System.String)">
<summary>
Sets the log filename and type if the constructor is called without parameters
</summary>
<param name="LogFileName">Fully qualified trace file name or null string to use automatic file naming (recommended)</param>
<param name="LogFileType">String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11</param>
<remarks>The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the
information of interest.
<para><b>Note </b>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:</para>
<code>
TL = New TraceLogger()
TL.SetLogFile("","TraceName")
</code>
<para>If you are writing a .NET client then you can achieve the same end in one call:</para>
<code>
TL = New TraceLogger("",TraceName")
</code>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.BlankLine">
<summary>
Insert a blank line into the log file
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ITraceLogger.LogFileName">
<summary>
Return the full filename of the log file being created
</summary>
<value>Full filename of the log file</value>
<returns>String filename</returns>
<remarks>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.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLogger.LogMessageCrLf(System.String,System.String)">
<summary>
Displays a message respecting carriage return and linefeed characters
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">The final message to terminate the line</param>
<remarks>
<para>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.</para>
</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ITraceLogger.LogFilePath">
<summary>
Set or return the path to a directory in which the log file will be created
</summary>
<value>Path to the log directory</value>
<returns>String path</returns>
<remarks>Introduced with Platform 6.4.<para>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.</para></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ITraceLogger.IdentifierWidth">
<summary>
Set or return the width of the identifier field in the log message
</summary>
<value>Width of the identifier field</value>
<returns>Integer width</returns>
<remarks>Introduced with Platform 6.4.<para>If set, this width will be used instead of the default identifier field width.</para></remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.ITraceLoggerExtra">
<summary>
Addiitonal methods that are only visible to .NET clients and not to COM clients
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLoggerExtra.LogContinue(System.String)">
<summary>
Appends further message to a line started by LogStart, does not terminate the line.
</summary>
<param name="Message">The additional message to appear in the line</param>
<remarks>
<para>This can be called multiple times to build up a complex log line if required.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLoggerExtra.LogFinish(System.String)">
<summary>
Closes a line started by LogStart with the supplied message
</summary>
<param name="Message">The final message to terminate the line</param>
<remarks>
<para>Can only be called once for each line started by LogStart.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITraceLoggerExtra.LogMessage(System.String,System.String)">
<summary>
Logs a complete message in one call
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<remarks>
<para>Use this for straightforward logging requrements. Writes all information in one command.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IChooser">
<summary>
Interface to the .NET Chooser component
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IChooser.DeviceType">
<summary>
The type of device for which the Chooser will select a driver. (String, default = "Telescope")
</summary>
<value>The type of device for which the Chooser will select a driver. (String, default = "Telescope")
</value>
<returns>The device type that has been set</returns>
<remarks>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.
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IChooser.Choose(System.String)">
<summary>
Select ASCOM driver to use including pre-selecting one in the dropdown list
</summary>
<param name="DriverProgID">Driver to preselect in the chooser dialogue</param>
<returns>Driver ID of chosen driver</returns>
<remarks>The supplied driver will be pre-selected in the Chooser's list when the chooser window is first opened.
</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IChooserExtra">
<summary>
Addiitonal methods that are only visible to .NET clients and not to COM clients
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IChooserExtra.Choose">
<summary>
Select ASCOM driver to use without pre-selecting in the dropdown list
</summary>
<returns>Driver ID of chosen driver</returns>
<remarks>No driver will be pre-selected in the Chooser's list when the chooser window is first opened.
<para>This overload is not available through COM, please use "Choose(ByVal DriverProgID As String)"
with an empty string parameter to achieve this effect.</para>
</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IUtil">
<summary>
Interface to the .NET Util component
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.WaitForMilliseconds(System.Int32)">
<summary>
Pauses for a given interval in milliseconds.
</summary>
<param name="Milliseconds">The number of milliseconds to wait</param>
<remarks>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. </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DMSToDegrees(System.String)">
<summary>
Convert sexagesimal degrees to binary double-precision degrees
</summary>
<param name="DMS">The sexagesimal input string (degrees)</param>
<returns>The double-precision binary value (degrees) represented by the sexagesimal input</returns>
<remarks><para>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. </para>
<para>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. </para>
<para>Note that plain units, for example 23.128734523 are acceptable to the method. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.HMSToHours(System.String)">
<summary>
Convert sexagesimal hours to binary double-precision hours
</summary>
<param name="HMS">The sexagesimal input string (hours)</param>
<returns>The double-precision binary value (hours) represented by the sexagesimal input </returns>
<remarks>
<para>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. </para>
<para>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. </para>
<para>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. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.HMSToDegrees(System.String)">
<summary>
Convert sexagesimal hours to binary double-precision hours
</summary>
<param name="HMS">The sexagesimal input string (hours)</param>
<returns>The double-precision binary value (hours) represented by the sexagesimal input</returns>
<remarks>
<para>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. </para>
<para>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. </para>
<para>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. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DegreesToDMS(System.Double,System.String,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with specified second decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<param name="SecDelim">The delimiter string to append to the seconds part</param>
<param name="SecDecimalDigits">The number of digits after the decimal point on the seconds part </param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.HoursToHMS(System.Double,System.String,System.String,System.String,System.Int32)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with specified number of second decimal places
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string separating minutes and seconds </param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<param name="SecDecimalDigits">The number of digits after the decimal point on the seconds part </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DegreesToDM(System.Double,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal degrees and minutes with the specified number of minute decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees </param>
<param name="MinDelim">The delimiter string to append to the minutes </param>
<param name="MinDecimalDigits">The number of digits after the decimal point on the minutes part </param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.HoursToHM(System.Double,System.String,System.String,System.Int32)">
<summary>
Convert hours to sexagesimal hours and minutes with supplied number of minute decimal places
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<param name="MinDecimalDigits">The number of digits after the decimal point on the minutes part </param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DegreesToHMS(System.Double,System.String,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with the specified number of second decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string separating minutes and seconds</param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<param name="SecDecimalDigits">The number of digits after the decimal point on the seconds part </param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DegreesToHM(System.Double,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal hours and minutes with supplied number of minute decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string to append to the minutes part</param>
<param name="MinDecimalDigits">The number of minutes decimal places</param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.PlatformVersion">
<summary>
Current Platform version in m.n form
</summary>
<returns>Current Platform version in m.n form</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.SerialTraceFile">
<summary>
Change the serial trace file (default C:\SerialTrace.txt)
</summary>
<value>Serial trace file name including fully qualified path e.g. C:\SerialTrace.txt</value>
<returns>Serial trace file name </returns>
<remarks>Change this before setting the SerialTrace property to True. </remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.SerialTrace">
<summary>
Enable/disable serial I/O tracing
</summary>
<value>Boolean - Enable/disable serial I/O tracing</value>
<returns>Enabled - disabled state of serial tracing</returns>
<remarks>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. </remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.TimeZoneName">
<summary>
The name of the computer's time zone
</summary>
<returns>The name of the computer's time zone</returns>
<remarks>This will be in the local language of the operating system, and will reflect any daylight/summer time that may be in
effect. </remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.TimeZoneOffset">
<summary>
UTC offset (hours) for the computer's clock
</summary>
<returns>UTC offset (hours) for the computer's clock</returns>
<remarks>The offset is in hours, such that UTC = local + offset. The offset includes any daylight/summer time that may be
in effect.</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.UTCDate">
<summary>
The current UTC Date
</summary>
<returns>The current UTC Date</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.JulianDate">
<summary>
Current Julian date
</summary>
<returns>Current Julian date</returns>
<remarks>This is quantised to the second in the COM component but to a small decimal fraction in the .NET component</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DateLocalToJulian(System.DateTime)">
<summary>
Convert local-time Date to Julian date
</summary>
<param name="LocalDate">Date in local-time</param>
<returns>Julian date</returns>
<remarks>Julian dates are always in UTC </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DateJulianToLocal(System.Double)">
<summary>
Convert Julian date to local-time Date
</summary>
<param name="JD">Julian date to convert</param>
<returns>Date in local-time for the given Julian date</returns>
<remarks>Julian dates are always in UTC</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DateUTCToJulian(System.DateTime)">
<summary>
Convert UTC Date to Julian date
</summary>
<param name="UTCDate">UTC date to convert</param>
<returns>Julian date</returns>
<remarks>Julian dates are always in UTC </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DateJulianToUTC(System.Double)">
<summary>
Convert Julian date to UTC Date
</summary>
<param name="JD">Julian date</param>
<returns>Date in UTC for the given Julian date</returns>
<remarks>Julian dates are always in UTC </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DateUTCToLocal(System.DateTime)">
<summary>
Convert UTC Date to local-time Date
</summary>
<param name="UTCDate">Date in UTC</param>
<returns>Date in local-time</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DateLocalToUTC(System.DateTime)">
<summary>
Convert local-time Date to UTC Date
</summary>
<param name="LocalDate">Date in local-time</param>
<returns> Date in UTC</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.IsMinimumRequiredVersion(System.Int32,System.Int32)">
<summary>
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
</summary>
<param name="RequiredMajorVersion">The required major version number</param>
<param name="RequiredMinorVersion">The required minor version number</param>
<returns>True if the current platform version equals or exceeds the major and minor values provided</returns>
<remarks>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.
<code>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.
</code></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.ToStringCollection(System.String[])">
<summary>
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.
</summary>
<param name="stringArray">array of strings</param>
<returns>Collection of strings</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.ToIntegerCollection(System.Int32[])">
<summary>
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.
</summary>
<param name="integerArray">array of integers</param>
<returns>Collection of Integers</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.ArrayToVariantArray(System.Object)">
<summary>
Convert an array of .NET built-in types to an equivalent Variant arrray (array of .NET Objects)
</summary>
<param name="SuppliedObject">The array to convert to variant types</param>
<returns>A Variant array</returns>
<exception cref="T:ASCOM.InvalidValueException">If the supplied array contains elements of an unsuported Type.</exception>
<exception cref="T:ASCOM.InvalidValueException">If the array rank is outside the range 1 to 5.</exception>
<exception cref="T:ASCOM.InvalidValueException">If the supplied object is not an array.</exception>
<remarks>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.
<para>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.</para>
<para>The supported .NET types are:
<list type="bullet">
<item><description>Int16</description></item>
<item><description>Int32</description></item>
<item><description>UInt16</description></item>
<item><description>UInt32</description></item>
<item><description>UInt64</description></item>
<item><description>Byte</description></item>
<item><description>SByte</description></item>
<item><description>Single</description></item>
<item><description>Double</description></item>
<item><description>Boolean</description></item>
<item><description>DateTime</description></item>
<item><description>String</description></item>
</list>
</para>
<para>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.</para></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.MajorVersion">
<summary>
Platform major version number
</summary>
<value>Platform major version number</value>
<returns>Integer version number</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.MinorVersion">
<summary>
Platform minor version number
</summary>
<value>Platform minor version number</value>
<returns>Integer version number</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.ServicePack">
<summary>
Platform service pack number
</summary>
<value>Platform service pack number</value>
<returns>Integer service pack number</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IUtil.BuildNumber">
<summary>
Platform build number
</summary>
<value>Platform build number</value>
<returns>Integer build number</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.ConvertUnits(System.Double,ASCOM.Utilities.Units,ASCOM.Utilities.Units)">
<summary>
Convert from one set of units to another
</summary>
<param name="InputValue">Value to convert</param>
<param name="FromUnits">Integer value from the Units enum indicating the value's current units</param>
<param name="ToUnits">Integer value from the Units enum indicating the units to which the input value should be converted</param>
<returns>Input value converted to the new specified units</returns>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.Humidity2DewPoint(System.Double,System.Double)">
<summary>
Calculate the dew point given the ambient temperature and humidity
</summary>
<param name="Humidity">Humidity expressed in percent (0.0 .. 100.0)</param>
<param name="AmbientTemperature">Ambient temperature in degrees C</param>
<returns>Dew point in degrees C</returns>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.DewPoint2Humidity(System.Double,System.Double)">
<summary>
Calculate the humidity given the ambient temperature and dew point
</summary>
<param name="DewPoint">Dewpoint in degrees C</param>
<param name="AmbientTemperature">Ambient temperature in degrees C</param>
<returns>Humidity expressed in percent (0.0 .. 100.0)</returns>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtil.ConvertPressure(System.Double,System.Double,System.Double)">
<summary>
Convert atmospheric pressure from one altitude above mean sea level to another
</summary>
<param name="Pressure">Measured pressure in hPa at the "From" altitude</param>
<param name="FromAltitudeAboveMeanSeaLevel">"Altitude at which the input pressure was measured</param>
<param name="ToAltitudeAboveMeanSeaLevel">Altitude to which the pressure is to be converted</param>
<returns>Pressure in hPa at the "To" altitude</returns>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IUtilExtra">
<summary>
Addiitonal methods that are only visible to .NET clients and not to COM clients
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDMS(System.Double)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with default delimiters DD° MM' SS"
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>This overload is not available through COM, please use "Choose(ByVal DriverProgID As String)"
with an empty string parameter to achieve this effect.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDMS(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with with default minute and second delimiters MM' SS"
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDMS(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with default second delimiter SS"
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDMS(System.Double,System.String,System.String,System.String)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<param name="SecDelim">The delimiter string to append to the seconds part</param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHMS(System.Double)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with default delimiters HH:MM:SS
</summary>
<param name="Hours">The hours value to convert</param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHMS(System.Double,System.String)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with default minutes and seconds delimters MM:SS
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHMS(System.Double,System.String,System.String)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with default second delimiter of null string
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string separating minutes and seconds </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHMS(System.Double,System.String,System.String,System.String)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string separating minutes and seconds </param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDM(System.Double)">
<summary>
Convert degrees to sexagesimal degrees and minutes with default delimiters DD° MM'
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDM(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal degrees and minutes with the default minutes delimeter MM'
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees </param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToDM(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal degrees and minutes
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees </param>
<param name="MinDelim">The delimiter string to append to the minutes </param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHM(System.Double)">
<summary>
Convert hours to sexagesimal hours and minutes with default delimiters HH:MM
</summary>
<param name="Hours">The hours value to convert</param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHM(System.Double,System.String)">
<summary>
Convert hours to sexagesimal hours and minutes with default minutes delimiter MM (null string)
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.HoursToHM(System.Double,System.String,System.String)">
<summary>
Convert hours to sexagesimal hours and minutes
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHMS(System.Double)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with default delimters of HH:MM:SS
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHMS(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with the default second and minute delimiters of MM:SS
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHMS(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with the default second delimiter SS (null string)
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string separating minutes and seconds</param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHMS(System.Double,System.String,System.String,System.String)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string separating minutes and seconds</param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHM(System.Double)">
<summary>
Convert degrees to sexagesimal hours and minutes with default delimiters HH:MM
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHM(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal hours and minutes with default minute delimiter MM (null string)
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IUtilExtra.DegreesToHM(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal hours and minutes
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
<para>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.</para>
</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.ITimer">
<summary>
Interface to the .NET Timer component
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ITimer.Interval">
<summary>
The interval between Tick events when the timer is Enabled in milliseconds, (default = 1000)
</summary>
<value>The interval between Tick events when the timer is Enabled (milliseconds, default = 1000)</value>
<returns>The interval between Tick events when the timer is Enabled in milliseconds</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ITimer.Enabled">
<summary>
Enable the timer tick events
</summary>
<value>True means the timer is active and will deliver Tick events every Interval milliseconds.</value>
<returns>Enabled state of timer tick events</returns>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.ITimerEvent">
<summary>
Timer event interface
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ITimerEvent.Tick">
<summary>
Fired once per Interval when timer is Enabled.
</summary>
<remarks>To sink this event in Visual Basic, declare the object variable using the WithEvents keyword.</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IProfile">
<summary>
Interface to the .NET Profile component
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IProfile.DeviceType">
<summary>
The type of ASCOM device for which profile data and registration services are provided
(String, default = "Telescope")
</summary>
<value>String describing the type of device being accessed</value>
<returns>String describing the type of device being accessed</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.IProfile.RegisteredDeviceTypes">
<summary>
List the device types registered in the Profile store
</summary>
<value>List of registered device types</value>
<returns>An ArrayList of device types</returns>
<remarks>Use this to find which types of device are registered in the Profile store.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.RegisteredDevices(System.String)">
<summary>
List the devices of a given device type that are registered in the Profile store
</summary>
<param name="DeviceType">Type of devices to list</param>
<returns>An ArrayList of KeyValuePair objects of installed devices and associated device descriptions</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Throw if the supplied DeviceType is empty string or
null value.</exception>
<remarks>
Use this to find all the registerd devices of a given type that are in the Profile store.
<para>If a DeviceType is supplied, where no device of that type has been registered before on this system,
an empty list will be returned</para>
<para><b>Platform 6</b> 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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.IsRegistered(System.String)">
<summary>
Confirms whether a specific driver is registered ort unregistered in the profile store
</summary>
<param name="DriverID">String reprsenting the device's ProgID</param>
<returns>Boolean indicating registered or unregisteredstate of the supplied DriverID</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.Register(System.String,System.String)">
<summary>
Registers a supplied DriverID and associates a descriptive name with the device
</summary>
<param name="DriverID">ProgID of the device to register</param>
<param name="DescriptiveName">Descriptive name of the device</param>
<remarks>Does nothing if already registered, so safe to call on driver load.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.Unregister(System.String)">
<summary>
Remove all data for the given DriverID from the registry.
</summary>
<param name="DriverID">ProgID of the device to unregister</param>
<remarks>This deletes the entire device profile tree, including the DriverID root key.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.GetValue(System.String,System.String,System.String,System.String)">
<summary>
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.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="SubKey">Subkey from the profile root from which to read the value</param>
<param name="DefaultValue">Default value to be used if there is no value currently set</param>
<returns>Retrieved variable value</returns>
<remarks>
<para>Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key.</para>
<para>Does not provide access to other registry data types such as binary and doubleword. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.WriteValue(System.String,System.String,System.String,System.String)">
<summary>
Writes a string value to the profile using the supplied subkey for the given Driver ID and variable name.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="Value">The string value to be written</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.Values(System.String,System.String)">
<summary>
Return a list of the (unnamed and named variables) under the given DriverID and subkey.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root from which to return values</param>
<returns>An ArrayList of KeyValuePair objects.</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.DeleteValue(System.String,System.String,System.String)">
<summary>
Delete the value from the registry. Name may be an empty string for the unnamed value. Value will be deleted from the subkey supplied.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<remarks>Specify "" to delete the unnamed value which is also known as the "default" value for a registry key. </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.CreateSubKey(System.String,System.String)">
<summary>
Create a registry key for the given DriverID.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<remarks>If the SubKey argument contains a \ separated path, the intermediate keys will be created if needed. </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.SubKeys(System.String,System.String)">
<summary>
Return a list of the sub-keys under the given DriverID (for COM clients)
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to search for subkeys</param>
<returns>An ArrayList of key-value pairs</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.DeleteSubKey(System.String,System.String)">
<summary>
Delete a registry key for the given DriverID. SubKey may contain \ separated path to key to be deleted.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<remarks>The sub-key and all data and keys beneath it are deleted.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.GetProfileXML(System.String)">
<summary>
Read an entire device profile
</summary>
<param name="deviceId">The ProgID of the device</param>
<returns>Device profile encoded in XML</returns>
<exception cref="T:ASCOM.MethodNotImplementedException">This method will be implemented in a future update</exception>
<remarks>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.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfile.SetProfileXML(System.String,System.String)">
<summary>
Set an entire device profile
</summary>
<param name="deviceId">The ProgID of the device</param>
<param name="xml">An XML encoding of the profile</param>
<exception cref="T:ASCOM.MethodNotImplementedException">This method will be implemented in a future update</exception>
<remarks>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.</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.IProfileExtra">
<summary>
Addiitonal methods that are only visible to .NET clients and not to COM clients
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.MigrateProfile(System.String)">
<summary>
Migrate the ASCOM profile from registry to file store
</summary>
<param name="CurrentPlatformVersion">The platform version number of the current profile store beig migrated</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.DeleteValue(System.String,System.String)">
<summary>
Delete the value from the registry. Name may be an empty string for the unnamed value.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<remarks>Specify "" to delete the unnamed value which is also known as the "default" value for a registry key.
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.GetValue(System.String,System.String)">
<summary>
Retrieve a string value from the profile for the given Driver ID and variable name
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<returns>Retrieved variable value</returns>
<remarks>
<para>Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key.</para>
<para>Does not provide access to other registry data types such as binary and doubleword. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.GetValue(System.String,System.String,System.String)">
<summary>
Retrieve a string value from the profile using the supplied subkey for the given Driver ID and variable name.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="SubKey">Subkey from the profile root from which to read the value</param>
<returns>Retrieved variable value</returns>
<remarks>
<para>Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key.</para>
<para>Does not provide access to other registry data types such as binary and doubleword. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.SubKeys(System.String)">
<summary>
Return a list of the sub-keys under the root of the given DriverID
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<returns>An ArrayList of key-value pairs</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.Values(System.String)">
<summary>
Return a list of the (unnamed and named variables) under the given DriverID.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<returns>An ArrayList of KeyValuePair objects.</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.WriteValue(System.String,System.String,System.String)">
<summary>
Writes a string value to the profile using the given Driver ID and variable name.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="Value">The string value to be written</param>
<remarks>
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.
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.GetProfile(System.String)">
<summary>
Read an entire device profile and return it as an XML encoded string
</summary>
<param name="DriverId">The ProgID of the device</param>
<returns>Device profile represented as a recusrive class</returns>
<remarks>Returns a whole driver profile encoded as an XML string</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.IProfileExtra.SetProfile(System.String,ASCOM.Utilities.ASCOMProfile)">
<summary>
Set an entire device profile from an XML encoded string
</summary>
<param name="DriverId">The ProgID of the device</param>
<param name="XmlProfileKey">A class representing the profile</param>
<remarks>Set a whole device Profile in one call using a recusrive ProfileKey class</remarks>
</member>
<member name="T:ASCOM.Utilities.Interfaces.ISerial">
<summary>
Interface to the .NET Serial component
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.AvailableComPorts">
<summary>
Returns a list of all available ASCOM serial ports with COMnnn ports sorted into ascending port number order
</summary>
<value>String array of available serial ports</value>
<returns>A string array of available serial ports</returns>
<remarks><b>Update in platform 6.0.0.0</b> 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.
<para>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.</para></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.DataBits">
<summary>
Gets or sets the number of data bits in each byte
</summary>
<value>The number of data bits in each byte, default is 8 data bits</value>
<returns>Integer number of data bits in each byte</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The data bits value is less than 5 or more than 8</exception>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.DTREnable">
<summary>
Gets or sets the state of the DTR line
</summary>
<value>The state of the DTR line, default is enabled</value>
<returns>Boolean true/false indicating enabled/disabled</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.Parity">
<summary>
Gets or sets the type of parity check used over the serial link
</summary>
<value>The type of parity check used over the serial link, default none</value>
<returns>One of the Ports.Parity enumeration values</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.StopBits">
<summary>
Gets or sets the number of stop bits used on the serial link
</summary>
<value>the number of stop bits used on the serial link, default 1</value>
<returns>One of the Ports.StopBits enumeration values</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.Handshake">
<summary>
Gets or sets the type of serial handshake used on the serial line
</summary>
<value>The type of handshake used on the serial line, default is none</value>
<returns>One of the Ports.Handshake enumeration values</returns>
<remarks>Use of the RTS line can additionally be controlled by the <see cref="P:ASCOM.Utilities.Interfaces.ISerial.Handshake"/> property.</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.Connected">
<summary>
Gets or sets the connected state of the ASCOM serial port.
</summary>
<value>Connected state of the serial port.</value>
<returns><c>True</c> if the serial port is connected.</returns>
<remarks>Set this property to True to connect to the serial (COM) port. You can read the property to determine if the object is connected. </remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.Port">
<summary>
Gets or sets the number of the ASCOM serial port (Default is 1, giving COM1 as the serial port name).
</summary>
<value>COM port number of the ASCOM serial port.</value>
<returns>Integer, number of the ASCOM serial port</returns>
<remarks>This works for serial port names of the form COMnnn. Use PortName if your COM port name does not fit the form COMnnn.</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.ReceiveTimeout">
<summary>
The maximum time that the ASCOM serial port will wait for incoming receive data (seconds, default = 5)
</summary>
<value>Integer, serial port timeout in seconds</value>
<returns>Integer, serial port timeout in seconds.</returns>
<remarks>The minimum delay timout that can be set through this command is 1 seconds. Use ReceiveTimeoutMs to set a timeout less than 1 second.</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.ReceiveTimeoutMs">
<summary>
The maximum time that the ASCOM serial port will wait for incoming receive data (milliseconds, default = 5000)
</summary>
<value>Integer, serial port timeout in milli-seconds</value>
<returns>Integer, serial port timeout in milli-seconds</returns>
<remarks>If a timeout occurs, an IO timeout error is raised. See ReceiveTimeout for an alternate form
using the timeout in seconds. </remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.PortName">
<summary>
Sets the ASCOM serial port name as a string
</summary>
<value>Serial port name to be used</value>
<returns>Current serial port name</returns>
<remarks>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.</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.Speed">
<summary>
Gets and sets the baud rate of the ASCOM serial port
</summary>
<value>Port speed using the PorSpeed enum</value>
<returns>Port speed using the PortSpeed enum</returns>
<remarks>This is modelled on the COM component with possible values enumerated in the PortSpeed enum.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.ClearBuffers">
<summary>
Clears the ASCOM serial port receive and transmit buffers
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.Transmit(System.String)">
<summary>
Transmits a string through the ASCOM serial port
</summary>
<param name="Data">String to transmit</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.TransmitBinary(System.Byte[])">
<summary>
Transmit an array of binary bytes through the ASCOM serial port
</summary>
<param name="Data">Byte array to transmit</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.LogMessage(System.String,System.String)">
<summary>
Adds a message to the ASCOM serial trace file
</summary>
<param name="Caller">String identifying the module logging the message</param>
<param name="Message">Message text to be logged.</param>
<remarks>
<para>This can be called regardless of whether logging is enabled</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.Receive">
<summary>
Receive at least one text character from the ASCOM serial port
</summary>
<returns>The characters received</returns>
<remarks>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. </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.ReceiveByte">
<summary>
Receive one binary byte from the ASCOM serial port
</summary>
<returns>The received byte</returns>
<remarks>Use this for 8-bit (binary data). If a timeout occurs, a TimeoutException is raised. </remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.ReceiveCounted(System.Int32)">
<summary>
Receive exactly the given number of characters from the ASCOM serial port and return as a string
</summary>
<param name="Count">The number of characters to return</param>
<returns>String of length "Count" characters</returns>
<remarks>If a timeout occurs a TimeoutException is raised.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.ReceiveCountedBinary(System.Int32)">
<summary>
Receive exactly the given number of characters from the ASCOM serial port and return as a byte array
</summary>
<param name="Count">The number of characters to return</param>
<returns>Byte array of size "Count" elements</returns>
<remarks>
<para>If a timeout occurs, a TimeoutException is raised. </para>
<para>This function exists in the COM component but is not documented in the help file.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.ReceiveTerminated(System.String)">
<summary>
Receive characters from the ASCOM serial port until the given terminator string is seen
</summary>
<param name="Terminator">The character string that indicates end of message</param>
<returns>Received characters including the terminator string</returns>
<remarks>If a timeout occurs, a TimeoutException is raised.</remarks>
</member>
<member name="M:ASCOM.Utilities.Interfaces.ISerial.ReceiveTerminatedBinary(System.Byte[])">
<summary>
Receive characters from the ASCOM serial port until the given terminator bytes are seen, return as a byte array
</summary>
<param name="TerminatorBytes">Array of bytes that indicates end of message</param>
<returns>Byte array of received characters</returns>
<remarks>
<para>If a timeout occurs, a TimeoutException is raised.</para>
<para>This function exists in the COM component but is not documented in the help file.</para>
</remarks>
</member>
<member name="P:ASCOM.Utilities.Interfaces.ISerial.RTSEnable">
<summary>
Gets or sets use of the RTS handshake control line
</summary>
<value>The state of RTS line use, default is disabled (false)</value>
<returns>Boolean true/false indicating RTS line use enabled/disabled</returns>
<remarks>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 <see cref="P:ASCOM.Utilities.Interfaces.ISerial.Handshake"/> property.</remarks>
</member>
<member name="M:ASCOM.Utilities.COMRegistrationSupport.COMRegister(System.Type)">
<summary>
Update a COM registration assembly executable reference (mscoree.dll) from a relative path to an absolute path
</summary>
<remarks>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
</remarks>
</member>
<member name="M:ASCOM.Utilities.EventLogCode.LogEvent(System.String,System.String,System.Diagnostics.EventLogEntryType,ASCOM.Utilities.GlobalConstants.EventLogErrors,System.String)">
<summary>
Add an event record to the ASCOM Windows event log
</summary>
<param name="Caller">Name of routine creating the event</param>
<param name="Msg">Event message</param>
<param name="Severity">Event severity</param>
<param name="Id">Id number</param>
<param name="Except">Initiating exception or Nothing</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.VersionCode.IsWow64">
<summary>
Returns true when the application is 32bit and running on a 64bit OS
</summary>
<returns>True when the application is 32bit and running on a 64bit OS</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.VersionCode.IsWow64Process(System.IntPtr,System.Boolean@)">
<summary>
Determines whether the specified process is running under WOW64 i.e. is a 32bit application running on a 64bit OS.
</summary>
<param name="hProcess">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.</param>
<param name="wow64Process">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.</param>
<returns>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.</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.VersionCode.DriverCompatibilityMessage(System.String,ASCOM.Utilities.VersionCode.Bitness,ASCOM.Utilities.TraceLogger)">
<summary>
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
</summary>
<param name="ProgID">ProgID of the driver to be assessed</param>
<param name="RequiredBitness">Application bitness for which application compatibility should be tested</param>
<returns>String compatibility message or empty string if driver is fully compatible</returns>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.PEReader">
<summary>
</summary>
</member>
<member name="T:ASCOM.Utilities.Profile">
<summary>
ASCOM Scope Driver Helper Registry Profile Object
</summary>
<remarks>
<para>This object provides facilities for registering ASCOM drivers with the Chooser, and for storing
persistence information in a shared area of the file system.</para>
<para>Please code to the IProfile interface</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.#ctor">
<summary>
Create a new Profile object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.#ctor(System.Boolean)">
<summary>
Create a new profile object ignoring profile not found exceptions if generated
</summary>
<param name="IgnoreExceptions">Ignore ProfileNotFound exceptions</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.Dispose(System.Boolean)">
<summary>
Disposes of resources used by the profile object - called by IDisposable interface
</summary>
<param name="disposing"></param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.Dispose">
<summary>
Disposes of resources used by the profile object
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Profile.DeviceType">
<summary>
The type of ASCOM device for which profile data and registration services are provided
(String, default = "Telescope")
</summary>
<value>String describing the type of device being accessed</value>
<returns>String describing the type of device being accessed</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown on setting the device type to empty string</exception>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Profile.RegisteredDeviceTypes">
<summary>
List the device types registered in the Profile store
</summary>
<value>List of registered device types</value>
<returns>A sorted arraylist of device type strings</returns>
<remarks>Use this to find the types of device that are registered in the Profile store.
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.RegisteredDevices(System.String)">
<summary>
List the devices of a given device type that are registered in the Profile store
</summary>
<param name="DeviceType">Type of devices to list</param>
<returns>An ArrayList of installed devices and associated device descriptions</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Throw if the supplied DeviceType is empty string or
null value.</exception>
<remarks>
Use this to find all the registerd devices of a given type that are in the Profile store
<para>If a DeviceType is supplied, where no device of that type has been registered before on this system,
an empty list will be returned</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.IsRegistered(System.String)">
<summary>
Confirms whether a specific driver is registered ort unregistered in the profile store
</summary>
<param name="DriverID">String reprsenting the device's ProgID</param>
<returns>Boolean indicating registered or unregisteredstate of the supplied DriverID</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.Register(System.String,System.String)">
<summary>
Registers a supplied DriverID and associates a descriptive name with the device
</summary>
<param name="DriverID">ProgID of the device to register</param>
<param name="DescriptiveName">Descriptive name of the device</param>
<remarks>Does nothing if already registered, so safe to call on driver load.</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.Unregister(System.String)">
<summary>
Remove all data for the given DriverID from the registry.
</summary>
<param name="DriverID">ProgID of the device to unregister</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks><para>This deletes the entire device profile tree, including the DriverID root key.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.GetValue(System.String,System.String,System.String,System.String)">
<summary>
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.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="SubKey">Subkey from the profile root from which to read the value</param>
<param name="DefaultValue">Default value to be used if there is no value currently set</param>
<returns>Retrieved variable value</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>
<para>Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key.</para>
<para>Does not provide access to other registry data types such as binary and doubleword. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.WriteValue(System.String,System.String,System.String,System.String)">
<summary>
Writes a string value to the profile using the supplied subkey for the given Driver ID and variable name.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="Value">The string value to be written</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.RestrictedAccessException">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</exception>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.Values(System.String,System.String)">
<summary>
Return a list of the (unnamed and named variables) under the given DriverID and subkey.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<returns>An ArrayList of KeyValuePairs</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.DeleteValue(System.String,System.String,System.String)">
<summary>
Delete the value from the registry. Name may be an empty string for the unnamed value. Value will be deleted from the subkey supplied.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>Specify "" to delete the unnamed value which is also known as the "default" value for a registry key. </remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.CreateSubKey(System.String,System.String)">
<summary>
Create a registry key for the given DriverID.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>If the SubKey argument contains a \ separated path, the intermediate keys will be created if needed. </remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.SubKeys(System.String,System.String)">
<summary>
Return a list of the sub-keys under the given DriverID
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<returns>An ArrayList of key-value pairs</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.DeleteSubKey(System.String,System.String)">
<summary>
Delete a registry key for the given DriverID. SubKey may contain \ separated path to key to be deleted.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="SubKey">Subkey from the profile root in which to write the value</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>The sub-key and all data and keys beneath it are deleted.</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.GetProfileXML(System.String)">
<summary>
Read an entire device profile and return it as an XML encoded string
</summary>
<param name="DriverId">The ProgID of the device</param>
<returns>Device profile encoded in XML</returns>
<remarks>Please see the code examples in this help file for a description of how to use this method.
<para>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.</para>
<para><pre>
&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;ASCOMProfileAL&gt;
&lt;SubKey&gt;
&lt;SubKeyName /&gt;
&lt;DefaultValue&gt;Default text value&lt;/DefaultValue&gt;
&lt;Values&gt;
&lt;Value&gt;
&lt;Name&gt;Valuename 1&lt;/Name&gt;
&lt;Data&gt;False&lt;/Data&gt;
&lt;/Value&gt;
&lt;Value&gt;
&lt;Name&gt;Valuename 2&lt;/Name&gt;
&lt;Data&gt;True&lt;/Data&gt;
&lt;/Value&gt;
&lt;/Values&gt;
&lt;/SubKey&gt;
&lt;SubKey&gt;
&lt;SubKeyName&gt;Settings&lt;/SubKeyName&gt;
&lt;DefaultValue /&gt;
&lt;Values&gt;
&lt;Value&gt;
&lt;Name&gt;Valuename 3&lt;/Name&gt;
&lt;Data&gt;1&lt;/Data&gt;
&lt;/Value&gt;
&lt;Value&gt;
&lt;Name&gt;Valuename 4&lt;/Name&gt;
&lt;Data&gt;53.4217&lt;/Data&gt;
&lt;/Value&gt;
&lt;/Values&gt;
&lt;/SubKey&gt;
&lt;/ASCOMProfileAL>
</pre></para></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.SetProfileXML(System.String,System.String)">
<summary>
Set an entire device profile from an XML encoded string
</summary>
<param name="DriverId">The ProgID of the device</param>
<param name="XmlProfile">An XML encoding of the profile</param>
<remarks>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.</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.GetProfile(System.String)">
<summary>
Read an entire device profile and return it as an ASCOMProfile class instance
</summary>
<param name="DriverId">The ProgID of the device</param>
<returns>Device profile represented as a recusrive class</returns>
<remarks>Please see the code examples in this help file for a description of how to use this method.</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.SetProfile(System.String,ASCOM.Utilities.ASCOMProfile)">
<summary>
Set an entire device profile from an ASCOMProfile class instance
</summary>
<param name="DriverId">The ProgID of the device</param>
<param name="NewProfileKey">A class representing the profile</param>
<remarks>Please see the code examples in this help file for a description of how to use this method.</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.MigrateProfile(System.String)">
<summary>
Migrate the ASCOM profile from registry to file store
</summary>
<param name="CurrentPlatformVersion">The platform version number of the current profile store beig migrated</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.DeleteValue(System.String,System.String)">
<summary>
Delete the value from the registry. Name may be an empty string for the unnamed value.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>Specify "" to delete the unnamed value which is also known as the "default" value for a registry key.
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.GetValue(System.String,System.String)">
<summary>
Retrieve a string value from the profile for the given Driver ID and variable name
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<returns>Retrieved variable value</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>
<para>Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key.</para>
<para>Does not provide access to other registry data types such as binary and doubleword. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.GetValue(System.String,System.String,System.String)">
<summary>
Retrieve a string value from the profile using the supplied subkey for the given Driver ID and variable name.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="SubKey">Subkey from the profile root from which to read the value</param>
<returns>Retrieved variable value</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>
<para>Name may be an empty string for the unnamed value. The unnamed value is also known as the "default" value for a registry key.</para>
<para>Does not provide access to other registry data types such as binary and doubleword. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.SubKeys(System.String)">
<summary>
Return a list of the sub-keys under the root of the given DriverID
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<returns>An ArrayList of key-value pairs</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.Values(System.String)">
<summary>
Return a list of the (unnamed and named variables) under the root of the given DriverID.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<returns>An ArrayList of KeyValuePairs</returns>
<remarks>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.
<para>The KeyValuePair objects are instances of the <see cref="T:ASCOM.Utilities.KeyValuePair">KeyValuePair class</see></para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Profile.WriteValue(System.String,System.String,System.String)">
<summary>
Writes a string value to the profile using the given Driver ID and variable name.
</summary>
<param name="DriverID">ProgID of the device to read from</param>
<param name="Name">Name of the variable whose value is retrieved</param>
<param name="Value">The string value to be written</param>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Thrown if DriverID is an empty string.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.DriverNotRegisteredException">Thrown if the driver is not registered,</exception>
<remarks>
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.
</remarks>
</member>
<member name="T:ASCOM.Utilities.SerialSpeed">
<summary>
Enumeration of serial port speeds for use with the Serial port
</summary>
<remarks>This contains an additional speed 230,400 baud that the COM component doesn't support.</remarks>
</member>
<member name="T:ASCOM.Utilities.SerialStopBits">
<summary>
Number of stop bits appended to a serial character
</summary>
<remarks>
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.
</remarks>
</member>
<member name="F:ASCOM.Utilities.SerialStopBits.None">
<summary>
No stop bits are used. This value is not supported. Setting the StopBits property to None raises an ArgumentOutOfRangeException.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialStopBits.One">
<summary>
One stop bit is used.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialStopBits.OnePointFive">
<summary>
1.5 stop bits are used.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialStopBits.Two">
<summary>
Two stop bits are used.
</summary>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.SerialParity">
<summary>
The type of parity used on the serial port
</summary>
<remarks>
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.
</remarks>
</member>
<member name="F:ASCOM.Utilities.SerialParity.Even">
<summary>
Sets the parity bit so that the count of bits set is an even number.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialParity.Mark">
<summary>
Leaves the parity bit set to 1.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialParity.None">
<summary>
No parity check occurs.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialParity.Odd">
<summary>
Sets the parity bit so that the count of bits set is an odd number.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialParity.Space">
<summary>
Leaves the parity bit set to 0.
</summary>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.SerialHandshake">
<summary>
The control protocol used by the serial port
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialHandshake.None">
<summary>
No control is used for the handshake.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialHandshake.RequestToSend">
<summary>
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.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialHandshake.RequestToSendXonXoff">
<summary>
Both the Request-to-Send (RTS) hardware control and the XON/XOFF software controls are used.
</summary>
<remarks></remarks>
</member>
<member name="F:ASCOM.Utilities.SerialHandshake.XonXoff">
<summary>
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.
</summary>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Serial">
<summary>
Creates a .NET serial port and provides a simple set of commands to use it.
</summary>
<remarks>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.
<para>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.</para>
</remarks>
<example>
Example of how to create and use an ASCOM serial port.
<code lang="vbnet" title="ASCOM Serial Port Example"
source="..\ASCOM Platform Examples\Examples\SerialExamples.vb"
/>
</example>
</member>
<member name="M:ASCOM.Utilities.Serial.Dispose">
<summary>
Disposes of resources used by the profile object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.Dispose(System.Boolean)">
<summary>
Disposes of resources used by the profile object - called by IDisposable interface
</summary>
<param name="disposing"></param>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.DataBits">
<summary>
Gets or sets the number of data bits in each byte
</summary>
<value>The number of data bits in each byte, default is 8 data bits</value>
<returns>Integer number of data bits in each byte</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The data bits value is less than 5 or more than 8</exception>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.DTREnable">
<summary>
Gets or sets the state of the DTR line
</summary>
<value>The state of the DTR line, default is enabled</value>
<returns>Boolean true/false indicating enabled/disabled</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.RTSEnable">
<summary>
Gets or sets use of the RTS handshake control line
</summary>
<value>The state of RTS line use, default is disabled (false)</value>
<returns>Boolean true/false indicating RTS line use enabled/disabled</returns>
<remarks>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 <see cref="P:ASCOM.Utilities.Serial.Handshake"/> property.</remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.Handshake">
<summary>
Gets or sets the type of serial handshake used on the serial link
</summary>
<value>The type of flow control handshake used on the serial line, default is none</value>
<returns>One of the SerialHandshake enumeration values</returns>
<remarks>Use of the RTS line can additionally be controlled by the <see cref="P:ASCOM.Utilities.Serial.RTSEnable"/> property.</remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.Parity">
<summary>
Gets or sets the type of parity check used over the serial link
</summary>
<value>The type of parity check used over the serial link, default none</value>
<returns>One of the SerialParity enumeration values</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.StopBits">
<summary>
Gets or sets the number of stop bits used on the serial link
</summary>
<value>the number of stop bits used on the serial link, default 1</value>
<returns>One of the SerialStopBits enumeration values</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.Connected">
<summary>
Gets or sets the connected state of the ASCOM serial port.
</summary>
<value>Connected state of the serial port.</value>
<returns><c>True</c> if the serial port is connected.</returns>
<remarks>Set this property to True to connect to the serial (COM) port. You can read the property to determine if the object is connected. </remarks>
<exception cref="T:ASCOM.Utilities.Exceptions.InvalidValueException">Throws this exception if the requested
COM port does not exist.</exception>
</member>
<member name="P:ASCOM.Utilities.Serial.Port">
<summary>
Gets or sets the number of the ASCOM serial port (Default is 1, giving COM1 as the serial port name).
</summary>
<value>COM port number of the ASCOM serial port.</value>
<returns>Integer, number of the ASCOM serial port</returns>
<remarks>This works for serial port names of the form COMnnn. Use PortName if your COM port name does not fit the form COMnnn.</remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.ReceiveTimeout">
<summary>
The maximum time that the ASCOM serial port will wait for incoming receive data (seconds, default = 5)
</summary>
<value>Integer, serial port timeout in seconds</value>
<returns>Integer, serial port timeout in seconds.</returns>
<remarks>The minimum delay timout that can be set through this command is 1 seconds. Use ReceiveTimeoutMs to set a timeout less than 1 second.</remarks>
<exception cref="T:ASCOM.InvalidValueException">Thrown when <i>value</i> is invalid (outside the range 1 to 120 seconds.)</exception>
</member>
<member name="P:ASCOM.Utilities.Serial.ReceiveTimeoutMs">
<summary>
The maximum time that the ASCOM serial port will wait for incoming receive data (milliseconds, default = 5000)
</summary>
<value>Integer, serial port timeout in milli-seconds</value>
<returns>Integer, serial port timeout in milli-seconds</returns>
<remarks>If a timeout occurs, an IO timeout error is raised. See ReceiveTimeout for an alternate form
using the timeout in seconds. </remarks>
<exception cref="T:ASCOM.InvalidValueException">Thrown when <i>value</i> is invalid.</exception>
</member>
<member name="P:ASCOM.Utilities.Serial.Speed">
<summary>
Gets and sets the baud rate of the ASCOM serial port
</summary>
<value>Port speed using the PortSpeed enum</value>
<returns>Port speed as a SerialSpeed enum value</returns>
<remarks>This is modelled on the COM component with possible values enumerated in the PortSpeed enum.</remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ClearBuffers">
<summary>
Clears the ASCOM serial port receive and transmit buffers
</summary>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.Receive">
<summary>
Receive at least one text character from the ASCOM serial port
</summary>
<returns>The characters received</returns>
<exception cref="T:System.TimeoutException">Thrown when a receive timeout occurs.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks>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. </remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ReceiveByte">
<summary>
Receive one binary byte from the ASCOM serial port
</summary>
<returns>The received byte</returns>
<exception cref="T:System.TimeoutException">Thrown when a receive timeout occurs.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks>Use this for 8-bit (binary data). If a timeout occurs, a TimeoutException is raised. </remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ReceiveCounted(System.Int32)">
<summary>
Receive exactly the given number of characters from the ASCOM serial port and return as a string
</summary>
<param name="Count">The number of characters to return</param>
<returns>String of length "Count" characters</returns>
<exception cref="T:System.TimeoutException">Thrown when a receive timeout occurs.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks>If a timeout occurs a TimeoutException is raised.</remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ReceiveCountedBinary(System.Int32)">
<summary>
Receive exactly the given number of characters from the ASCOM serial port and return as a byte array
</summary>
<param name="Count">The number of characters to return</param>
<returns>Byte array of size "Count" elements</returns>
<exception cref="T:System.TimeoutException">Thrown when a receive timeout occurs.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks>
<para>If a timeout occurs, a TimeoutException is raised. </para>
<para>This function exists in the COM component but is not documented in the help file.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ReceiveTerminated(System.String)">
<summary>
Receive characters from the ASCOM serial port until the given terminator string is seen
</summary>
<param name="Terminator">The character string that indicates end of message</param>
<returns>Received characters including the terminator string</returns>
<exception cref="T:System.TimeoutException">Thrown when a receive timeout occurs.</exception>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks>If a timeout occurs, a TimeoutException is raised.</remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ReceiveTerminatedBinary(System.Byte[])">
<summary>
Receive characters from the ASCOM serial port until the given terminator bytes are seen, return as a byte array
</summary>
<param name="TerminatorBytes">Array of bytes that indicates end of message</param>
<returns>Byte array of received characters</returns>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks>
<para>If a timeout occurs, a TimeoutException is raised.</para>
<para>This function exists in the COM component but is not documented in the help file.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.Transmit(System.String)">
<summary>
Transmits a string through the ASCOM serial port
</summary>
<param name="Data">String to transmit</param>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.TransmitBinary(System.Byte[])">
<summary>
Transmit an array of binary bytes through the ASCOM serial port
</summary>
<param name="Data">Byte array to transmit</param>
<exception cref="T:ASCOM.Utilities.Exceptions.SerialPortInUseException">Thrown when unable to acquire the serial port</exception>
<exception cref="T:ASCOM.NotConnectedException">Thrown when this command is used before setting Connect = True</exception>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.PortName">
<summary>
Sets the ASCOM serial port name as a string
</summary>
<value>Serial port name to be used</value>
<returns>Current serial port name</returns>
<remarks>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.</remarks>
</member>
<member name="P:ASCOM.Utilities.Serial.AvailableCOMPorts">
<summary>
Returns a list of all available ASCOM serial ports with COMnnn ports sorted into ascending port number order
</summary>
<value>String array of available serial ports</value>
<returns>A string array of available serial ports</returns>
<remarks><b>Update in platform 6.0.0.0</b> 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.
<para>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.</para></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.LogMessage(System.String,System.String)">
<summary>
Adds a message to the ASCOM serial trace file
</summary>
<param name="Caller">String identifying the module logging the message</param>
<param name="Message">Message text to be logged.</param>
<remarks>
<para>This can be called regardless of whether logging is enabled</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.MakeHex(System.String)">
<summary>
Translates a supplied string into hex characters
</summary>
<param name="p_Msg">The string to convert</param>
<returns>A string with each character represented as [xx]</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.WaitForSingleObject(System.IntPtr,System.UInt32)">
<summary>
OS level blocking wait for an event
</summary>
<param name="handle">The triggering even't handle</param>
<param name="milliseconds">Length of time to wait before timing out</param>
<returns>Status, 0 = success</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.WaitForThread(ASCOM.Utilities.Serial.ThreadData)">
<summary>
Sleep the calling thread until the worker thread has completed
</summary>
<param name="TData">ThreadData class holding required inputs, outputs and thread management information</param>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Serial.ThreadData">
<summary>
Worker thread data
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ThreadData.#ctor">
<summary>
Initialises a new ThreadData synchronisation object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Serial.ThreadData.ThreadCompleted">
<summary>
Signals that this thread has completed its work
</summary>
<remarks></remarks>
</member>
<member name="T:ASCOM.Utilities.Timer">
<summary>
Provides a repeating timer with associated tick event.
</summary>
<remarks>
<para>The interval resolution is about 20ms.If you need beter than this, you could use the WaitForMilliseconds
method to create your own solution.</para>
<para>You can create multiple instances of this object. When enabled, the Timer delivers Tick events periodically
(determined by setting the Interval property).</para>
<para>This component is now considered <b>obsolete</b> 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.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="T:ASCOM.Utilities.Timer.TickEventHandler">
<summary>
Timer tick event handler
</summary>
<remarks></remarks>
</member>
<member name="E:ASCOM.Utilities.Timer.Tick">
<summary>
Fired once per Interval when timer is Enabled.
</summary>
<remarks>To sink this event in Visual Basic, declare the object variable using the WithEvents keyword.</remarks>
</member>
<member name="M:ASCOM.Utilities.Timer.#ctor">
<summary>
Create a new timer component
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Timer.Dispose(System.Boolean)">
<summary>
Disposes of resources used by the profile object - called by IDisposable interface
</summary>
<param name="disposing"></param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Timer.Dispose">
<summary>
Disposes of resources used by the profile object
</summary>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Timer.Interval">
<summary>
The interval between Tick events when the timer is Enabled in milliseconds, (default = 1000)
</summary>
<value>The interval between Tick events when the timer is Enabled (milliseconds, default = 1000)</value>
<returns>The interval between Tick events when the timer is Enabled in milliseconds</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Timer.Enabled">
<summary>
Enable the timer tick events
</summary>
<value>True means the timer is active and will deliver Tick events every Interval milliseconds.</value>
<returns>Enabled state of timer tick events</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Timer.OnTimedEvent(System.Object,System.Object)">
<summary>
Timer event handler
</summary>
<remarks>Raises the Tick event</remarks>
</member>
<member name="T:ASCOM.Utilities.TraceLogger">
<summary>
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.
</summary>
<remarks>
<para>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.
</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.#ctor">
<summary>
Creates a new TraceLogger instance
</summary>
<remarks>The LogFileType is used in the file name to allow you to quickly identify which of
several logs contains the information of interest.
<para>This call enables automatic logging and sets the filetype to "Default".</para></remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.#ctor(System.String,System.String)">
<summary>
Creates a new TraceLogger instance and initialises filename and type
</summary>
<param name="LogFileName">Fully qualified trace file name or null string to use automatic file naming (recommended)</param>
<param name="LogFileType">String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11</param>
<remarks>The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the information of interest.</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.#ctor(System.String)">
<summary>
Create and enable a new TraceLogger instance with automatic naming based on the supplied log file type
</summary>
<param name="LogFileType">String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11</param>
<remarks>The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the information of interest.</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.Dispose(System.Boolean)">
<summary>
Disposes of the TraceLogger object
</summary>
<param name="disposing">True if being disposed by the application, False if disposed by the finalizer.</param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.Dispose">
<summary>
Disposes of the TraceLogger object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.Finalize">
<summary>
Finalizes the TraceLogger object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogIssue(System.String,System.String)">
<summary>
Logs an issue, closing any open line and opening a continuation line if necessary after the
issue message.
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<remarks>Use this for reporting issues that you don't want to appear on a line already opened
with StartLine</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.BlankLine">
<summary>
Insert a blank line into the log file
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogMessage(System.String,System.String,System.Boolean)">
<summary>
Logs a complete message in one call, including a hex translation of the message
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<param name="HexDump">True to append a hex translation of the message at the end of the message</param>
<remarks>
<para>Use this for straightforward logging requrements. Writes all information in one command.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogMessageCrLf(System.String,System.String)">
<summary>
Displays a message respecting carriage return and linefeed characters
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">The final message to terminate the line</param>
<remarks>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogStart(System.String,System.String)">
<summary>
Writes the time and identifier to the log, leaving the line ready for further content through LogContinue and LogFinish
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<remarks><para>Use this to start a log line where you want to write further information on the line at a later time.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogContinue(System.String,System.Boolean)">
<summary>
Appends further message to a line started by LogStart, appends a hex translation of the message to the line, does not terminate the line.
</summary>
<param name="Message">The additional message to appear in the line</param>
<param name="HexDump">True to append a hex translation of the message at the end of the message</param>
<remarks>
<para>This can be called multiple times to build up a complex log line if required.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogFinish(System.String,System.Boolean)">
<summary>
Closes a line started by LogStart with the supplied message and a hex translation of the message
</summary>
<param name="Message">The final message to terminate the line</param>
<param name="HexDump">True to append a hex translation of the message at the end of the message</param>
<remarks>
<para>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.</para>
</remarks>
</member>
<member name="P:ASCOM.Utilities.TraceLogger.Enabled">
<summary>
Enables or disables logging to the file.
</summary>
<value>True to enable logging</value>
<returns>Boolean, current logging status (enabled/disabled).</returns>
<remarks>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.</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.SetLogFile(System.String,System.String)">
<summary>
Sets the log filename and type if the constructor is called without parameters
</summary>
<param name="LogFileName">Fully qualified trace file name or null string to use automatic file naming (recommended)</param>
<param name="LogFileType">String identifying the type of log e,g, Focuser, LX200, GEMINI, MoonLite, G11</param>
<remarks>The LogFileType is used in the file name to allow you to quickly identify which of several logs contains the
information of interest.
<para><b>Note </b>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:</para>
<code>
TL = New TraceLogger()
TL.SetLogFile("","TraceName")
</code>
<para>If you are writing a .NET client then you can achieve the same end in one call:</para>
<code>
TL = New TraceLogger("",TraceName")
</code>
</remarks>
</member>
<member name="P:ASCOM.Utilities.TraceLogger.LogFileName">
<summary>
Return the full filename of the log file being created
</summary>
<value>Full filename of the log file</value>
<returns>String filename</returns>
<remarks>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.</remarks>
</member>
<member name="P:ASCOM.Utilities.TraceLogger.LogFilePath">
<summary>
Set or return the path to a directory in which the log file will be created
</summary>
<returns>String path</returns>
<remarks>Introduced with Platform 6.4.<para>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.</para></remarks>
</member>
<member name="P:ASCOM.Utilities.TraceLogger.IdentifierWidth">
<summary>
Set or return the width of the identifier field in the log message
</summary>
<value>Width of the identifier field</value>
<returns>Integer width</returns>
<remarks>Introduced with Platform 6.4.<para>If set, this width will be used instead of the default identifier field width.</para></remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogMessage(System.String,System.String)">
<summary>
Logs a complete message in one call
</summary>
<param name="Identifier">Identifies the meaning of the the message e.g. name of modeule or method logging the message.</param>
<param name="Message">Message to log</param>
<remarks>
<para>Use this for straightforward logging requrements. Writes all information in one command.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogContinue(System.String)">
<summary>
Appends further message to a line started by LogStart, does not terminate the line.
</summary>
<param name="Message">The additional message to appear in the line</param>
<remarks>
<para>This can be called multiple times to build up a complex log line if required.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.TraceLogger.LogFinish(System.String)">
<summary>
Closes a line started by LogStart with the supplied message
</summary>
<param name="Message">The final message to terminate the line</param>
<remarks>
<para>Can only be called once for each line started by LogStart.</para>
<para>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.</para>
<para>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.</para>
</remarks>
</member>
<member name="T:ASCOM.Utilities.Util">
<summary>
Provides a set of utility functions for ASCOM clients and drivers
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.Dispose(System.Boolean)">
<summary>
Disposes of resources used by the profile object - called by IDisposable interface
</summary>
<param name="disposing"></param>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.Dispose">
<summary>
Disposes of resources used by the profile object
</summary>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.WaitForMilliseconds(System.Int32)">
<summary>
Pauses for a given interval in milliseconds.
</summary>
<param name="Milliseconds">The number of milliseconds to wait</param>
<remarks>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. </remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DMSToDegrees(System.String)">
<summary>
Convert sexagesimal degrees to binary double-precision degrees
</summary>
<param name="DMS">The sexagesimal input string (degrees)</param>
<returns>The double-precision binary value (degrees) represented by the sexagesimal input</returns>
<remarks><para>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. </para>
<para>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. </para>
<para>Note that plain units, for example 23.128734523 are acceptable to the method. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HMSToHours(System.String)">
<summary>
Convert sexagesimal hours to binary double-precision hours
</summary>
<param name="HMS">The sexagesimal input string (hours)</param>
<returns>The double-precision binary value (hours) represented by the sexagesimal input </returns>
<remarks>
<para>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. </para>
<para>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. </para>
<para>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. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HMSToDegrees(System.String)">
<summary>
Convert sexagesimal hours to binary double-precision hours
</summary>
<param name="HMS">The sexagesimal input string (hours)</param>
<returns>The double-precision binary value (hours) represented by the sexagesimal input</returns>
<remarks>
<para>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. </para>
<para>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. </para>
<para>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. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDMS(System.Double)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with default delimiters DD° MM' SS"
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDMS(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with with default minute and second delimiters MM' SS"
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDMS(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with default second delimiter SS"
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDMS(System.Double,System.String,System.String,System.String)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<param name="SecDelim">The delimiter string to append to the seconds part</param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDMS(System.Double,System.String,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal degrees, minutes and seconds with specified second decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees and minutes </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<param name="SecDelim">The delimiter string to append to the seconds part</param>
<param name="SecDecimalDigits">The number of digits after the decimal point on the seconds part </param>
<returns>Sexagesimal representation of degrees input value, degrees, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single
characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHMS(System.Double)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with default delimiters HH:MM:SS
</summary>
<param name="Hours">The hours value to convert</param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHMS(System.Double,System.String)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with default minutes and seconds delimters MM:SS
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHMS(System.Double,System.String,System.String)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with default second delimiter of null string
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string separating minutes and seconds </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHMS(System.Double,System.String,System.String,System.String)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string separating minutes and seconds </param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHMS(System.Double,System.String,System.String,System.String,System.Int32)">
<summary>
Convert hours to sexagesimal hours, minutes, and seconds with specified number of second decimal places
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes </param>
<param name="MinDelim">The delimiter string separating minutes and seconds </param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<param name="SecDecimalDigits">The number of digits after the decimal point on the seconds part </param>
<returns>Sexagesimal representation of hours input value, hours, minutes and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHMS(System.Double)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with default delimters of HH:MM:SS
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHMS(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with the default second and minute delimiters of MM:SS
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHMS(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with the default second delimiter SS (null string)
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string separating minutes and seconds</param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHMS(System.Double,System.String,System.String,System.String)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string separating minutes and seconds</param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHMS(System.Double,System.String,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal hours, minutes, and seconds with the specified number of second decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string separating minutes and seconds</param>
<param name="SecDelim">The delimiter string to append to the seconds part </param>
<param name="SecDecimalDigits">The number of digits after the decimal point on the seconds part </param>
<returns>Sexagesimal representation of degrees input value, as hours, minutes, and seconds</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters. </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDM(System.Double)">
<summary>
Convert degrees to sexagesimal degrees and minutes with default delimiters DD° MM'
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDM(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal degrees and minutes with the default minutes delimeter MM'
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees </param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDM(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal degrees and minutes
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees </param>
<param name="MinDelim">The delimiter string to append to the minutes </param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToDM(System.Double,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal degrees and minutes with the specified number of minute decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="DegDelim">The delimiter string separating degrees </param>
<param name="MinDelim">The delimiter string to append to the minutes </param>
<param name="MinDecimalDigits">The number of digits after the decimal point on the minutes part </param>
<returns>Sexagesimal representation of degrees input value, as degrees and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHM(System.Double)">
<summary>
Convert hours to sexagesimal hours and minutes with default delimiters HH:MM
</summary>
<param name="Hours">The hours value to convert</param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHM(System.Double,System.String)">
<summary>
Convert hours to sexagesimal hours and minutes with default minutes delimiter MM (null string)
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHM(System.Double,System.String,System.String)">
<summary>
Convert hours to sexagesimal hours and minutes
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.HoursToHM(System.Double,System.String,System.String,System.Int32)">
<summary>
Convert hours to sexagesimal hours and minutes with supplied number of minute decimal places
</summary>
<param name="Hours">The hours value to convert</param>
<param name="HrsDelim">The delimiter string separating hours </param>
<param name="MinDelim">The delimiter string to append to the minutes part </param>
<param name="MinDecimalDigits">The number of digits after the decimal point on the minutes part </param>
<returns>Sexagesimal representation of hours input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHM(System.Double)">
<summary>
Convert degrees to sexagesimal hours and minutes with default delimiters HH:MM
</summary>
<param name="Degrees">The degrees value to convert</param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHM(System.Double,System.String)">
<summary>
Convert degrees to sexagesimal hours and minutes with default minute delimiter MM (null string)
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHM(System.Double,System.String,System.String)">
<summary>
Convert degrees to sexagesimal hours and minutes
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string to append to the minutes part</param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DegreesToHM(System.Double,System.String,System.String,System.Int32)">
<summary>
Convert degrees to sexagesimal hours and minutes with supplied number of minute decimal places
</summary>
<param name="Degrees">The degrees value to convert</param>
<param name="HrsDelim">The delimiter string separating hours and minutes</param>
<param name="MinDelim">The delimiter string to append to the minutes part</param>
<param name="MinDecimalDigits">Number of minutes decimal places</param>
<returns>Sexagesimal representation of degrees input value as hours and minutes</returns>
<remarks>
<para>If you need a leading plus sign, you must prepend it yourself. The delimiters are not restricted to single characters</para>
</remarks>
</member>
<member name="P:ASCOM.Utilities.Util.PlatformVersion">
<summary>
Current Platform version in Major.Minor form
</summary>
<returns>Current Platform version in Major.Minor form</returns>
<remarks>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.
<para>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.</para>
<para>If you still wish to turn the Platform Version into a Double value, you can use an
approach such as this:</para>
<code>If Double.Parse(Util.PlatformVersion, CultureInfo.InvariantCulture) &lt; 5.5 Then...</code>
<para>If you just wish to test whether the platform is greater than a particular level,
you can use the <see cref="M:ASCOM.Utilities.Util.IsMinimumRequiredVersion(System.Int32,System.Int32)">IsMinimumRequiredVersion</see> method.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.IsMinimumRequiredVersion(System.Int32,System.Int32)">
<summary>
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
</summary>
<param name="RequiredMajorVersion">The required major version number</param>
<param name="RequiredMinorVersion">The required minor version number</param>
<returns>True if the current platform version equals or exceeds the major and minor values provided</returns>
<remarks>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.
<code > 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
</code></remarks>
</member>
<member name="P:ASCOM.Utilities.Util.SerialTraceFile">
<summary>
Change the serial trace file (default C:\SerialTrace.txt)
</summary>
<value>Serial trace file name including fully qualified path e.g. C:\SerialTrace.txt</value>
<returns>Serial trace file name </returns>
<remarks>Change this before setting the SerialTrace property to True. </remarks>
</member>
<member name="P:ASCOM.Utilities.Util.SerialTrace">
<summary>
Enable/disable serial I/O tracing
</summary>
<value>Boolean - Enable/disable serial I/O tracing</value>
<returns>Enabled - disabled state of serial tracing</returns>
<remarks>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. </remarks>
</member>
<member name="P:ASCOM.Utilities.Util.TimeZoneName">
<summary>
The name of the computer's time zone
</summary>
<returns>The name of the computer's time zone</returns>
<remarks>This will be in the local language of the operating system, and will reflect any daylight/summer time that may be in
effect. </remarks>
</member>
<member name="P:ASCOM.Utilities.Util.TimeZoneOffset">
<summary>
UTC offset (hours) for the computer's clock
</summary>
<returns>UTC offset (hours) for the computer's clock</returns>
<remarks>The offset is in hours, such that UTC = local + offset. The offset includes any daylight/summer time that may be
in effect.</remarks>
</member>
<member name="P:ASCOM.Utilities.Util.UTCDate">
<summary>
The current UTC Date
</summary>
<returns>The current UTC Date</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Util.JulianDate">
<summary>
Current Julian date
</summary>
<returns>Current Julian date</returns>
<remarks>This is quantised to the second in the COM component but to a small decimal fraction in the .NET component</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DateLocalToJulian(System.DateTime)">
<summary>
Convert local-time Date to Julian date
</summary>
<param name="LocalDate">Date in local-time</param>
<returns>Julian date</returns>
<remarks>Julian dates are always in UTC </remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DateJulianToLocal(System.Double)">
<summary>
Convert Julian date to local-time Date
</summary>
<param name="JD">Julian date to convert</param>
<returns>Date in local-time for the given Julian date</returns>
<remarks>Julian dates are always in UTC</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DateUTCToJulian(System.DateTime)">
<summary>
Convert UTC Date to Julian date
</summary>
<param name="UTCDate">UTC date to convert</param>
<returns>Julian date</returns>
<remarks>Julian dates are always in UTC </remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DateJulianToUTC(System.Double)">
<summary>
Convert Julian date to UTC Date
</summary>
<param name="JD">Julian date</param>
<returns>Date in UTC for the given Julian date</returns>
<remarks>Julian dates are always in UTC </remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DateUTCToLocal(System.DateTime)">
<summary>
Convert UTC Date to local-time Date
</summary>
<param name="UTCDate">Date in UTC</param>
<returns>Date in local-time</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DateLocalToUTC(System.DateTime)">
<summary>
Convert local-time Date to UTC Date
</summary>
<param name="LocalDate">Date in local-time</param>
<returns> Date in UTC</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.ToStringCollection(System.String[])">
<summary>
Convert a string safearray to an ArrayList that can be used in scripting languages
</summary>
<param name="stringArray">Array of strings</param>
<returns>Collection of integers</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.ToIntegerCollection(System.Int32[])">
<summary>
Convert an integer safearray to an ArrayList collection that can be used in scripting languages
</summary>
<param name="integerArray">Safearray of integers</param>
<returns>Colection of integers</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.ConvertUnits(System.Double,ASCOM.Utilities.Units,ASCOM.Utilities.Units)">
<summary>
Convert from one set of speed / temperature / pressure rain rate units to another
</summary>
<param name="InputValue">Value to convert</param>
<param name="FromUnits">Integer value from the Units enum indicating the value's current units</param>
<param name="ToUnits">Integer value from the Units enum indicating the units to which the input value should be converted</param>
<returns>Input value expressed in the new units</returns>
<exception cref="T:ASCOM.InvalidValueException">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</exception>
<remarks>
<para>Conversions available:</para>
<list type="bullet">
<item>metres per second &lt;==&gt; miles per hour &lt;==&gt; knots</item>
<item>Celsius &lt;==&gt; Farenheit &lt;==&gt; Kelvin</item>
<item>hecto Pascals (hPa) &lt;==&gt; milli bar(mbar) &lt;==&gt; mm of mercury &lt;==&gt; inches of mercury</item>
<item>mm per hour &lt;==&gt; inches per hour</item>
</list>
<para>Knots conversions use the international nautical mile definition (1 nautical mile = 1852m) rather than the orginal UK or US Admiralty definitions.</para>
<para>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.</para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.Humidity2DewPoint(System.Double,System.Double)">
<summary>
Calculate the dew point (°Celsius) given the ambient temperature (°Celsius) and relative humidity (%)
</summary>
<param name="RelativeHumidity">Relative humidity expressed in percent (0.0 .. 100.0)</param>
<param name="AmbientTemperature">Ambient temperature (°Celsius)</param>
<returns>Dew point (°Celsius)</returns>
<exception cref="T:ASCOM.InvalidValueException">When relative humidity &lt; 0.0% or &gt; 100.0%></exception>
<exception cref="T:ASCOM.InvalidValueException">When ambient temperature &lt; absolute zero or &gt; 100.0C></exception>
<remarks>'Calculation uses Vaisala formula for water vapour saturation pressure and is accurate to 0.083% over -20C - +50°C
<para>http://www.vaisala.com/Vaisala%20Documents/Application%20notes/Humidity_Conversion_Formulas_B210973EN-F.pdf </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.DewPoint2Humidity(System.Double,System.Double)">
<summary>
Calculate the relative humidity (%) given the ambient temperature (°Celsius) and dew point (°Celsius)
</summary>
<param name="DewPoint">Dewpoint in (°Celsius)</param>
<param name="AmbientTemperature">Ambient temperature (°Celsius)</param>
<returns>Humidity expressed in percent (0.0 .. 100.0)</returns>
<exception cref="T:ASCOM.InvalidValueException">When dew point &lt; absolute zero or &gt; 100.0C></exception>
<exception cref="T:ASCOM.InvalidValueException">When ambient temperature &lt; absolute zero or &gt; 100.0C></exception>
<remarks>'Calculation uses the Vaisala formula for water vapour saturation pressure and is accurate to 0.083% over -20C - +50°C
<para>http://www.vaisala.com/Vaisala%20Documents/Application%20notes/Humidity_Conversion_Formulas_B210973EN-F.pdf </para>
</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.ConvertPressure(System.Double,System.Double,System.Double)">
<summary>
Convert atmospheric pressure from one altitude above mean sea level to another
</summary>
<param name="Pressure">Measured pressure in hPa (mBar) at the "From" altitude</param>
<param name="FromAltitudeAboveMeanSeaLevel">"Altitude at which the input pressure was measured (metres)</param>
<param name="ToAltitudeAboveMeanSeaLevel">Altitude to which the pressure is to be converted (metres)</param>
<returns>Pressure in hPa at the "To" altitude</returns>
<remarks>Uses the equation: p = p0 * (1.0 - 2.25577E-05 h)^5.25588</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.ArrayToVariantArray(System.Object)">
<summary>
Convert an array of .NET built-in types to an equivalent Variant arrray (array of .NET Objects)
</summary>
<param name="SuppliedObject">The array to convert to variant types</param>
<returns>A Variant array</returns>
<exception cref="T:ASCOM.InvalidValueException">If the supplied array contains elements of an unsuported Type.</exception>
<exception cref="T:ASCOM.InvalidValueException">If the array rank is outside the range 1 to 5.</exception>
<exception cref="T:ASCOM.InvalidValueException">If the supplied object is not an array.</exception>
<remarks>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.
<para>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.</para>
<para>The supported .NET types are:
<list type="bullet">
<item><description>Int16</description></item>
<item><description>Int32</description></item>
<item><description>UInt16</description></item>
<item><description>UInt32</description></item>
<item><description>UInt64</description></item>
<item><description>Byte</description></item>
<item><description>SByte</description></item>
<item><description>Single</description></item>
<item><description>Double</description></item>
<item><description>Boolean</description></item>
<item><description>DateTime</description></item>
<item><description>String</description></item>
</list>
</para>
<para>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.</para></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.ProcessArray``1(System.Object,System.Array)">
<summary>
Turns an array of type T into a variant array of Object
</summary>
<typeparam name="T">The type to convert to Variant</typeparam>
<param name="SuppliedObject">The supplied array of Type T as an Object</param>
<param name="SuppliedArray">The supplied array of Type T as an Array</param>
<returns>The array with all elements represented as Variant objects</returns>
<remarks>Works for 1 to 5 dimensional arrays of any Type</remarks>
</member>
<member name="P:ASCOM.Utilities.Util.MajorVersion">
<summary>
Platform major version number
</summary>
<value>Platform major version number</value>
<returns>Integer version number</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Util.MinorVersion">
<summary>
Platform minor version number
</summary>
<value>Platform minor version number</value>
<returns>Integer version number</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Util.ServicePack">
<summary>
Platform service pack number
</summary>
<value>Platform service pack number</value>
<returns>Integer service pack number</returns>
<remarks></remarks>
</member>
<member name="P:ASCOM.Utilities.Util.BuildNumber">
<summary>
Platform build number
</summary>
<value>Platform build number</value>
<returns>Integer build number</returns>
<remarks></remarks>
</member>
<member name="M:ASCOM.Utilities.Util.COMRegisterActions(System.Type)">
<summary>
Function that is called by RegAsm when the assembly is registered for COM
</summary>
<remarks>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</remarks>
</member>
<member name="M:ASCOM.Utilities.Util.COMUnRegisterActions(System.Type)">
<summary>
Function that is called by RegAsm when the assembly is registered for COM
</summary>
</member>
</members>
</doc>