org.minetti.astrodevice.common.orb
Interface RotatorOrbProcess

All Superinterfaces:
DeviceOrbProcess, Remote

public interface RotatorOrbProcess
extends DeviceOrbProcess, Remote

ORB process on rotators.

Author:
Jean-Philippe MINETTI

Method Summary
 RotatorCapabilities getCapabilities(long rotatorId)
          Returns all capabilities of a rotator.
 RotatorCharacteristics getCharacteristics(long rotatorId)
          Returns all characteristics of a rotator.
 float getPosition(long rotatorId)
          Returns the current instantaneous rotator position.
 boolean getReverse(long rotatorId)
          Returns TRUE if the rotation and angular direction must be reversed for the optics.
 float getTargetPosition(long rotatorId)
          Returns the destination position angle for move(long, float) and moveAbsolute(long, float).
 void halt(long rotatorId)
          Immediately stops any rotator motion due to a previous move(long, float) or moveAbsolute(long, float) method call.
 boolean isMoving(long rotatorId)
          Returns TRUE if the rotator is currently moving.
 void move(long rotatorId, float position)
          Causes the rotator to move position degrees relative to the current getPosition(long) value.
 void moveAbsolute(long rotatorId, float position)
          Causes the rotator to move the absolute position of getPosition(long) degrees.
 void setReverse(long rotatorId, boolean reverse)
          Sets TRUE if the rotation and angular direction must be reversed for the optics.
 
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

getCharacteristics

RotatorCharacteristics getCharacteristics(long rotatorId)
                                          throws RemoteException
Returns all characteristics of a rotator.

Parameters:
rotatorId - Rotator identifier.
Returns:
Object representing all characteristics of a rotator.
Throws:
RemoteException - Exception if an error occurred.

getCapabilities

RotatorCapabilities getCapabilities(long rotatorId)
                                    throws RemoteException
Returns all capabilities of a rotator.

Parameters:
rotatorId - Rotator identifier.
Returns:
Object representing all capabilities of a rotator.
Throws:
RemoteException - Exception if an error occurred.

getPosition

float getPosition(long rotatorId)
                  throws RemoteException
Returns the current instantaneous rotator position.

The position is expressed as an angle from 0 up to but not including 360 degrees, counter-clockwise against the sky. This is the standard definition of Position Angle. However, the rotator does not need to (and in general will not) report the true Equatorial Position Angle, as the attached imager may not be precisely aligned with the rotator's indexing. It is up to the client to determine any offset between mechanical rotator position angle and the true Equatorial Position Angle of the imager, and compensate for any difference.

The optional getReverse(long)/setReverse(long, boolean) methods is provided in order to manage rotators being used on optics with odd or even number of reflections. With the setReverse(long, boolean) calling in the correct position for the optics, the reported position angle must be counter-clockwise against the sky.

Parameters:
rotatorId - Rotator identifier.
Returns:
Current instantaneous rotator position, in degrees.
Throws:
RemoteException - Exception if an error occurred.

getTargetPosition

float getTargetPosition(long rotatorId)
                        throws RemoteException
Returns the destination position angle for move(long, float) and moveAbsolute(long, float).

Upon calling move(long, float) or moveAbsolute(long, float), this value immediately changes to the position angle to which the rotator is moving. The value is retained until a subsequent call to move(long, float) or moveAbsolute(long, float).

Parameters:
rotatorId - Rotator identifier.
Returns:
Destination position angle for move(long, float) and moveAbsolute(long, float).
Throws:
RemoteException - Exception if an error occurred.

getReverse

boolean getReverse(long rotatorId)
                   throws RemoteException
Returns TRUE if the rotation and angular direction must be reversed for the optics.

See the definition of getPosition(long). Raises an error if not supported.

Parameters:
rotatorId - Rotator identifier.
Returns:
TRUE if the rotation and angular direction must be reversed for the optics.
Throws:
RemoteException - Exception if an error occurred.

setReverse

void setReverse(long rotatorId,
                boolean reverse)
                throws RemoteException
Sets TRUE if the rotation and angular direction must be reversed for the optics.

See the definition of getPosition(long). Raises an error if not supported.

Parameters:
rotatorId - Rotator identifier.
reverse - TRUE if the rotation and angular direction must be reversed for the optics.
Throws:
RemoteException - Exception if an error occurred.
PropertyNotImplementedException - Throw a PropertyNotImplementedException if the rotator cannot reverse.

isMoving

boolean isMoving(long rotatorId)
                 throws RemoteException
Returns TRUE if the rotator is currently moving.

Rotation is asynchronous, that is, when the move(long, float) method is called, it starts the rotation, then returns immediately. During rotation, isMoving must be TRUE, else it must be FALSE.

Parameters:
rotatorId - Rotator identifier.
Returns:
TRUE if the rotator is moving to a new position. FALSE if the rotator is stationary.
Throws:
RemoteException - Exception if an error occurred.

move

void move(long rotatorId,
          float position)
          throws RemoteException
Causes the rotator to move position degrees relative to the current getPosition(long) value.

Calling move causes the return value of getTargetPosition(long) method to change to the sum of the current angular position and the return value by getPosition(long) method (modulo 360 degrees), then starts rotation to getTargetPosition(long).

Parameters:
rotatorId - Rotator identifier.
position - Relative position to move in degrees from current getPosition(long).
Throws:
RemoteException - Exception if an error occurred.

moveAbsolute

void moveAbsolute(long rotatorId,
                  float position)
                  throws RemoteException
Causes the rotator to move the absolute position of getPosition(long) degrees.

Calling moveAbsolute causes the return value of getTargetPosition(long) method to change to the value of the return value by getPosition(long) method, then starts rotation to getTargetPosition(long).

Parameters:
rotatorId - Rotator identifier.
position - Absolute position in degrees.
Throws:
RemoteException - Exception if an error occurred.

halt

void halt(long rotatorId)
          throws RemoteException
Immediately stops any rotator motion due to a previous move(long, float) or moveAbsolute(long, float) method call.

This is an optional method. Raises an error if not supported.

Parameters:
rotatorId - Rotator identifier.
Throws:
RemoteException - Exception if an error occurred.
MethodNotImplementedException - Throw a MethodNotImplementedException if the rotator cannot halt.


Copyright © 2012 astroDevice. All Rights Reserved.