ISwitchV3 Interface
- class Switch
Bases:
ASCOM.DeviceInterfaceASCOM Standard ISafetyMonitor V3 Interface
Important
This interface has some potentially confusing aspects. Please see The Switch Interface seems complex and confusing. Help me.
Methods
- Switch.Action(ActionName: str, ActionParameters)
Added in version 2: Recommended over (now) deprecated
CommandBlind(),CommandBool(), andCommandString()as more flexible extension mechanic.Invoke the specified device-specific custom action
- Parameters:
ActionName (str) – A name from
SupportedActionsthat represents the action to be carried out.ActionParameters (str) – List of required arguments or empty string if none are required.
- Returns:
Action response. The meaning of returned strings is set by the driver author. See notes below.
- Return type:
string
- Raises:
MethodNotImplementedException – If no actions at all are supported
ActionNotImplementedException – If the driver does not support the requested ActionName. The supported action names are listed in
SupportedActions.NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Important
Must be implemented but may throw
MethodNotImplementedExceptionif no custom actions are supported.This method, combined with
SupportedActions, is the supported mechanic for adding non-standard functionality.Note
Action names must be case insensitive, so for example SelectWheel, selectwheel and SELECTWHEEL all refer to the same action.
An example of a string response: Suppose filter wheels start to appear with automatic wheel changers; new actions could be QueryWheels and SelectWheel. The former returning a formatted list of wheel names and the second taking a wheel name and making the change, returning appropriate values to indicate success or failure.
- Switch.CanAsync(Id: int)
Added in version 3: Member added
Flag indicating whether this switch can operate asynchronously. See
SetAsyncfor details of asynchronous switch operations.
- Parameters:
Id (int) – the specified switch number (0 to
MaxSwitch- 1)- Returns:
The specified switch device can operate asynchronously.
- Return type:
boolean
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
This is a mandatory method and must not throw a
MethodNotImplementedException.
- Switch.CancelAsync(Id: int)
Added in version 3: Member added
Cancels an in-progress asynchronous state change operation. See
SetAsyncfor details of asynchroous switch operations.
- Parameters:
Id (int) – the specified switch number (0 to
MaxSwitch- 1)- Returns:
Nothing
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
This is a mandatory method and must not throw a
MethodNotImplementedException.Note
On return, calls to
StateChangeCompletefor this switch will raise anOperationCancelledException, which will continue to be the case until a new asynchronous operation is started andStateChangeCompletereturns either True or False as appropriate.See
SetAsyncfor details of asynchronous switch operations.
- Switch.CanWrite(Id: int)
Added in version 2: Member added
- Parameters:
Id (int) – the specified switch number (0 to
MaxSwitch- 1)- Returns:
True if the specified switch can be written to.
- Return type:
boolean
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Note
Examples of switches that cannot be written to include a limit switch or a sensor.
- Switch.CommandBlind(Command: str, Raw: bool)
Added in version 2: Member added as part of common interface elements.
Deprecated since version 3: Use the more flexible
Action()andSupportedActionsmechanic. See Notes below.Transmit an arbitrary string to the device and does not wait for a response.
- Parameters:
Command (str) – The literal command string to be transmitted.
Raw (bool) – If True, command is transmitted ‘as-is’. If False, then protocol framing characters may be added prior to transmission.
- Returns:
Nothing
- Raises:
MethodNotImplementedException – If the method is not implemented
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Deprecated, may result in
MethodNotImplementedExceptionNote
The CommandXXX methods are a historic mechanic that provides clients with direct and unimpeded access to change device hardware configuration. While highly enabling for clients, this mechanic is inherently risky because clients can fundamentally change hardware operation without the driver being aware that a change is taking / has taken place.
The newer
ActionandSupportedActionsmechanic provides discrete, named, functions that can deliver any functionality required.They do need driver authors to make provision for them within the driver, but this approach is much lower risk than using the CommandXXX methods because it enables the driver to resolve conflicts between standard device interface commands and extended commandsprovided as Actions.The driver is always aware of what is happening and can adapt more effectively to client needs.
- Switch.CommandBool(Command: str, Raw: bool)
Added in version 2: Member added as part of common interface elements.
Deprecated since version 3: Use the more flexible
Action()andSupportedActionsmechanic. See Notes below.Transmit an arbitrary string to the device and wait for a boolean response.
- Parameters:
Command (str) – The literal command string to be transmitted.
Raw (bool) – If True, command is transmitted ‘as-is’. If False, then protocol framing characters may be added prior to transmission.
- Returns:
True/False response from the command
- Return type:
boolean
- Raises:
MethodNotImplementedException – If the method is not implemented
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Deprecated, may result in
MethodNotImplementedExceptionNote
The CommandXXX methods are a historic mechanic that provides clients with direct and unimpeded access to change device hardware configuration. While highly enabling for clients, this mechanic is inherently risky because clients can fundamentally change hardware operation without the driver being aware that a change is taking / has taken place.
The newer
ActionandSupportedActionsmechanic provides discrete, named, functions that can deliver any functionality required.They do need driver authors to make provision for them within the driver, but this approach is much lower risk than using the CommandXXX methods because it enables the driver to resolve conflicts between standard device interface commands and extended commandsprovided as Actions.The driver is always aware of what is happening and can adapt more effectively to client needs.
- Switch.CommandString(Command: str, Raw: bool)
Added in version 2: Member added as part of common interface elements.
Deprecated since version 3: Use the more flexible
Action()andSupportedActionsmechanic. See Notes below.Transmit an arbitrary string to the device and wait for a string response.
- Parameters:
Command (str) – The literal command string to be transmitted.
Raw (bool) – If True, command is transmitted ‘as-is’. If False, then protocol framing characters may be added prior to transmission.
- Returns:
String response from the command
- Return type:
string
- Raises:
MethodNotImplementedException – If the method is not implemented
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Deprecated, may result in
MethodNotImplementedExceptionNote
The CommandXXX methods are a historic mechanic that provides clients with direct and unimpeded access to change device hardware configuration. While highly enabling for clients, this mechanic is inherently risky because clients can fundamentally change hardware operation without the driver being aware that a change is taking / has taken place.
The newer
ActionandSupportedActionsmechanic provides discrete, named, functions that can deliver any functionality required.They do need driver authors to make provision for them within the driver, but this approach is much lower risk than using the CommandXXX methods because it enables the driver to resolve conflicts between standard device interface commands and extended commandsprovided as Actions.The driver is always aware of what is happening and can adapt more effectively to client needs.
- async Switch.Connect()
Added in version 3: Preferred asynchronous connection mechanic. See Important section below.
Connect to the device asynchronously. Use this to connect to a device rather than setting
ConnectedtoTrue.
- Returns:
Nothing
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Important
Non-Blocking. On return,
Connectingmust beTrueunless already connected. Connection has successfully completed whenConnectingbecomes (or is)False.This is a mandatory method and must not throw a
MethodNotConnectedException.Use this to connect to a device rather than setting
ConnectedtoTrue.Note
New in Switch V3
- async Switch.Disconnect()
Added in version 3: Preferred asynchronous connection mechanic. See Important section below.
Disconnect from the device asynchronously. Use this to disconnect from a device rather than setting
ConnectedtoFalse.
- Returns:
Nothing
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Important
Non-Blocking. On return,
Connectingmust beTrueunless already disconnected. Disconnect has successfully completed whenConnectingbecomes (or is)False.This is a mandatory method and must not throw a
MethodNotImplementedException.Use this to disconnect from a device rather than setting
ConnectedtoFalse.Note
New in Switch V3
- Switch.GetSwitch(Id: int)
Return the state of switch
Idas a boolean. See The Switch Interface seems complex and confusing. Help me.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
The state of the switch
Id.- Return type:
boolean
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)InvalidOperationException – If there is a temporary condition that prevents the switch’s value being returned, including after power-up if the switche’s state is unknown (not yet set).
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
This is a mandatory method and must not throw a
MethodNotImplementedException.Do not use this as a way to tell is a
SetAsync()has completed. It is possible thatGetSwitch(Id)may beTrueorFalsewhile the async process is still underway. UseStateChangeComplete()to determine if a call toSetAsync()has completedNote
- For a variable output device
GetSwitch()must returnFalseif it is at itsminimum value, else
True.Some switches do not support reading their state although they do allow state to be set. In these cases, on startup, the driver can not know the hardware state and it is recommended that the driver either:
Sets the switch to a known state on connection
Throws an
InvalidOperationException`until the client software has set the switch state for the first timeIn both cases the driver should save a local copy of the switch state which it last set and return this through
GetSwitch()andGetSwitchValue(). See The Switch Interface seems complex and confusing. Help me.
- Switch.GetSwitchDescription(Id: int)
Added in version 2: Member added.
Gets the description of the specified switch. This is to allow a fuller description of the switch to be returned, for example for a tool tip.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
String giving the switch description.
- Return type:
string
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
- Switch.GetSwitchName(Id: int)
Gets the “short” name of the specified switch.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
String giving the switch name.
- Return type:
string
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
- Switch.GetSwitchValue(Id: int)
Added in version 2: Member added.
Return the value of switch
Idas a float. See The Switch Interface seems complex and confusing. Help me.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
The value of the switch
Id. The value is expected to be betweenMinSwitchValue()andMaxSwitchValue()in steps ofSwitchStep.- Return type:
float
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)InvalidOperationException – If there is a temporary condition that prevents the device value being returned, including after power-up if the switch’s state is unknown (not yet set).
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
This is a mandatory method and must not throw a
MethodNotImplementedException.Do not use this as a way to tell is a
SetAsyncValue()has completed. The value may be anything while the async process is still underway, including the requested value. UseStateChangeComplete()to determine if a call toSetAsyncValue()has completedNote
For a boolean on/off switch,
GetSwitchValue()must returnMinSwitchValueif the switch is off, andMaxSwitchValueif the switch is on.Some switches do not support reading their state although they do allow state to be set. In these cases, on startup, the driver can not know the hardware state and it is recommended that the driver either:
Sets the switch to a known state on connection
Throws an
InvalidOperationExceptionuntil the client software has set the switch state for the first timeIn both cases the driver should save a local copy of the state which it last set and return this through
GetSwitchValue()andGetSwitch(). See The Switch Interface seems complex and confusing. Help me.
- Switch.MaxSwitchValue(Id: int)
Added in version 2: Member added.
Returns the maximum value for switch
Id
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
The maximum value to which this switch can be set or which a read only sensor will return.
- Return type:
float
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
This is a mandatory method and must not throw a
MethodNotImplementedException.Note
This must be greater than
MinSwitchValue()for switchId..For an on/off switch,
MaxSwitchValuemust return the value 1.0.
- Switch.MinSwitchValue(Id: int)
Added in version 2: Member added.
Returns the maximum value for switch
Id
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
The maximum value to which this switch can be set or which a read only sensor will return.
- Return type:
float
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
This is a mandatory method and must not throw a
MethodNotImplementedException.Note
This must be less than
MaxSwitchValue()for switchId.For an on/off switch,
MinSwitchValuemust return the value 0.0.
- Switch.SetAsync(Id: int, State: bool)
Added in version 3: Member added.
Asynchronouly Set a switch to the specified boolean on/off state.
Non-blocking: Returns immediately after successfully starting the state change with
StateChangeComplete()for the given switchId=FalseSee Notes.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)State (bool) – The required control state (on or off)
- Returns:
Nothing
- Raises:
MethodNotImplementedException – If
CanAsync()is False for switchIdInvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Note
Asynchronous (non-blocking): The method returns as soon as the state change operation has been successfully started, with
StateChangeComplete()for the given switchId=False. After the state change has completedStateChangeComplete()becomesTrue.Switch devices are numbered from 0 to
MaxSwitch- 1.
GetSwitchValue()for switchIdmust returnMaxSwitchValue()for that switch if the set state isTrue, andMinSwitchValue()for that switch if the set state isFalse.
- Switch.SetAsyncValue(Id: int, Value: float)
Added in version 3: Member added.
Asynchronously set a switch to the specified float value.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)Value (float) – The value to be set, between
MinSwitchValue()andMaxSwitchValue`()for switchId- Returns:
Nothing
- Raises:
MethodNotImplementedException – If either
CanWrite()orCanAsync()is False for switchIdInvalidValueException – If
Idis out of range (0 toMaxSwitch- 1), or ifValueis not betweenMinSwitchValue()andMaxSwitchValue`()for switchIdNotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
- Switch.SetSwitch(Id: int, State: bool)
Set a switch to the specified boolean on/off state
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)State (bool) – The required control state (on or off)
- Returns:
Nothing
- Raises:
MethodNotImplementedException – If
CanWrite()is False for switchIdInvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Note
GetSwitchValue()for switchIdmust returnMaxSwitchValue()for that switch if the set state isTrue, andMinSwitchValue()for that switch if the set state isFalse.
- Switch.SetSwitchName(Id: int, Name: str)
Added in version 2: Member added.
Set a switch’s name to the specified value.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)Name (str) – The name of the switch
- Returns:
Nothing
- Raises:
MethodNotImplementedException – If the switch name cannot be set by the client
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1)NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
- Switch.SetSwitchValue(Id: int, Value: float)
Added in version 2: Member added.
Set a switch’s value to the specified float value.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)Value (float) – The value to be set, between
MinSwitchValue()andMaxSwitchValue`()for switchId- Returns:
Nothing
- Raises:
MethodNotImplementedException – If
CanWrite()is False for switchIdInvalidValueException – If
Idis out of range (0 toMaxSwitch- 1), or ifValueis not betweenMinSwitchValue()andMaxSwitchValue`()for switchIdNotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
- Switch.SetupDialog()
Launches a configuration dialogue box for the driver. The call will not return until the user clicks OK or cancels manually.
Please note that this method is only valid for COM drivers. Alpaca devices should provide configuration through the Alpaca HTML endpoints and should not implement a SetupDialog endpoint.
- Returns:
Nothing
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
MethodNotImplementedExceptionNote
Blocking It is permissible that the configuration dialog is modal, and for the driver not to respond to other calls while this dialog is open.
- Switch.StateChangeComplete(Id: int)
Added in version 3: Member added.
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
True if the last
SetAsync()orSetAsyncValue()has completed and the switch is in the requested state.- Return type:
boolean
- Raises:
MethodNotImplementedException – If
CanAsync()is False for switchIdOperationCancelledException – If an in-progress state change is cancelled by a call to
CancelAsync()call for switchIdInvalidValueException – If
Idis out of range (0 toMaxSwitch- 1), or ifValueis not betweenMinSwitchValue()andMaxSwitchValue`()for switchIdNotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
- Switch.SwitchStep(Id: int)
Added in version 2: Member added.
The step size that this switch supports (the difference between successive values of the switch).
- Parameters:
Id (int) – The specified switch number (0 to
MaxSwitch- 1)- Returns:
The step size for this switch.
- Return type:
float
- Raises:
InvalidValueException – If
Idis out of range (0 toMaxSwitch- 1), or ifValueis not betweenMinSwitchValue()andMaxSwitchValue`()for switchIdNotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
MethodNotImplementedExceptionImportant
SwitchStepmust be greater than zero and the number of steps can be calculated as:\[((MaxSwitchValue - MinSwitchValue) / SwitchStep) + 1.\]
Properties
- property Switch.Connected: boolean
Changed in version 3: Writing to change connection state superseded by asynchronous
Connect(),Disconnect(), andConnecting.(Read/Write) Retrieve or set the connected state of the device. Writing is deprecated, use the newer
Connect()andDisconnect()methods, and the newerConnectingproperty. See remarks below.Set
Trueto connect to the device hardware. SetFalseto disconnect from the device hardware. You can also read the property to check whether it is connected. This reports the current hardware state. See Notes below.
- Returns:
True if connected to the hardware, else false.
- Return type:
boolean
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Deprecation Notice
Property-write is deprecated as of Switch V3. Starting with Platform 7 and the interface revisions contained therein, writing to Connected is discouraged. To connect and disconnect, use the newer non-blocking
Connect()andDisconnect()methods, with the newConnectingproperty serving as the completion property.Attention
Must be implemented
Note
Do not use a
NotConnectedExceptionhere, that exception is for use in other methods that require a connection in order to succeed.The Connected property sets and reports the state of connection to the device hardware. For a hub this means that Connected will be
Truewhen the first driver connects and will only be set to False when all drivers have disconnected. A second driver may find that Connected is alreadyTrueand setting Connected toFalsedoes not report Connected asFalse. This is not an error because the physical state is that the hardware connection is stillTrue.Multiple calls setting Connected to
TrueorFalsewill not cause an error.
- property Switch.Connecting: Boolean
Added in version 3: Preferred asynchronous connection mechanic. See Notes below.
- Returns:
Returns True while the device is undertaking an asynchronous connect or disconnect operation.
- Return type:
boolean
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
This is the correct property for determing when the non-blocking methods
Connect()orDisconnect()have completed. Completion is whenConnectingbecomesFalseafter calling either of these methods.New in ISwitchV3
- property Switch.Description: String
- Returns:
Description of the device such as manufacturer and model number. Any ASCII characters may be used.
- Return type:
string
- Raises:
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
This describes the device, not the driver. See the
DriverInfoproperty for information on the ASCOM driver.The description length must be a maximum of 64 characters so that it can be used in FITS image headers, which are limited to 80 characters including the header name.
- property Switch.DeviceState: List[StateValue]
Added in version 3: To allow reduction of status polling
- Returns:
List of
StateValueobjects representing the operational properties of this device. See What is the “read all” feature and what are its rules?.- Return type:
List
Since a single Switch device can be configured to provide many controllable switches, a standard is required to enable multiple controllable switch states to be returned by the Switch device. The standard is:
The controllable switch number must be appended to the name of the property when constructing the DeviceState property name.For the GetSwitch property, DeviceState property names would start at GetSwitch0 and progress through GetSwitch1, GetSwitch2 etc. until reaching the last controllable switch number: MaxSwitch - 1. A similar model applies to the GetSwitchValue and StateChangeConplete properties.
- E.g. For a Switch device with four controllable switches, the DeviceState property names would be:
GetSwitch0, GetSwitch1, GetSwitch2, GetSwitch3
GetSwitchValue0, GetSwitchValue1, GetSwitchValue2, GetSwitchValue3
StateChangeComplete0, StateChangeComplete1, StateChangeComplete2, StateChangeComplete3
Note
For more info see What is the “read all” feature and what are its rules?.
Available only for the Switch Interface Version 4 and later.
- property Switch.DriverInfo: String
- Returns:
Descriptive and version information about the ASCOM driver
- Return type:
string
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
This string may contain line endings and may be hundreds to thousands of characters long.It is intended to display detailed information on the ASCOM driver, including version and copyright data. See the
Descriptionproperty for information on the device itself.To get the driver version in a parse-able string, use theDriverVersionproperty.
- property Switch.DriverVersion: String
- Returns:
String containing only the major and minor version of the driver.
- Return type:
string
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
This must be in the form “n.n”. It should not to be confused with the
InterfaceVersionproperty, which is the version of this specification supported by the driver.On systems with a comma as the decimal point you may need to make accommodations to parse the value.
- property Switch.InterfaceVersion: Short
- Returns:
ASCOM Device interface definition version that this device supports. Should return 4 for this interface version.
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
This is a single “short” integer indicating the version of this specific ASCOM universal interface definition. For example, for ICameraV4, this will be 4. It should not to be confused with the
DriverVersionproperty, which is the major.minor version of the driver for this device.
- property Switch.MaxSwitch: integer
Count of switches managed by this driver.
- Returns:
Number of switches managed by this driver
- Return type:
integer
- Raises:
NotConnectedException – If the device is not connected
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Note
Switches are numbered from 0 to
MaxSwitch- 1.
- property Switch.Name: String
- Returns:
The short name of the driver, for display purposes.
- Return type:
string
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
The
Descriptionproperty is used to return info about the device rather than the driver.
- property Switch.SupportedActions: COM: ArrayList of String elements, Alpaca: Array of String
Added in version 2: Recommended over (now) deprecated
CommandBlind(),CommandBool(), andCommandString()as more flexible extension mechanic.Returns the list of custom action names supported by this driver, to be used with
Action(),
- Returns:
The list of custom action names supported by this driver
- Return type:
COM: ArrayList of String elements, Alpaca: Array of String
- Raises:
DriverException – An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. Includes communication errors.
Attention
Must be implemented, must not throw a
PropertyNotImplementedExceptionNote
This method, combined with
Action(), is the supported mechanic for adding non-standard functionality.SupportedActions is a “discovery” mechanism that enables clients to know which Actions a device supports without having to exercise the Actions themselves. This mechanism is necessary because there could be people / equipment safety issues if actions are called unexpectedly or out of a defined process sequence. It follows from this that SupportedActions must return names that match the spelling of custom action names exactly, without additional descriptive text. However, returned names may use any casing because the
ActionNameparameter ofAction()is case insensitive.