Camera interface class. More...
#include <dlapi.h>
Classes | |
struct | Info |
struct | Status |
Public Types | |
enum | State { Uninitialized, Initializing, Ready, Error } |
enum | Model { Aluma, Reserved1, Reserved2, AlumaCMOS, StarChaser, STC, AlumaAC2020, StarChaserE, Reserved8, InvalidCameraModel = 0xff, Reserved4 = StarChaser, Reserved5 = STC, Reserved3 = AlumaCMOS, Reserved6 = AlumaAC2020, Reserved7 = StarChaserE, StarChaserP3 = StarChaserE } |
enum | Capability { eSupportsFan, eSupportsCooler, eSupportsCoolerTemp, eSupportsHeatSinkTemp, eSupportsAdaptiveOptics, eSupportsFilterWheel, eSupportsGuidePort, eSupportsWiFi, eSupportsDefogHeater, eSupportsSensorGainOffset, eSupportsInternalStacking, eSupportsFastContinuousReadout, eSupportsShutter, eSupportsPrecisionCoolerPower, eSupportsExtendedStartDownload, eSupportsInputVoltage, eSupportsOverscan, eSupportsOnChipBinning, eSupportsAdjustableGain, eSupportsPeripheralInfo, CameraCapabilityCount, InvalidCameraCapability = 0xff } |
Public Member Functions | |
virtual | ~ICamera ()=0 |
virtual destructor ensuring the class is abstract. More... | |
virtual bool | initialize ()=0 |
Initializes the camera by fetching operational status, and initializing the various peripherals. More... | |
virtual IPromisePtr | queryInfo ()=0 |
Queries the camera's unit information structure (ICamera::Info) More... | |
virtual IPromisePtr | queryStatus ()=0 |
Queries the camera's ICamera::Status structure. More... | |
virtual IPromisePtr | queryNetworkSettings ()=0 |
Queries the camera's network settings. More... | |
virtual IPromisePtr | queryCapability (ICamera::Capability key)=0 |
Queries a camera for a specific capability. More... | |
virtual IPromisePtr | pulseGuide (EPulseGuideDirection direction, unsigned int duration, bool abort)=0 |
Executes or aborts a pulse guide operation of given duration and direction. More... | |
virtual IPromisePtr | setNetworkSettings (const TNetworkSettings &cfg)=0 |
Updates the camera's network settings. More... | |
virtual ICamera::Info | getInfo () const =0 |
Returns the buffered ICamera::Info structure. More... | |
virtual void | getSerial (char *buffer, size_t &buffer_length) const =0 |
Returns a human readable version of the camera's serial number string. e.g. "AL8300M-19010101". More... | |
virtual EEndpointType | getConnectionType () const =0 |
Returns the connection type of the camera (USB, Networked, etc). More... | |
virtual void | getConnectionInfo (char *buffer, size_t &buffer_length) const =0 |
Returns a human readable information string about the camera's connection (IP Address, USB Handle, etc). More... | |
virtual ICamera::Status | getStatus () const =0 |
Returns the buffered status structure. More... | |
virtual bool | getCapability (ICamera::Capability key) const =0 |
Returns the buffered value of a successful call to ICamera::queryCapability() More... | |
virtual TNetworkSettings | getNetworkSettings () const =0 |
Returns the buffered network settings. More... | |
virtual ISensorPtr | getSensor (unsigned int id) const =0 |
Returns a pointer to the indexed sensor (zero is always the primary imaging chip). More... | |
virtual ITECPtr | getTEC () const =0 |
Returns a pointer to the camera's TEC (if one is available). More... | |
virtual IAOPtr | getAO () const =0 |
Returns a pointer to the camera's AO (if one is available). More... | |
virtual IFWPtr | getFW () const =0 |
Returns a pointer to the camera's FW (if one is available). More... | |
Detailed Description
Camera interface class.
An interface to a DLAPI compliant camera providing general access to camera-level functions/settings, and stores references to connected peripherals/imaging sensors. Each instance of ICamera is self-contained, and can safely be used in tandem with other instances of ICamera. Because Camera I/O is threaded at the DLAPI level, the number of ICamera instances you can control simultaneously is limited by the number of active threads your system can have at any given time.
Further to this limitation, each ICamera instance has references to a number of ISensor instances. While these instances are self-contained, DLAPI is not capable of performing simultaneous downloads of two sensors on the same camera at this time. Attempting to call image transport functions for one sensor while another sensor is in the ISensor::ReadyToDownload state will return an error (specifically EStatusCode::ReadoutInProgress).
Member Enumeration Documentation
◆ Capability
◆ Model
enum dl::ICamera::Model |
◆ State
enum dl::ICamera::State |
Constructor & Destructor Documentation
◆ ~ICamera()
|
pure virtual |
virtual destructor ensuring the class is abstract.
Used to ensure ICamera is pure virtual
Member Function Documentation
◆ getAO()
|
pure virtual |
Returns a pointer to the camera's AO (if one is available).
- Returns
- IAOPtr a pointer to the camera's adaptive optics unit.
- See also
- IAO
Returns a pointer to the camera's adaptive optics unit, or nullptr if no AO is present.
◆ getCapability()
|
pure virtual |
Returns the buffered value of a successful call to ICamera::queryCapability()
- Parameters
-
key the ICamera::Capability key to retrieve. Each key requires a separate call to ICamera::queryCapability();
- Returns
- bool true if the camera feature is supported, false otherwise.
◆ getConnectionInfo()
|
pure virtual |
Returns a human readable information string about the camera's connection (IP Address, USB Handle, etc).
- Parameters
-
buffer a buffer to a character array. buffer_length the maximum size of the supplied buffer, updated to be the length of the information string.
Returns a human readable string containing connection details about this camera. This is mostly for debug purposes. e.g. "USB: handle=0x1234", or "Net: ip="127.0.0.1"
◆ getConnectionType()
|
pure virtual |
Returns the connection type of the camera (USB, Networked, etc).
- Returns
- EEndpointType Information about the camera's connection type.
- See also
- EEndpointType for more information.
- EEndpointType
Returns the camera's connection type: USB, Net, etc. See EEndpointType for more details.
◆ getFW()
|
pure virtual |
Returns a pointer to the camera's FW (if one is available).
- Returns
- a pointer to the camera's filter wheel.
- See also
- IFW
Returns a pointer to the camera's filter wheel unit, or nullptr if no FW is present.
◆ getInfo()
|
pure virtual |
Returns the buffered ICamera::Info structure.
- Returns
- ICamera::Info the buffered camera info structure.
- See also
- ICamera::Info, ICamera::queryInfo()
Returns the buffered camera info structure, refreshed by ICamera::queryInfo().
◆ getNetworkSettings()
|
pure virtual |
Returns the buffered network settings.
- Returns
- TNetworkSettings the buffered camera info structure.
Returns the buffered camera network settings structure, refreshed by ICamera::queryNetworkSettings().
◆ getSensor()
|
pure virtual |
Returns a pointer to the indexed sensor (zero is always the primary imaging chip).
- Parameters
-
id the internal index of the sensor to retrieve
- Returns
- ISensorPtr a pointer to the sensor with id.
- See also
- ISensor, ICamera::getInfo()
This function retrieves a pointer to the camera's sensor with internal id matching the supplied parameter. The internal sensor id is a zero based index, starting with the main sensor, and increasing with external sensors up to the number of sensors a camera has is stored in the ICamera::Info::numberOfSensors variable. If a user attempts to access a sensor outside that range, or the sensor is otherwise unavailable, the function returns nullptr.
◆ getSerial()
|
pure virtual |
Returns a human readable version of the camera's serial number string. e.g. "AL8300M-19010101".
- Parameters
-
buffer pointer to a character array which receives the serial number string. buffer_length [IN] the maximum size of the buffer supplied, [OUT] the size of the string returned.
- Returns
- ICamera::Info the buffered camera info structure.
- See also
- ICamera::Info, ICamera::queryInfo()
Returns the human-readable serial number string of the camera, which requires the camera be properly initialized. Normally, this is handled on discovery by the API, but if an error occurs, you can manually initialize the camera by calling the following functions:
- ICamera::queryInfo()
- ISensor::queryInfo() for each sensor.
or calling ICamera::initialize().
n.b. This differs from the ICamera::Info::serialNumber in that serialNumber contains a subset of the information required to recreate the human-readable serial number string.
e.g.
◆ getStatus()
|
pure virtual |
Returns the buffered status structure.
- Returns
- ICamera::Status the buffered camera status structure.
- See also
- ICamera::Status, ICamera::queryStatus()
Returns the buffered camera status structure, refreshed by ICamera::queryStatus().
◆ getTEC()
|
pure virtual |
Returns a pointer to the camera's TEC (if one is available).
- Returns
- ITECPtr a pointer to the camera's thermo-electric cooler.
- See also
- ITEC
Returns a pointer to the camera's thermo-electric cooler, or nullptr if no TEC is present.
◆ initialize()
|
pure virtual |
Initializes the camera by fetching operational status, and initializing the various peripherals.
A blocking call which queries the camera for all relevant information stuctures:
- ICamera::queryStatus()
- ICamera::queryNetworkSettings()
- ISensor::queryInfo()
- ISensor::queryCalibration()
- ISensor::querySetting()
Throws a std::runtime_error on failure.
◆ pulseGuide()
|
pure virtual |
Executes or aborts a pulse guide operation of given duration and direction.
- Parameters
-
direction the relay direction to fire.
- See also
- EPulseGuideDirection
- Parameters
-
duration the duration of the pulse guide operation in milliseconds. abort set to true to abort a previous pulse guide operation, false to execute a new operation.
- Returns
- IPromisePtr pointer to promise for monitoring the status of the asynchronous operation.
Command the guider port output to move the mount in the provided direction, for the provided duration, or abort the current operation if abort is set to true.
The status of the current pulse guide operation is stored in the camera's ICamera::Status structure.
◆ queryCapability()
|
pure virtual |
Queries a camera for a specific capability.
- Parameters
-
key the capability you wish to retrieve from the camera.
- Returns
- IPromisePtr pointer to promise for monitoring the status of the asynchronous operation.
Queries the camera for the ICamera::Capability key passed in. Currently, they are used to denote support for specific features (like filter wheels and adaptive optics peripherals), but also for support to various parts of the camera (heat-sink temperature monitoring, or the use of a fan). They can be retrieved via a call to ICamera::getCapability().
e.g.
◆ queryInfo()
|
pure virtual |
Queries the camera's unit information structure (ICamera::Info)
- Returns
- IPromisePtr pointer to promise for monitoring the status of the asynchronous operation.
- See also
- IPromisePtr, ICamera::getInfo()
Queries the camera for the ICamera::Info structure, retrieve the structure on promise completion with a call to ICamera::getInfo().
◆ queryNetworkSettings()
|
pure virtual |
Queries the camera's network settings.
- Returns
- IPromisePtr pointer to promise for monitoring the status of the asynchronous operation.
Queries the camera for the ICamera::NetworkStettings structure, retrieve the structure on promise completion with a call to ICamera::getStatus().
◆ queryStatus()
|
pure virtual |
Queries the camera's ICamera::Status structure.
- Returns
- IPromisePtr pointer to promise for monitoring the status of the asynchronous operation.
- See also
- IPromisePtr, ICamera::getStatus()
Queries the camera for the ICamera::Status structure, retrieve the structure on promise completion with a call to ICamera::getStatus().
◆ setNetworkSettings()
|
pure virtual |
Updates the camera's network settings.
- Parameters
-
cfg the new network configuration
- Returns
- IPromisePtr pointer to promise for monitoring the status of the asynchronous operation.
- See also
- IPromisePtr, TNetworkSettings, ICamera::queryNetworkSettings(), ICamera::getNetworkSettings()
Updates the network settings of the camera.
The documentation for this class was generated from the following file:
- C:/NightlyBuild/DL_Imaging/Aluma_Software/dlapi/src/dlapi.h