|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface TelescopeOrbProcess
ORB process on telescopes.
Method Summary | |
---|---|
void |
abortSlew(long telescopeId)
Stops a slew in progress. |
TelescopePierSide |
destinationSideOfPier(long telescopeId,
double rightAscension,
double declination)
Predicts side of pier for German equatorial mounts. |
void |
findHome(long telescopeId)
Locates the telescope's "home" position (synchronous). |
double |
getAltitude(long telescopeId)
Returns the altitude above the local horizon of the telescope's current position (degrees, positive up). |
List<TelescopeAxisRate> |
getAxisRateList(long telescopeId,
TelescopeAxis axis)
Determine the rates at which the telescope may be moved about the specified axis by the moveAxis(long, TelescopeAxis, double) method. |
double |
getAzimuth(long telescopeId)
Returns the azimuth at the local horizon of the telescope's current position (degrees, North-referenced, positive East/clockwise). |
TelescopeCapabilities |
getCapabilities(Locale locale,
long telescopeId)
Returns all capabilities of a telescope. |
double |
getDeclination(long telescopeId)
Returns the declination (degrees) of the telescope's current equatorial coordinates, in the coordinate system given by the getCharacteristics(long).getEquatorialSystem() method. |
double |
getDeclinationRate(long telescopeId)
Returns the declination tracking rate (default = 0.0). |
TelescopeFeatures |
getFeatures(Locale locale,
long telescopeId)
Returns all features of a telescope. |
double |
getGuideRateDeclination(long telescopeId)
Returns the current declination movement rate offset for telescope guiding. |
double |
getGuideRateRightAscension(long telescopeId)
Returns the current Right Ascension movement rate offset for telescope guiding. |
TelescopeOpticalFeatures |
getOpticalFeatures(Locale locale,
long telescopeId)
Returns the optical features of a telescope. |
double |
getRightAscension(long telescopeId)
Returns the right ascension (hours) of the telescope's current equatorial coordinates, in the coordinate system given by the getCharacteristics(long).getEquatorialSystem() method. |
double |
getRightAscensionRate(long telescopeId)
Returns the right ascension tracking rate offset from sidereal (default = 0.0). |
TelescopePierSide |
getSideOfPier(long telescopeId)
Returns the pointing state of the mount. |
TimeSynchronization |
getSiderealTime(long telescopeId,
long clientTransmitTime)
Returns the synchronization of local apparent sidereal time from the telescope's internal clock (nanoseconds, sidereal). |
double |
getSiteElevation(long telescopeId)
Returns the elevation above mean sea level of the site at which the telescope is located. |
double |
getSiteLatitude(long telescopeId)
Returns the geodetic(map) latitude of the site at which the telescope is located. |
double |
getSiteLongitude(long telescopeId)
Returns the longitude of the site at which the telescope is located. |
short |
getSlewSettleTime(long telescopeId)
Returns the post-slew settling time. |
double |
getTargetDeclination(long telescopeId)
Returns the declination for the target of an equatorial slew or sync operation. |
double |
getTargetRightAscension(long telescopeId)
Returns the right ascension for the target of an equatorial slew or sync operation. |
TelescopeDriveRate |
getTrackingRate(long telescopeId)
Returns the current tracking rate of the telescope's sidereal drive. |
List<TelescopeDriveRate> |
getTrackingRates(long telescopeId)
Returns a list of supported TelescopeDriveRate values that describe the permissible values of the
getTrackingRate(long) / setTrackingRate(long, TelescopeDriveRate) methods
for this telescope type. |
TimeSynchronization |
getUtcDate(long telescopeId,
long clientTransmitTime)
Returns the synchronization of UTC date/time of the telescope's internal clock. |
boolean |
isAtHome(long telescopeId)
Returns TRUE if the telescope is stopped in the home position. |
boolean |
isDoesRefraction(long telescopeId)
Returns TRUE if the telescope or driver applies atmospheric refraction to
coordinates. |
boolean |
isParked(long telescopeId)
Returns TRUE if the telescope has been put into the parked state by the
park(long) method. |
boolean |
isPulseGuiding(long telescopeId)
Returns TRUE if a pulseGuide(long, TelescopeGuideDirection, int)
command is in progress, FALSE otherwise. |
boolean |
isSlewing(long telescopeId)
Returns TRUE if telescope is currently moving in response to one of the Slew
methods or the moveAxis(long, TelescopeAxis, double) method, FALSE at
all other times. |
boolean |
isTracking(long telescopeId)
Returns the state of the telescope's sidereal tracking drive. |
void |
moveAxis(long telescopeId,
TelescopeAxis axis,
double rate)
Moves the telescope in one axis at the given rate. |
void |
park(long telescopeId)
Moves the telescope to its park position, stop all motion (or restrict to a small safe range), and set isParked(long) to TRUE . |
void |
pulseGuide(long telescopeId,
TelescopeGuideDirection direction,
int duration)
Moves the scope in the given direction for the given interval or time at the rate given by the corresponding getGuideRateRightAscension(long) and
getGuideRateDeclination(long) methods. |
void |
setDeclinationRate(long telescopeId,
double declinationRate)
Sets the declination tracking rate. |
void |
setDoesRefraction(long telescopeId,
boolean doesRefraction)
Sets TRUE if the telescope or driver applies atmospheric refraction to
coordinates. |
void |
setGuideRateDeclination(long telescopeId,
double guideRateDeclination)
Sets the current declination movement rate offset for telescope guiding. |
void |
setGuideRateRightAscension(long telescopeId,
double guideRateRightAscension)
Sets the current Right Ascension movement rate offset for telescope guiding. |
void |
setOpticalCharacteristics(Locale locale,
long telescopeId,
TelescopeOpticalFeatures opticalCharacteristics)
Sets the optical features for a telescope. |
void |
setPark(long telescopeId)
Sets the telescope's park position to be its current position. |
void |
setRightAscensionRate(long telescopeId,
double rightAscensionRate)
Sets the right ascension tracking rate offset from sidereal. |
void |
setSideOfPier(long telescopeId,
TelescopePierSide sideOfPier)
Sets the pointing state of the mount. |
void |
setSiteElevation(long telescopeId,
double elevation)
Sets the elevation above mean sea level of the site at which the telescope is located. |
void |
setSiteLatitude(long telescopeId,
double latitude)
Sets the geodetic(map) latitude of the site at which the telescope is located. |
void |
setSiteLongitude(long telescopeId,
double longitude)
Sets the longitude of the site at which the telescope is located. |
void |
setSlewSettleTime(long telescopeId,
short slewSettleTime)
Sets the post-slew settling time. |
void |
setTargetDeclination(long telescopeId,
double targetDeclination)
Sets the declination for the target of an equatorial slew or sync operation. |
void |
setTargetRightAscension(long telescopeId,
double targetRightAscension)
Sets the right ascension for the target of an equatorial slew or sync operation. |
void |
setTracking(long telescopeId,
boolean tracking)
Sets the state of the telescope's sidereal tracking drive. |
void |
setTrackingRate(long telescopeId,
TelescopeDriveRate trackingRate)
Sets a new tracking rate of the telescope's sidereal drive. |
void |
setUtcDate(long telescopeId,
long timeOffset)
Changes the UTC date/time of the telescope's internal clock. |
void |
slewToAltAz(long telescopeId,
double azimuth,
double altitude)
Moves the telescope to the given local horizontal coordinates, return when slew is complete. |
void |
slewToAltAzAsync(long telescopeId,
double azimuth,
double altitude)
This method must be implemented if getCapabilities(long).canSlewAltAzAsync() returns TRUE . |
void |
slewToCoordinates(long telescopeId,
double rightAscension,
double declination)
Moves the telescope to the given equatorial coordinates, return when slew is complete. |
void |
slewToCoordinatesAsync(long telescopeId,
double rightAscension,
double declination)
Moves the telescope to the given equatorial coordinates, return immediately after starting the slew. |
void |
slewToTarget(long telescopeId)
Moves the telescope to the getTargetRightAscension(long) and
getTargetDeclination(long) coordinates, return when slew complete. |
void |
slewToTargetAsync(long telescopeId)
Moves the telescope to the getTargetRightAscension(long) and
getTargetDeclination(long) coordinates, returns immediately after starting the slew. |
void |
syncToAltAz(long telescopeId,
double azimuth,
double altitude)
Matches the scope's local horizontal coordinates to the given local horizontal coordinates. |
void |
syncToCoordinates(long telescopeId,
double rightAscension,
double declination)
Matches the scope's equatorial coordinates to the given equatorial coordinates. |
void |
syncToTarget(long telescopeId)
Matches the scope's equatorial coordinates to the given equatorial coordinates. |
void |
unpark(long telescopeId)
Takes telescope out of the parked state. |
Methods inherited from interface org.minetti.astrodevice.common.orb.DeviceOrbProcess |
---|
action, commandBlind, commandBoolean, commandString, getDescription, getDeviceList, getDeviceName, getDriverInfo, getDriverVersion, getInterfaceVersion, getPluginName, getSupportedActions, isConnected, setConnected, showSetupDialog |
Method Detail |
---|
TelescopeFeatures getFeatures(Locale locale, long telescopeId) throws RemoteException
locale
- Locale for select messages in the language of user.telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.TelescopeCapabilities getCapabilities(Locale locale, long telescopeId) throws RemoteException
locale
- Locale for select messages in the language of user.telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.TelescopeOpticalFeatures getOpticalFeatures(Locale locale, long telescopeId) throws RemoteException
locale
- Locale for select messages in the language of user.telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setOpticalCharacteristics(Locale locale, long telescopeId, TelescopeOpticalFeatures opticalCharacteristics) throws RemoteException
locale
- Locale for select messages in the language of user.telescopeId
- Telescope identifier.opticalCharacteristics
- Object representing the optical features of telescope.
RemoteException
- Exception if an error occurred.void park(long telescopeId) throws RemoteException
isParked(long)
to TRUE
.
Raises an error if there is a problem communicating with the telescope or if parking fails.
Parking should put the telescope into a state where its pointing accuracy will not be lost if
it is power-cycled (without moving it). Some telescopes must be power-cycled before
unparking. Others may be unparked by simply calling the unpark(long)
method. Calling
this with isParked(long)
= TRUE
does nothing (harmless).
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void unpark(long telescopeId) throws RemoteException
The state of isTracking(long)
after unparking is undetermined. Valid only after
park(long)
. Applications must check and change isTracking(long)
as needed
after unparking. Raises an error if unparking fails. Calling this with
isParked(long)
= FALSE
does nothing (harmless).
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.boolean isParked(long telescopeId) throws RemoteException
TRUE
if the telescope has been put into the parked state by the
park(long)
method. Set FALSE
by calling the unpark(long)
method.
isParked(long) is TRUE
when the telescope is in the parked state. This is
achieved by calling the park(long)
method. When isParked(long) is TRUE
,
the telescope movement is stopped (or restricted to a small safe range of movement) and all
calls that would cause telescope movement (e.g. slewing, changing Tracking state) must not do
so, and must raise an error.
The telescope is taken out of parked state by calling the unpark(long)
method. If
the telescope cannot be parked, then isParked(long) must always return FALSE
.
telescopeId
- Telescope identifier.
TRUE
if the telescope has been put into the parked state.
RemoteException
- Exception if an error occurred.void setPark(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void findHome(long telescopeId) throws RemoteException
Returns only after the home position has been found. At this point the
isAtHome(long)
method will return TRUE
. Raises an error if there is a
problem. Raises an error if isParked(long)
is TRUE
.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.boolean isAtHome(long telescopeId) throws RemoteException
TRUE
if the telescope is stopped in the home position. Set only
following a findHome(long)
operation, and reset with any slew operation. This method
must return FALSE
if the telescope does not support homing.
telescopeId
- Telescope identifier.
TRUE
if the telescope is stopped in the home position.
RemoteException
- Exception if an error occurred.boolean isTracking(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
TRUE
if the sidereal drive was turned on.
RemoteException
- Exception if an error occurred.void setTracking(long telescopeId, boolean tracking) throws RemoteException
Calling this method will turn the sidereal drive on and off. However, some telescopes may not
support changing the tracking value and thus may not support turning tracking on and off. See
the getCapabilities(long).canSetTracking()
method.
telescopeId
- Telescope identifier.tracking
- TRUE
for turn the sidereal drive on.
RemoteException
- Exception if an error occurred.TelescopeDriveRate getTrackingRate(long telescopeId) throws RemoteException
If the mount's current tracking rate cannot be determined (for example, it is a write-only rate of the mount's protocol), it is permitted for the driver to force and report a default rate on connect. In this case, the preferred default is Sidereal rate.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setTrackingRate(long telescopeId, TelescopeDriveRate trackingRate) throws RemoteException
Supported rates are contained within a list of
TelescopeDriveRate
. Values
assigned to trackingRate must be one of these supported rates. If an unsupported value is
assigned to this field, it will raise an error. The currently selected tracking rate be
further adjusted via the setRightAscensionRate(long, double)
and
setDeclinationRate(long, double)
methods. These rate offsets are applied to the
currently selected tracking rate. Mounts must start up with a known or default tracking rate,
and the getTrackingRate(long)
method must return that known/default tracking rate
until changed.
telescopeId
- Telescope identifier.trackingRate
- New tracking rate of the telescope's sidereal drive.
RemoteException
- Exception if an error occurred.List<TelescopeDriveRate> getTrackingRates(long telescopeId) throws RemoteException
TelescopeDriveRate
values that describe the permissible values of the
getTrackingRate(long)
/ setTrackingRate(long, TelescopeDriveRate)
methods
for this telescope type.
At a minimum, this must contain an item for
SIDEREAL
driveSidereal.
telescopeId
- Telescope identifier.
TelescopeDriveRate
values.
RemoteException
- Exception if an error occurred.double getRightAscensionRate(long telescopeId) throws RemoteException
This return value, together with getDeclinationRate(long)
, provides support for
"offset tracking". Offset tracking is used primarily for tracking objects that move
relatively slowly against the equatorial coordinate system. It also may be used by a software
guiding system that controls rates instead of using the
pulseGuide(long, TelescopeGuideDirection, int)
method.
The return value represents an offset from the currently selected
getTrackingRate(long)
:
getTrackingRate(long)
.getCapabilities(long).canSetRightAscensionRate()
return FALSE
, this method must
always return 0.getTargetRightAscension(long)
and getTargetDeclination(long)
methods should reflect the final (adjusted) destination.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setRightAscensionRate(long telescopeId, double rightAscensionRate) throws RemoteException
The rightAscensionRate value, together with declinationRate, provides support for
"offset tracking". Offset tracking is used primarily for tracking objects that move
relatively slowly against the equatorial coordinate system. It also may be used by a software
guiding system that controls rates instead of using the
pulseGuide(long, TelescopeGuideDirection, int)
method.
The rightAscensionRate value represents an offset from the currently selected
getTrackingRate(long)
:
getTrackingRate(long)
.setTracking(long, boolean)
method to enable and disable sidereal
tracking (if supported).
telescopeId
- Telescope identifier.rightAscensionRate
- Right ascension tracking rate offset from sidereal in arcseconds
per second.
RemoteException
- Exception if an error occurred.double getDeclinationRate(long telescopeId) throws RemoteException
This method, together with getRightAscensionRate(long)
, provides support for
"offset tracking". Offset tracking is used primarily for tracking objects that move
relatively slowly against the equatorial coordinate system. It also may be used by a software
guiding system that controls rates instead of using the
pulseGuide(long, TelescopeGuideDirection, int)
method.
getCapabilities(long).canSetDeclinationRate()
is FALSE
, this method will always
return 0.getCapabilities(long).canSetDeclinationRate()
method.getTargetRightAscension(long)
and
getTargetDeclination(long)
methods should reflect the final (adjusted) destination.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setDeclinationRate(long telescopeId, double declinationRate) throws RemoteException
This method, together with setRightAscensionRate(long, double)
, provides support for
"offset tracking". Offset tracking is used primarily for tracking objects that move
relatively slowly against the equatorial coordinate system. It also may be used by a software
guiding system that controls rates instead of using the
pulseGuide(long, TelescopeGuideDirection, int)
method.
getCapabilities(long).canSetDeclinationRate()
method.getTargetRightAscension(long)
and
getTargetDeclination(long)
methods should reflect the final (adjusted) destination.
telescopeId
- Telescope identifier.declinationRate
- Declination tracking rate in arcseconds per second.
RemoteException
- Exception if an error occurred.List<TelescopeAxisRate> getAxisRateList(long telescopeId, TelescopeAxis axis) throws RemoteException
moveAxis(long, TelescopeAxis, double)
method.
See the description of moveAxis(long, TelescopeAxis, double)
for more information.
This method must return an empty collection if moveAxis(long, TelescopeAxis, double)
is not supported.
Please note that the TelescopeAxisRate
objects must contain absolute non-negative values only. Applications
determine the direction by applying a positive or negative sign to the rates provided. This
obviates the need for the driver to to present a duplicate set of negative rates as well as
the positive rates.
telescopeId
- Telescope identifier.axis
- Axis about which rate information is desired.
RemoteException
- Exception if an error occurred.void moveAxis(long telescopeId, TelescopeAxis axis, double rate) throws RemoteException
This method supports control of the mount about its mechanical axes. The telescope will start moving at the specified rate about the specified axis and continue indefinitely. This method can be called for each axis separately, and have them all operate concurrently at separate rates of motion. Set the rate for an axis to zero to stop the motion about that axis. Tracking motion (if enabled, see note below) is suspended during this mode of operation.
Raises an error if isParked(long)
is TRUE
. This must be implemented for
the if the
getCapabilities(long).canMoveAxis(TelescopeAxis)
method returns TRUE
for the
given axis.
TelescopeAxisRate
object in
the getAxisRateList(long, TelescopeAxis)
list. This is a signed value with negative
rates moving in the opposite direction to positive rates.getAxisRateList(long, TelescopeAxis)
are absolute,
unsigned values and apply to both directions, determined by the sign used in this command.isSlewing(long)
must be TRUE
if the telescope is
moving about any of its axes as a result of this method being called. This can be used to
simulate a handbox by initiating motion with the MouseDown event and stopping the motion with
the MouseUp event.moveAxis(long, TelescopeAxis, double)
method to move the scope in the required
manner to track a satellite.
telescopeId
- Telescope identifier.axis
- Physical axis about which movement is desired.rate
- Rate of motion (°/s) about the specified axis.
RemoteException
- Exception if an error occurred.double getAzimuth(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.double getAltitude(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.double getRightAscension(long telescopeId) throws RemoteException
getCharacteristics(long).getEquatorialSystem()
method.
Calling this method will raise an error if the value is unavailable.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.double getDeclination(long telescopeId) throws RemoteException
getCharacteristics(long).getEquatorialSystem()
method.
Calling this method will raise an error if the value is unavailable.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.double getTargetRightAscension(long telescopeId) throws RemoteException
Calling the method will raise an error if the value has never been set or is otherwise unavailable.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setTargetRightAscension(long telescopeId, double targetRightAscension) throws RemoteException
Calling this method will raise an error if the given value is outside the range 0 to 24 hours.
telescopeId
- Telescope identifier.targetRightAscension
- Right ascension for the target of an equatorial slew or sync
operation (hours).
RemoteException
- Exception if an error occurred.double getTargetDeclination(long telescopeId) throws RemoteException
Calling this method will raise an error if the value has never been set or is otherwise unavailable.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setTargetDeclination(long telescopeId, double targetDeclination) throws RemoteException
Calling this method will raise an error if the given value is outside the range -90 to +90 degrees.
telescopeId
- Telescope identifier.targetDeclination
- Declination for the target of an equatorial slew or sync operation
(degrees, positive North).
RemoteException
- Exception if an error occurred.boolean isSlewing(long telescopeId) throws RemoteException
TRUE
if telescope is currently moving in response to one of the Slew
methods or the moveAxis(long, TelescopeAxis, double)
method, FALSE
at
all other times.
Call this method will raise an error if the value is unavailable. If the telescope is not
capable of asynchronous slewing, the return value will always be FALSE
. The
definition of "slewing" excludes motion caused by sidereal tracking,
pulseGuide(long, TelescopeGuideDirection, int)
,
setRightAscensionRate(long, double)
, and setDeclinationRate(long, double)
.
It reflects only motion caused by one of the Slew commands, flipping caused by call the
setSideOfPier(long, TelescopePierSide)
method, or
moveAxis(long, TelescopeAxis, double)
.
telescopeId
- Telescope identifier.
TRUE
if telescope is currently moving in response to one of the Slew
methods or the moveAxis(long, TelescopeAxis, double)
method,
FALSE
at all other times.
RemoteException
- Exception if an error occurred.short getSlewSettleTime(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setSlewSettleTime(long telescopeId, short slewSettleTime) throws RemoteException
Adds additional time to slew operations. Slewing methods will not return, and the
isSlewing(long)
method will not become FALSE
, until the slew completes
and the slewSettleTime has elapsed.
This feature (if supported) may be used with mounts that require extra settling time after a slew.
telescopeId
- Telescope identifier.slewSettleTime
- Post-slew settling time in seconds (s).
RemoteException
- Exception if an error occurred.void slewToAltAz(long telescopeId, double azimuth, double altitude) throws RemoteException
This Method must be implemented if
getCapabilities(long).canSlewAltAz()
returns TRUE
. Raises an error if the slew
fails. The slew may fail if the target coordinates are beyond limits imposed within the
driver component. Such limits include mechanical constraints imposed by the mount or attached
instruments, building or dome enclosure restrictions, etc.
The return value by getTargetRightAscension(long)
and
getTargetDeclination(long)
methods are not changed by this method. Raises an error
if isParked(long)
is TRUE
, or if isTracking(long)
is
TRUE
.
telescopeId
- Telescope identifier.azimuth
- Target azimuth (degrees, North-referenced, positive East/clockwise).altitude
- Target altitude (degrees, positive up)
RemoteException
- Exception if an error occurred.void slewToAltAzAsync(long telescopeId, double azimuth, double altitude) throws RemoteException
getCapabilities(long).canSlewAltAzAsync()
returns TRUE
.
This method should only be implemented if the methods getAltitude(long)
,
getAzimuth(long)
, getRightAscension(long)
, getDeclination(long)
and isSlewing(long)
can be read while the scope is slewing. Raises an error if
starting the slew fails. Returns immediately after starting the slew. The client may monitor
the progress of the slew by reading the getAzimuth(long)
, getAltitude(long)
, and isSlewing(long)
methods during the slew. When the slew completes,
isSlewing(long)
becomes False. The slew may fail if the target coordinates are
beyond limits imposed within the driver component. Such limits include mechanical constraints
imposed by the mount or attached instruments, building or dome enclosure restrictions, etc.
The getTargetRightAscension(long)
and getTargetDeclination(long)
methods
are not changed by this method.
Raises an error if isParked(long)
is TRUE
, or if
isTracking(long)
is TRUE
.
telescopeId
- Telescope identifier.azimuth
- Azimuth to which to move.altitude
- Altitude to which to move to.
RemoteException
- Exception if an error occurred.void slewToCoordinates(long telescopeId, double rightAscension, double declination) throws RemoteException
This Method must be implemented if
getCapabilities(long).canSlew()
returns TRUE
. Raises an error if the slew
fails. The slew may fail if the target coordinates are beyond limits imposed within the
driver component. Such limits include mechanical constraints imposed by the mount or attached
instruments, building or dome enclosure restrictions, etc. The target coordinates are copied
to getTargetRightAscension(long)
and getTargetDeclination(long)
whether or
not the slew succeeds.
Raises an error if isParked(long)
is TRUE
, or if
isTracking(long)
is FALSE
.
telescopeId
- Telescope identifier.rightAscension
- Destination right ascension (hours). Copied to
getTargetRightAscension(long)
.declination
- Destination declination (degrees, positive North). Copied to
getTargetDeclination(long)
.
RemoteException
- Exception if an error occurred.void slewToCoordinatesAsync(long telescopeId, double rightAscension, double declination) throws RemoteException
This method must be implemented if
getCapabilities(long).canSlewAsync()
returns TRUE
. Raises an error if starting
the slew failed. Returns immediately after starting the slew. The client may monitor the
progress of the slew by reading the getRightAscension(long)
,
getDeclination(long)
, and isSlewing(long)
methods during the slew. When the
slew completes, isSlewing(long)
becomes FALSE
. The slew may fail to
start if the target coordinates are beyond limits imposed within the driver component. Such
limits include mechanical constraints imposed by the mount or attached instruments, building
or dome enclosure restrictions, etc.
The target coordinates are copied to getTargetRightAscension(long)
and
getTargetDeclination(long)
whether or not the slew succeeds. Raises an error if
isParked(long)
is TRUE
, or if isTracking(long)
is
FALSE
.
telescopeId
- Telescope identifier.rightAscension
- Destination right ascension (hours). Copied to
getTargetRightAscension(long)
.declination
- Destination declination (degrees, positive North). Copied to
getTargetDeclination(long)
.
RemoteException
- Exception if an error occurred.void slewToTarget(long telescopeId) throws RemoteException
getTargetRightAscension(long)
and
getTargetDeclination(long)
coordinates, return when slew complete.
This Method must be implemented if
getCapabilities(long).canSlew()
returns TRUE
. Raises an error if the slew
fails. The slew may fail if the target coordinates are beyond limits imposed within the
driver component. Such limits include mechanical constraints imposed by the mount or attached
instruments, building or dome enclosure restrictions, etc. Raises an error if
isParked(long)
is TRUE
, or if isTracking(long)
is
FALSE
.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void slewToTargetAsync(long telescopeId) throws RemoteException
getTargetRightAscension(long)
and
getTargetDeclination(long)
coordinates, returns immediately after starting the slew.
This Method must be implemented if
getCapabilities(long).canSlewAsync()
returns TRUE
. Raises an error if starting
the slew failed. Returns immediately after starting the slew. The client may monitor the
progress of the slew by reading the getRightAscension(long)
,
getDeclination(long)
, and isSlewing(long)
methods during the slew. When the
slew completes, isSlewing(long)
becomes FALSE
. The slew may fail to
start if the target coordinates are beyond limits imposed within the driver component. Such
limits include mechanical constraints imposed by the mount or attached instruments, building
or dome enclosure restrictions, etc. Raises an error if isParked(long)
is
TRUE
, or if isTracking(long)
is FALSE
.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void abortSlew(long telescopeId) throws RemoteException
slewToTargetAsync(long)
,slewToCoordinatesAsync(long, double, double)
,slewToAltAzAsync(long, double, double)
,moveAxis(long, TelescopeAxis, double)
.isParked(long)
is TRUE
.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void syncToAltAz(long telescopeId, double azimuth, double altitude) throws RemoteException
This must be implemented if the
getCapabilities(long).canSyncAltAz()
method is TRUE
. Raises an error if
matching fails.
Raises an error if isParked is TRUE
, or if isTracking(long)
is
TRUE
.
telescopeId
- Telescope identifier.azimuth
- Target azimuth (degrees, North-referenced, positive East/clockwise).altitude
- Target altitude (degrees, positive up).
RemoteException
- Exception if an error occurred.void syncToCoordinates(long telescopeId, double rightAscension, double declination) throws RemoteException
telescopeId
- Telescope identifier.rightAscension
- Corrected right ascension (hours). Copied to the
getTargetRightAscension(long)
method.declination
- Corrected declination (degrees, positive North). Copied to the
getTargetDeclination(long)
method.
RemoteException
- Exception if an error occurred.void syncToTarget(long telescopeId) throws RemoteException
This must be implemented if the
getCapabilities(long).canSync()
method is TRUE
. Raises an error if matching
fails. Raises an error if isParked(long)
is TRUE
, or if
isTracking(long)
is FALSE
.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.TelescopePierSide destinationSideOfPier(long telescopeId, double rightAscension, double declination) throws RemoteException
telescopeId
- Telescope identifier.rightAscension
- Destination right ascension (hours).declination
- Destination declination (degrees, positive north).
NULL
if
the pointing state is unknown.
RemoteException
- Exception if an error occurred.TelescopePierSide getSideOfPier(long telescopeId) throws RemoteException
For historical reasons, this method's name does not reflect its true meaning. The name will not be changed (so as to preserve compatibility), but the meaning has since become clear. All conventional mounts have two pointing states for a given equatorial (sky) position. Mechanical limitations often make it impossible for the mount to position the optics at given HA/Dec in one of the two pointing states, but there are places where the same point can be reached sensibly in both pointing states (e.g. near the pole and close to the meridian). In order to understand these pointing states, consider the following (thanks to Patrick Wallace for this info):
All conventional telescope mounts have two axes nominally at right angles. For an equatorial, the longitude axis is mechanical hour angle and the latitude axis is mechanical declination. Sky coordinates and mechanical coordinates are two completely separate arenas. This becomes rather more obvious if your mount is an altaz, but it's still true for an equatorial. Both mount axes can in principle move over a range of 360 deg. This is distinct from sky HA/Dec, where Dec is limited to a 180 deg range (+90 to -90). Apart from practical limitations, any point in the sky can be seen in two mechanical orientations. To get from one to the other the HA axis is moved 180 deg and the Dec axis is moved through the pole a distance twice the sky codeclination (90 - sky declination).Mechanical zero HA/Dec will be one of the two ways of pointing at the intersection of the celestial equator and the local meridian. Choose one, and move your scope there. Once you're there, consider the two mechanical encoders zeroed. The two pointing states are, then:
Normal | Where the mechanical Dec is in the range -90 deg to +90 deg |
Beyond the pole | Where the mechanical Dec is in the range -180 deg to -90 deg or +90 deg to +180 deg. |
"Side of pier" is a "consequence" of the former definition, not something fundamental. Apart from mechanical interference, the telescope can move from one side of the pier to the other without the mechanical Dec having changed: you could track Polaris forever with the telescope moving from west of pier to east of pier or vice versa every 12h. Thus, "side of pier" is, in general, not a useful term (except perhaps in a loose, descriptive, explanatory sense). All this applies to a fork mount just as much as to a GEM, and it would be wrong to make the "beyond pole" state illegal for the former. Your mount may not be able to get there if your camera hits the fork, but it's possible on some mounts. Whether this is useful depends on whether you're in Hawaii or Finland.
To first order, the relationship between sky and mechanical HA/Dec is as follows:
Normal state:
Beyond the pole:
Astronomy software often needs to know which which pointing state the mount is in. Examples include setting guiding polarities and calculating dome opening azimuth/altitude. The meaning of the getSideOfPier/setSideOfPier methods, then is:
EAST | Normal pointing state |
WEST | Beyond the pole pointing state |
If the mount hardware reports neither the true pointing state (or equivalent) nor the mechanical declination axis position (which varies from -180 to +180), a driver cannot calculate the pointing state, and *must not* implement SideOfPier. If the mount hardware reports only the mechanical declination axis position (-180 to +180) then a driver can calculate SideOfPier as follows:
It is allowed (though not required) that this method may be written to force the mount to
flip. Doing so, however, may change the right ascension of the telescope. During flipping,
isSlewing(long)
must return TRUE
.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setSideOfPier(long telescopeId, TelescopePierSide sideOfPier) throws RemoteException
For historical reasons, this method's name does not reflect its true meaning. The name will not be changed (so as to preserve compatibility), but the meaning has since become clear. All conventional mounts have two pointing states for a given equatorial (sky) position. Mechanical limitations often make it impossible for the mount to position the optics at given HA/Dec in one of the two pointing states, but there are places where the same point can be reached sensibly in both pointing states (e.g. near the pole and close to the meridian). In order to understand these pointing states, consider the following (thanks to Patrick Wallace for this info):
All conventional telescope mounts have two axes nominally at right angles. For an equatorial, the longitude axis is mechanical hour angle and the latitude axis is mechanical declination. Sky coordinates and mechanical coordinates are two completely separate arenas. This becomes rather more obvious if your mount is an altaz, but it's still true for an equatorial. Both mount axes can in principle move over a range of 360 deg. This is distinct from sky HA/Dec, where Dec is limited to a 180 deg range (+90 to -90). Apart from practical limitations, any point in the sky can be seen in two mechanical orientations. To get from one to the other the HA axis is moved 180 deg and the Dec axis is moved through the pole a distance twice the sky codeclination (90 - sky declination).Mechanical zero HA/Dec will be one of the two ways of pointing at the intersection of the celestial equator and the local meridian. Choose one, and move your scope there. Once you're there, consider the two mechanical encoders zeroed. The two pointing states are, then:
Normal | Where the mechanical Dec is in the range -90 deg to +90 deg |
Beyond the pole | Where the mechanical Dec is in the range -180 deg to -90 deg or +90 deg to +180 deg. |
"Side of pier" is a "consequence" of the former definition, not something fundamental. Apart from mechanical interference, the telescope can move from one side of the pier to the other without the mechanical Dec having changed: you could track Polaris forever with the telescope moving from west of pier to east of pier or vice versa every 12h. Thus, "side of pier" is, in general, not a useful term (except perhaps in a loose, descriptive, explanatory sense). All this applies to a fork mount just as much as to a GEM, and it would be wrong to make the "beyond pole" state illegal for the former. Your mount may not be able to get there if your camera hits the fork, but it's possible on some mounts. Whether this is useful depends on whether you're in Hawaii or Finland.
To first order, the relationship between sky and mechanical HA/Dec is as follows:
Normal state:
Beyond the pole:
Astronomy software often needs to know which which pointing state the mount is in. Examples include setting guiding polarities and calculating dome opening azimuth/altitude. The meaning of the getSideOfPier/setSideOfPier methods, then is:
EAST | Normal pointing state |
WEST | Beyond the pole pointing state |
If the mount hardware reports neither the true pointing state (or equivalent) nor the mechanical declination axis position (which varies from -180 to +180), a driver cannot calculate the pointing state, and *must not* implement SideOfPier. If the mount hardware reports only the mechanical declination axis position (-180 to +180) then a driver can calculate SideOfPier as follows:
It is allowed (though not required) that this method may be written to force the mount to
flip. Doing so, however, may change the right ascension of the telescope. During flipping,
isSlewing(long)
must return TRUE
.
telescopeId
- Telescope identifier.sideOfPier
- Pointing state of the mount.
RemoteException
- Exception if an error occurred.double getGuideRateRightAscension(long telescopeId) throws RemoteException
This is the rate for both hardware/relay guiding and the
pulseGuide(long, TelescopeGuideDirection, int)
method.
getCapabilities(long).canSetGuideRates()
method.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setGuideRateRightAscension(long telescopeId, double guideRateRightAscension) throws RemoteException
This is the rate for both hardware/relay guiding and the
pulseGuide(long, TelescopeGuideDirection, int)
method.
getCapabilities(long).canSetGuideRates()
method.
telescopeId
- Telescope identifier.guideRateRightAscension
- New Right Ascension movement rate offset in degrees/second
(°/s).
RemoteException
- Exception if an error occurred.double getGuideRateDeclination(long telescopeId) throws RemoteException
This is the rate for both hardware/relay guiding and the
pulseGuide(long, TelescopeGuideDirection, int)
method.
getCapabilities(long).canSetGuideRates()
method.
telescopeId
- Telescope identifier.
RemoteException
- Exception if an error occurred.void setGuideRateDeclination(long telescopeId, double guideRateDeclination) throws RemoteException
This is the rate for both hardware/relay guiding and the
pulseGuide(long, TelescopeGuideDirection, int)
method.
getCapabilities(long).canSetGuideRates()
method.
telescopeId
- Telescope identifier.guideRateDeclination
- New declination movement rate offset in degrees/second (°/s).
RemoteException
- Exception if an error occurred.boolean isPulseGuiding(long telescopeId) throws RemoteException
TRUE
if a pulseGuide(long, TelescopeGuideDirection, int)
command is in progress, FALSE
otherwise.
Raises an error if the value of the
getCapabilities(long).canPulseGuide()
method return FALSE
(the driver does not
support the pulseGuide(long, TelescopeGuideDirection, int)
method).
telescopeId
- Telescope identifier.
TRUE
if a pulseGuide(long, TelescopeGuideDirection, int)
command is in progress, FALSE
otherwise.
RemoteException
- Exception if an error occurred.void pulseGuide(long telescopeId, TelescopeGuideDirection direction, int duration) throws RemoteException
getGuideRateRightAscension(long)
and
getGuideRateDeclination(long)
methods.
This method returns immediately if the hardware is capable of back-to-back moves, i.e. dual-axis moves. For hardware not having the dual-axis capability, the method returns only after the move has completed.
isParked(long)
is TRUE
.isPulseGuiding(long)
method must be be TRUE
during
pulse-guiding.getGuideRateRightAscension(long)
method. The rate of motion for movements about the
declination axis is specified by the getGuideRateDeclination(long)
method. These two
rates may be tied together into a single rate, depending on the driver's implementation and
the capabilities of the telescope.
telescopeId
- Telescope identifier.direction
- Direction in which the guide-rate motion is to be made.duration
- Duration of the guide-rate motion (milliseconds).
RemoteException
- Exception if an error occurred.boolean isDoesRefraction(long telescopeId) throws RemoteException
TRUE
if the telescope or driver applies atmospheric refraction to
coordinates.
If this returned value is TRUE
, the coordinates sent to, and retrieved from, the
telescope are unrefracted.
telescopeId
- Telescope identifier.
TRUE
if the telescope or driver applies atmospheric refraction to
coordinates.
RemoteException
- Exception if an error occurred.void setDoesRefraction(long telescopeId, boolean doesRefraction) throws RemoteException
TRUE
if the telescope or driver applies atmospheric refraction to
coordinates.
If this doesRefraction value is TRUE
, the coordinates sent to, and retrieved
from, the telescope are unrefracted.
FALSE
and these client-refracted coordinates used.FALSE
.TRUE
for a telescope or driver that does
refraction, or to FALSE
for a telescope or driver that does not do refraction,
shall not raise an error. It shall have no effect.
telescopeId
- Telescope identifier.doesRefraction
- TRUE
if the telescope or driver applies atmospheric
refraction to coordinates.
RemoteException
- Exception if an error occurred.double getSiteElevation(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
RemoteException
void setSiteElevation(long telescopeId, double elevation) throws RemoteException
Call this method will raise an error if the given value is outside the range -300 through +10000 meters.
telescopeId
- Telescope identifier.elevation
- Elevation above mean sea level in meters (m).
RemoteException
double getSiteLatitude(long telescopeId) throws RemoteException
telescopeId
- Telescope identifier.
RemoteException
void setSiteLatitude(long telescopeId, double latitude) throws RemoteException
Call this method will raise an error if the given value is outside the range -90 to +90 degrees.
telescopeId
- Telescope identifier.latitude
- Geodetic(map) latitude of the observing site (degrees, positive North,
WGS84).
RemoteException
double getSiteLongitude(long telescopeId) throws RemoteException
Note that West is negative.
telescopeId
- Telescope identifier.
RemoteException
void setSiteLongitude(long telescopeId, double longitude) throws RemoteException
Call this method will raise an error if the given value is outside the range -180 to +180 degrees.
Note that West is negative.
telescopeId
- Telescope identifier.longitude
- Longitude of the observing site (degrees, positive East, WGS84).
RemoteException
TimeSynchronization getUtcDate(long telescopeId, long clientTransmitTime) throws RemoteException
The driver must calculate this from the system clock if the telescope has no accessible source of UTC time.
Calling this method will raise an error if the value has never been set or is otherwise unavailable.
telescopeId
- Telescope identifier.clientTransmitTime
- Transmission UTC date/time of the request by the client.
RemoteException
- Exception if an error occurred.void setUtcDate(long telescopeId, long timeOffset) throws RemoteException
This method will raise an error if the telescope has no accessible source of UTC time.
However, it is permitted to change the telescope's internal UTC clock if it is being used. This allows clients to adjust the telescope's UTC clock as needed for accuracy.
telescopeId
- Telescope identifier.timeOffset
- UTC date/time offset between the client and the server.
RemoteException
- Exception if an error occurred.TimeSynchronization getSiderealTime(long telescopeId, long clientTransmitTime) throws RemoteException
It is required for a driver to calculate this from the system clock if the telescope has no accessible source of sidereal time. Local Apparent Sidereal Time is the sidereal time used for pointing telescopes, and thus must be calculated from the Greenwich Mean Sidereal time, longitude, nutation in longitude and true ecliptic obliquity.
telescopeId
- Telescope identifier.clientTransmitTime
- Transmission sidereal time of the request by the client.
RemoteException
- Exception if an error occurred.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |