DLAPI 4.1.1.0
An API for controlling Aluma branded cameras
dl Namespace Reference

Top-level namespace containing all of DLAPI. More...

Namespaces

namespace  ErrorFlags
 Contains Error flags/masks for a variety of peripherals/devices, as reported by the camera.
 
namespace  PulseGuideStatus
 Status flags for the pulse guide port.
 
namespace  V1
 
namespace  V2
 

Classes

class  IAO
 AO Interface Class. More...
 
class  ICamera
 Camera interface class. More...
 
class  IDebugControl
 An abstract interface that gives users access to debug logging controls \seealso IGateway, getGateway() If Debug logging is supported, the IGateway pointer returned from getGateway() will inheritt from IDebugControl as well. You can check to see whether the version of DLAPI being used by your application supports these features using a dynamic cast: More...
 
class  IFW
 FW Interface Class. More...
 
class  IFWExtended
 
class  IGateway
 Gateway object for controlling device discovery, and lifetime management. More...
 
class  IImage
 Interface to an DLAPI Image buffer. More...
 
class  IImageExt
 
class  IPromise
 Promise interface class. More...
 
class  ISensor
 Sensor Interface Class. More...
 
class  ITEC
 TEC interface class. More...
 
struct  TConnectionDetails
 Network connection detail structure. More...
 
struct  TExposureOptions
 A collection of exposure parameters required for starting an exposure. More...
 
struct  TImageMetadata
 A collection of metadata associated with an image. More...
 
struct  TLayerMetadata
 
struct  TNetworkSettings
 A collection of wireless network configuration settings. More...
 
struct  TSubframe
 A collection of frame parameters, required for specifying the dimensions of an image. More...
 

Typedefs

using FilterType = EFilterType
 
typedef IImageIImagePtr
 Convenience typedef for IImage pointers.
 
typedef IImageExtIImageExtPtr
 
typedef IPromiseIPromisePtr
 Convenience typedef for IPromise pointers.
 
typedef ITECITECPtr
 Convenience typedef for ITEC pointers.
 
typedef IAOIAOPtr
 Convenience typedef for IAO pointers.
 
typedef IFWIFWPtr
 Convenience typedef for IFW pointers.
 
typedef IFWExtendedIFWExtendedPtr
 
typedef ISensorISensorPtr
 Convenience typedef for ISensor pointers.
 
typedef ICameraICameraPtr
 Convenience typedef for ICamera pointers.
 
typedef IGatewayIGatewayPtr
 Convenience typedef for IGateway pointers.
 

Enumerations

enum  EStatusCode {
  Success = 0 , ClientError = 0x01 , InvalidSoh = ClientError , InvalidHeaderType ,
  InvalidBodyType , InvalidFooterType , InvalidSensorId , InvalidMessageLength ,
  InvalidParameter , UnsupportedBodyType , BadChecksum , DeviceError = 0x80 ,
  DeviceBusy , ExposureInProgress = DeviceBusy , ReadoutInProgress = DeviceBusy , ImageNotAvailable ,
  FeatureNotSupported , InvalidStatus = 0xff
}
 Status codes returned by a camera with every message response. More...
 
enum  EPulseGuideDirection { North = 0 , South = 1 , East = 2 , West = 3 }
 Bases for pulse guiding. More...
 
enum  EFilterType { Monochrome , Color , SparseColor , InvalidFilterType = 0xff }
 
enum  EFrameType {
  Progressive , Interline , BayerInterline , RollingShutter ,
  GlobalShutter , InvalidFrameType = 0xff
}
 Sensor's readout frame typeid. More...
 
enum  EShutterStatus {
  ShutterClosed = 0 , ShutterOpen , ShutterClosing , ShutterOpening ,
  ShutterRolling , ShutterExercising , ShutterError , ShutterUninitialized = 0xFF
}
 Status of sensor's shutter. More...
 
enum  ENetworkMode {
  AdHoc = 0 , Open = 1 , WEP = 2 , WPA = 3 ,
  WPA2 = 4 , InvalidNetworkMode = 0xff
}
 Network Connection type/security for WiFi operation. More...
 
enum  EEndpointType {
  Net = 1 , USB = 2 , USB3 = 3 , RAW = 4 ,
  EndpointTypeCount , LastEndpointType = EndpointTypeCount - 1 , FirstEndpointType = Net , InvalidEndpoint = 0xff
}
 Camera's connection endpoint type (networked, USB, etc) More...
 

Functions

DL_API IGatewayPtr MYCDECL getGateway ()
 Returns a pointer to an instance of a Gateway object, or (if one exists) return the existing pointer to it.
 
DL_API void MYCDECL deleteGateway (IGatewayPtr)
 Decrement the internal count of IGateway pointers supplied, and delete the active IGateway instance when it is no longer in use.
 

Detailed Description

Top-level namespace containing all of DLAPI.

The dl namespace contains all the interface and utility definitions you will need while controlling a DLAPI compliant camera. Classes prefixed with a capital "I" (such as IGateway, ICamera, or IImage) represent abstract interface classes that are instantiated by DLAPI. They are grouped by function:

Interface classes all have convenience pointer typedefs (e.g. ICameraPtr is ICamera*), to ease readability.

In addition to the interface classes, there are a number of different parametrization and data structures both contained within interfaces (such as the ICamera::Info structure), and without (such as the TExposureOptions structure). These structures are used to transport large data structures to and from the API, and provides some degree of structure and modularity to the API.

Typedef Documentation

◆ FilterType

◆ IAOPtr

typedef IAO* dl::IAOPtr

Convenience typedef for IAO pointers.

◆ ICameraPtr

Convenience typedef for ICamera pointers.

◆ IFWExtendedPtr

◆ IFWPtr

typedef IFW* dl::IFWPtr

Convenience typedef for IFW pointers.

◆ IGatewayPtr

Convenience typedef for IGateway pointers.

◆ IImageExtPtr

◆ IImagePtr

Convenience typedef for IImage pointers.

◆ IPromisePtr

Convenience typedef for IPromise pointers.

◆ ISensorPtr

Convenience typedef for ISensor pointers.

◆ ITECPtr

typedef ITEC* dl::ITECPtr

Convenience typedef for ITEC pointers.

Enumeration Type Documentation

◆ EEndpointType

Camera's connection endpoint type (networked, USB, etc)

Enumerator
Net 

A UDP over Ethernet/WiFi endpoint.

USB 

A USB endpoint.

USB3 

A USB3.0 endpoint.

RAW 

A direct-connect interface for raw I/O over Ethernet II Frames.

EndpointTypeCount 

A convenience definition for determining the number of endpoint types.

LastEndpointType 

A convenience definition for determining the last endpoint type.

FirstEndpointType 

A convenience definition for determining the first endpoint type.

InvalidEndpoint 

The endpoint is either invalid, or uninitialized.

179 {
180 Net = 1,
181 USB = 2,
182 USB3 = 3,
183 RAW = 4,
184
188 InvalidEndpoint = 0xff,
189 };
@ Net
A UDP over Ethernet/WiFi endpoint.
Definition dlapi.h:180
@ FirstEndpointType
A convenience definition for determining the first endpoint type.
Definition dlapi.h:187
@ USB3
A USB3.0 endpoint.
Definition dlapi.h:182
@ USB
A USB endpoint.
Definition dlapi.h:181
@ RAW
A direct-connect interface for raw I/O over Ethernet II Frames.
Definition dlapi.h:183
@ LastEndpointType
A convenience definition for determining the last endpoint type.
Definition dlapi.h:186
@ EndpointTypeCount
A convenience definition for determining the number of endpoint types.
Definition dlapi.h:185
@ InvalidEndpoint
The endpoint is either invalid, or uninitialized.
Definition dlapi.h:188

◆ EFilterType

Enumerator
Monochrome 

Monochrome filter on sensor.

Color 

Bayer color filter on sensor.

SparseColor 

TrueSense Sparse Color filter on sensor.

InvalidFilterType 

Filter type is invalid or uninitialized.

122 {
123 Monochrome,
124 Color,
126 InvalidFilterType = 0xff,
127 };
@ Monochrome
Monochrome filter on sensor.
Definition dlapi.h:123
@ Color
Bayer color filter on sensor.
Definition dlapi.h:124
@ InvalidFilterType
Filter type is invalid or uninitialized.
Definition dlapi.h:126
@ SparseColor
TrueSense Sparse Color filter on sensor.
Definition dlapi.h:125

◆ EFrameType

Sensor's readout frame typeid.

Enumerator
Progressive 

Progressive, full-frame sensor.

Interline 

Interline sensor.

BayerInterline 

Bayer/SparseColor interline sensors.

RollingShutter 

Rolling Shutter for CMOS sensors.

GlobalShutter 

Global Shutter for CMOS sensors.

InvalidFrameType 

Frame type is invalid or uninitialized.

135 {
137 Interline,
141 InvalidFrameType = 0xff,
142 };
@ Interline
Interline sensor.
Definition dlapi.h:137
@ BayerInterline
Bayer/SparseColor interline sensors.
Definition dlapi.h:138
@ Progressive
Progressive, full-frame sensor.
Definition dlapi.h:136
@ GlobalShutter
Global Shutter for CMOS sensors.
Definition dlapi.h:140
@ InvalidFrameType
Frame type is invalid or uninitialized.
Definition dlapi.h:141
@ RollingShutter
Rolling Shutter for CMOS sensors.
Definition dlapi.h:139

◆ ENetworkMode

Network Connection type/security for WiFi operation.

Enumerator
AdHoc 

Use an ad-hoc network. More details coming.

Open 

Connect to an open network specified via ICamera::setNetworkSettings(), retrieved using ICamera::getNetworkSettings().

WEP 

Connect to a WEP secured network specified via ICamera::setNetworkSettings(), retrieved using ICamera::getNetworkSettings().

WPA 

Connect to a WPA 1 secured network specified via ICamera::setNetworkSettings(), retrieved using ICamera::getNetworkSettings().

WPA2 

Connect to a WPA 2 secured network specified via ICamera::setNetworkSettings(), retrieved using ICamera::getNetworkSettings().

InvalidNetworkMode 

Network mode is either invalid, or uninitialized.

166 {
167 AdHoc = 0,
168 Open = 1,
169 WEP = 2,
170 WPA = 3,
171 WPA2 = 4,
172 InvalidNetworkMode = 0xff
173 };
@ AdHoc
Use an ad-hoc network. More details coming.
Definition dlapi.h:167
@ Open
Connect to an open network specified via ICamera::setNetworkSettings(), retrieved using ICamera::getN...
Definition dlapi.h:168
@ WEP
Connect to a WEP secured network specified via ICamera::setNetworkSettings(), retrieved using ICamera...
Definition dlapi.h:169
@ InvalidNetworkMode
Network mode is either invalid, or uninitialized.
Definition dlapi.h:172
@ WPA2
Connect to a WPA 2 secured network specified via ICamera::setNetworkSettings(), retrieved using ICame...
Definition dlapi.h:171
@ WPA
Connect to a WPA 1 secured network specified via ICamera::setNetworkSettings(), retrieved using ICame...
Definition dlapi.h:170

◆ EPulseGuideDirection

Bases for pulse guiding.

See also
ICamera::PulseGuide
Enumerator
North 

North (+ declination/altitude)

South 

South (- declination/altitude)

East 

East (+ right ascension/azimuth)

West 

West (- right ascension/azimuth)

110 {
111 North = 0,
112 South = 1,
113 East = 2,
114 West = 3,
115 };
@ South
South (- declination/altitude)
Definition dlapi.h:112
@ West
West (- right ascension/azimuth)
Definition dlapi.h:114
@ East
East (+ right ascension/azimuth)
Definition dlapi.h:113
@ North
North (+ declination/altitude)
Definition dlapi.h:111

◆ EShutterStatus

Status of sensor's shutter.

Enumerator
ShutterClosed 

Shutter is closed.

ShutterOpen 

Shutter is open.

ShutterClosing 

Shutter is moving to closed state.

ShutterOpening 

Shutter is moving to opened state.

ShutterRolling 

for future use in Aluma Pro.

ShutterExercising 

Shutter is in exercising state, more details coming.

ShutterError 

for future use in Aluma Pro

ShutterUninitialized 

Shutter state is uninitialized.

149 {
150 ShutterClosed = 0,
157
159 };
@ ShutterOpening
Shutter is moving to opened state.
Definition dlapi.h:153
@ ShutterOpen
Shutter is open.
Definition dlapi.h:151
@ ShutterRolling
for future use in Aluma Pro.
Definition dlapi.h:154
@ ShutterUninitialized
Shutter state is uninitialized.
Definition dlapi.h:158
@ ShutterError
for future use in Aluma Pro
Definition dlapi.h:156
@ ShutterExercising
Shutter is in exercising state, more details coming.
Definition dlapi.h:155
@ ShutterClosing
Shutter is moving to closed state.
Definition dlapi.h:152
@ ShutterClosed
Shutter is closed.
Definition dlapi.h:150

◆ EStatusCode

Status codes returned by a camera with every message response.

Enumerator
Success 

Device reports command executed successfully, and without error.

ClientError 

Start of client-side error codes.

InvalidSoh 

Invalid message start-of-header byte.

InvalidHeaderType 

Invalid header typeid supplied in request.

InvalidBodyType 

Invalid body typeid supplied in request.

InvalidFooterType 

Invalid footer typeid supplied in request.

InvalidSensorId 

Invalid sensor ID number supplied in request.

InvalidMessageLength 

Invalid message length supplied in request.

InvalidParameter 

Invalid parameter passed in request body.

UnsupportedBodyType 

Invalid/unsupported body type supplied in request header.

BadChecksum 

Message with CRC checksum failed validation. Resend message.

DeviceError 

Start of device-side error codes.

DeviceBusy 

Catch-all for device busy errors.

ExposureInProgress 

Device has an exposure in progress and cannot comply [[deprecated]].

ReadoutInProgress 

Device has a frame readout in progress and cannot comply [[deprecated]].

ImageNotAvailable 

Image Transfer was requested, but no image is ready for download

FeatureNotSupported 

Camera does not support the requested feature.

See also
ICamera::Capability, ICamera::getCapability(), ICamera::queryCapability()
InvalidStatus 

Unknown status response from camera.

77 {
78 Success = 0,
79
80 // client specific errors ...
81 ClientError = 0x01,
91
92 // device specific errors ...
93 DeviceError = 0x80,
99
100 // Book keeping
101 InvalidStatus = 0xff
102 };
@ DeviceBusy
Catch-all for device busy errors.
Definition dlapi.h:94
@ ClientError
Start of client-side error codes.
Definition dlapi.h:81
@ InvalidParameter
Invalid parameter passed in request body.
Definition dlapi.h:88
@ InvalidStatus
Unknown status response from camera.
Definition dlapi.h:101
@ InvalidFooterType
Invalid footer typeid supplied in request.
Definition dlapi.h:85
@ InvalidHeaderType
Invalid header typeid supplied in request.
Definition dlapi.h:83
@ ImageNotAvailable
Image Transfer was requested, but no image is ready for download
Definition dlapi.h:97
@ InvalidSensorId
Invalid sensor ID number supplied in request.
Definition dlapi.h:86
@ UnsupportedBodyType
Invalid/unsupported body type supplied in request header.
Definition dlapi.h:89
@ BadChecksum
Message with CRC checksum failed validation. Resend message.
Definition dlapi.h:90
@ Success
Device reports command executed successfully, and without error.
Definition dlapi.h:78
@ ReadoutInProgress
Device has a frame readout in progress and cannot comply [[deprecated]].
Definition dlapi.h:96
@ InvalidSoh
Invalid message start-of-header byte.
Definition dlapi.h:82
@ ExposureInProgress
Device has an exposure in progress and cannot comply [[deprecated]].
Definition dlapi.h:95
@ FeatureNotSupported
Camera does not support the requested feature.
Definition dlapi.h:98
@ InvalidBodyType
Invalid body typeid supplied in request.
Definition dlapi.h:84
@ InvalidMessageLength
Invalid message length supplied in request.
Definition dlapi.h:87
@ DeviceError
Start of device-side error codes.
Definition dlapi.h:93

Function Documentation

◆ deleteGateway()

DL_API void MYCDECL dl::deleteGateway ( IGatewayPtr )

Decrement the internal count of IGateway pointers supplied, and delete the active IGateway instance when it is no longer in use.

Parameters
IGatewayPtra pointer to an IGateway object to delete.
See also
IGateway, getGateway()

This function tracks usage counts of getGateway(), and deletes the singleton instance of IGateway when the last instance is released.

◆ getGateway()

DL_API IGatewayPtr MYCDECL dl::getGateway ( )

Returns a pointer to an instance of a Gateway object, or (if one exists) return the existing pointer to it.

Returns
IGatewayPtr pointer to the instance of the process' IGateway.
See also
IGateway, deleteGateway()

This function provides the user with the singleton instance of the DLAPI IGateway for the process. Use this function to gain access to all DLAPI devices. Minimize the number of calls to this function if at all possible. It is not necessary to keep an IGateway instance active throughout the lifetime of your application, but you should avoid creating gateways at call sites. Keep the gateway instances alive throughout the scope of all communications with the API. All calls to dl::getGateway() should be accompanied by a call to dl::deleteGateway().

An easy way to ensure this occurs is to create a smart pointer with a custom deleter that handles this cleanup.