DLAPI 4.1.1.0
An API for controlling Aluma branded cameras
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.
 
virtual IPromisePtr queryStatus ()=0
 Query the status of the AO device.
 
virtual IPromisePtr setPosition (short tip, short tilt)=0
 Set the Tip/Tilt position of the AO.
 
virtual IAO::Status getStatus () const =0
 Return the buffered status of the AO device.
 
virtual void getPosition (short &tip, short &tilt) const =0
 Return the buffered Tip/Tilt position of the AO device.
 
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.
 
virtual Model getModel () const =0
 Get the model number of the connected AO device.
 

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.

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

◆ Status

Enumerator
Idle 

Peripheral is idle.

Busy 

Peripheral is busy.

Error 

Peripheral is in an error state.

InvalidAOStatus 

Peripheral is uninitialized.

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

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: