dl::IAO Class Referenceabstract

AO Interface Class. More...

#include <dlapi.h>

Public Types

enum  Status { Idle, Busy, Error, InvalidAOStatus = 0xff }
 
enum  Model { UnknownAOModel = 0, AO8, AOX, InvalidAOModel = 0xff }
 

Public Member Functions

virtual IPromisePtr initialize ()=0
 Initialize the AO and retrieve basic model information. More...
 
virtual IPromisePtr queryStatus ()=0
 Query the status of the AO device. More...
 
virtual IPromisePtr setPosition (short tip, short tilt)=0
 Set the Tip/Tilt position of the AO. More...
 
virtual IAO::Status getStatus () const =0
 Return the buffered status of the AO device. More...
 
virtual void getPosition (short &tip, short &tilt) const =0
 Return the buffered Tip/Tilt position of the AO device. More...
 
virtual void getLimits (size_t &tipMin, size_t &tipMax, size_t &tiltMin, size_t &tiltMax) const =0
 Return limits for Tip/Tilt position of the AO device. More...
 
virtual Model getModel () const =0
 Get the model number of the connected AO device. More...
 

Detailed Description

AO Interface Class.

An interface to Adaptive Optics peripherals connected to DLAPI cameras.

Member Enumeration Documentation

◆ Model

Enumerator
UnknownAOModel 

AO Model could not be ascertained.

AO8 

AO-8 model of adaptive optics.

AOX 

AO-X model of adaptive optics.

InvalidAOModel 

AO model was not initialized.

705  {
706  UnknownAOModel = 0,
707  AO8,
708  AOX,
709  InvalidAOModel = 0xff,
710  };
AO-X model of adaptive optics.
Definition: dlapi.h:708
AO model was not initialized.
Definition: dlapi.h:709
AO Model could not be ascertained.
Definition: dlapi.h:706
AO-8 model of adaptive optics.
Definition: dlapi.h:707

◆ Status

Enumerator
Idle 

Peripheral is idle.

Busy 

Peripheral is busy.

Error 

Peripheral is in an error state.

InvalidAOStatus 

Peripheral is uninitialized.

693  {
694  Idle,
695  Busy,
696  Error,
697  InvalidAOStatus = 0xff,
698  };
Peripheral is in an error state.
Definition: dlapi.h:696
Peripheral is busy.
Definition: dlapi.h:695
Peripheral is idle.
Definition: dlapi.h:694
Peripheral is uninitialized.
Definition: dlapi.h:697

Member Function Documentation

◆ getLimits()

virtual void dl::IAO::getLimits ( size_t &  tipMin,
size_t &  tipMax,
size_t &  tiltMin,
size_t &  tiltMax 
) const
pure virtual

Return limits for Tip/Tilt position of the AO device.

Parameters
tipMinReference to a variable that will receive the minimum AO offset on x-axis (i.e. tip).
tipMaxReference to a variable that will receive the minimum AO offset on x-axis (i.e. tip).
tiltMinReference to a variable that will receive the minimum AO offset on y-axis (i.e. tilt).
tiltMaxReference to a variable that will receive the maximum AO offset on y-axis (i.e. tilt).
See also
IAO::queryStatus(), IAO::setPosition()

The default range allowed for AO tip/tilt operations is [0, 4095] inclusive on both axes, but any devices deviating from this can rely on IAO::getLimits() to report correct minima and maxima.

◆ getModel()

virtual Model dl::IAO::getModel ( ) const
pure virtual

Get the model number of the connected AO device.

Returns
IAO::Model
See also
IAO::Model

Obtains the buffered model of the AO peripheral, obtained by a call to IAO::initialize().

◆ getPosition()

virtual void dl::IAO::getPosition ( short &  tip,
short &  tilt 
) const
pure virtual

Return the buffered Tip/Tilt position of the AO device.

Parameters
tipAO offset in x-axis.
tiltAO offset in y-axis.
See also
IAO::queryStatus(), IAO::setPosition()

Obtains the buffered x- and y-offsets of the AO peripheral, refreshed using the IAO::queryStatus() command.

Range allowed for AO tip/tilt operations is [0, 4095] inclusive on both axes. IPromise will return EStatusCode::InvalidParameter if either of the tip/tilt values are out of range.

◆ getStatus()

virtual IAO::Status dl::IAO::getStatus ( ) const
pure virtual

Return the buffered status of the AO device.

Returns
IAO::Status status of the AO peripheral.
See also
IAO::queryStatus()

Returns the buffered status of the AO peripheral, refreshed using IAO::queryStatus() command.

◆ initialize()

virtual IPromisePtr dl::IAO::initialize ( )
pure virtual

Initialize the AO and retrieve basic model information.

Returns
IPromisePtr a promise to track asynchronous completion of the operation.
See also
IPromise

Performs initialization of the AO unit, including obtaining the model of the unit (if it is attached, and available).

◆ queryStatus()

virtual IPromisePtr dl::IAO::queryStatus ( )
pure virtual

Query the status of the AO device.

Returns
IPromisePtr a promise to track asynchronous completion of the operation.
See also
IPromise, IAO::getPosition(), IAO::getStatus()

Query the camera for the status of the AO unit, and its position. Retrieve position on IPromise::Complete with IAO::getPosition(), and IAO::getStatus().

◆ setPosition()

virtual IPromisePtr dl::IAO::setPosition ( short  tip,
short  tilt 
)
pure virtual

Set the Tip/Tilt position of the AO.

Returns
IPromisePtr a promise to track asynchronous completion of the operation.
See also
IPromise

Tells the AO to GOTO a given tip/tilt. The limits of tip and tilt are given by IAO::getLimits(), nominally [0, 4095] inclusive on both axes. Attempting to set the position of the AO to any values outside that range will return a EStatusCode::InvalidParameter error when the associated IPromise completes. If the AO is currently moving when this call is made, it will also return a EStatusCode::DeviceBusy error when the IPromise completes.


The documentation for this class was generated from the following file:
  • C:/NightlyBuild/DL_Imaging/Aluma_Software/dlapi/src/dlapi.h