API
 
Loading...
Searching...
No Matches
MagAOX::app::dev::stdCamera< derivedT > Class Template Reference

MagAO-X standard camera interface. More...

#include <stdCamera.hpp>

Collaboration diagram for MagAOX::app::dev::stdCamera< derivedT >:
Collaboration graph

Classes

struct  roi
 

Public Member Functions

 ~stdCamera () noexcept
 Destructor.
 
int setupConfig (mx::app::appConfigurator &config)
 Setup the configuration system.
 
int loadConfig (mx::app::appConfigurator &config)
 load the configuration system results
 
int appStartup ()
 Startup function.
 
int appLogic ()
 Application logic.
 
int onPowerOff ()
 Actions on power off.
 
int whilePowerOff ()
 Actions while powered off.
 
int appShutdown ()
 Application shutdown.
 
Focus Control
bool checkFocusSwitchState ()
 Evaluate the configured focus-state switch helper as an in-focus boolean.
 
int sendGotoFocusCommand ()
 Format and send the configured goto-focus switch command.
 
Telemeter Interface
int recordCamera (bool force=false)
 

Protected Member Functions

int createReadoutSpeed (const mx::meta::trueFalseT< true > &t)
 
int createReadoutSpeed (const mx::meta::trueFalseT< false > &f)
 
int createVShiftSpeed (const mx::meta::trueFalseT< true > &t)
 
int createVShiftSpeed (const mx::meta::trueFalseT< false > &f)
 
int createFanSpeed (const mx::meta::trueFalseT< true > &t)
 
int createFanSpeed (const mx::meta::trueFalseT< false > &f)
 
void updateFocusStateProperty ()
 Refresh the published focus.state property from the current helper or derived focus implementation.
 

Protected Attributes

Configurable Parameters
cameraConfigMap m_cameraModes
 Map holding the possible camera mode configurations.
 
std::string m_startupMode
 The camera mode to load during first init after a power-on.
 
float m_startupTemp { -999 }
 The temperature to set after a power-on. Set to <= -999 to not use [default].
 
std::string m_defaultReadoutSpeed
 The default readout speed of the camera.
 
std::string m_defaultVShiftSpeed
 The default readout speed of the camera.
 
bool m_fanSpeedControlEnabled { true }
 Whether or not fan-speed control is published through INDI.
 
std::string m_defaultFanSpeed
 The default fan speed to apply after power on.
 
bool m_defaultLEDState { true }
 The default LED state to apply after power on.
 
Temperature Control Interface
float m_minTemp { -60 }
 
float m_maxTemp { 30 }
 
float m_stepTemp { 0 }
 
float m_ccdTemp { -999 }
 The current temperature, in C.
 
float m_ccdTempSetpt { -999 }
 The desired temperature, in C.
 
bool m_tempControlStatus { false }
 Whether or not temperature control is active.
 
bool m_tempControlStatusSet { false }
 Desired state of temperature control.
 
bool m_tempControlOnTarget { false }
 Whether or not the temperature control system is on its target temperature.
 
std::string m_tempControlStatusStr
 Camera specific description of temperature control status.
 
pcf::IndiProperty m_indiP_temp
 
pcf::IndiProperty m_indiP_tempcont
 
pcf::IndiProperty m_indiP_tempstat
 
Readout Control
std::vector< std::string > m_readoutSpeedNames
 
std::vector< std::string > m_readoutSpeedNameLabels
 
std::string m_readoutSpeedName
 The current readout speed name.
 
std::string m_readoutSpeedNameSet
 The user requested readout speed name, to be set by derived()
 
std::vector< std::string > m_vShiftSpeedNames
 
std::vector< std::string > m_vShiftSpeedNameLabels
 
std::string m_vShiftSpeedName
 The current vshift speed name.
 
std::string m_vShiftSpeedNameSet
 The user requested vshift speed name, to be set by derived()
 
float m_adcSpeed { 0 }
 
float m_vshiftSpeed { 0 }
 
float m_emGain { 1 }
 The camera's current EM gain (if available).
 
float m_emGainSet { 1 }
 The camera's EM gain, as set by the user.
 
float m_maxEMGain { 1 }
 The configurable maximum EM gain. To be enforced in derivedT.
 
pcf::IndiProperty m_indiP_readoutSpeed
 
pcf::IndiProperty m_indiP_vShiftSpeed
 
pcf::IndiProperty m_indiP_emGain
 
Exposure Control
float m_minExpTime { 0 }
 The minimum exposure time, used for INDI attributes.
 
float m_maxExpTime { std::numeric_limits<float>::max() }
 The maximum exposure time, used for INDI attributes.
 
float m_stepExpTime { 0 }
 The maximum exposure time stepsize, used for INDI attributes.
 
float m_expTime { 0 }
 The current exposure time, in seconds.
 
float m_expTimeSet { 0 }
 The exposure time, in seconds, as set by user.
 
float m_minFPS { 0 }
 The minimum FPS, used for INDI attributes.
 
float m_maxFPS { std::numeric_limits<float>::max() }
 The maximum FPS, used for INDI attributes.
 
float m_stepFPS { 0 }
 The FPS step size, used for INDI attributes.
 
float m_fps { 0 }
 The current FPS.
 
float m_fpsSet { 0 }
 The commanded fps, as set by user.
 
pcf::IndiProperty m_indiP_exptime
 
pcf::IndiProperty m_indiP_fps
 
Fan Control
std::vector< std::string > m_fanSpeedNames
 Valid fan-control option names for the INDI selection switch.
 
std::vector< std::string > m_fanSpeedNameLabels
 Optional GUI labels for the fan-control options.
 
std::string m_fanSpeedName { "" }
 Current fan-control option name.
 
std::string m_fanSpeedNameSet { "" }
 Requested fan-control option name.
 
bool m_fanSpeedValid { false }
 True once the current fan-control state is known.
 
pcf::IndiProperty m_indiP_fanSpeed
 Property used to select the fan-speed mode.
 
Analog Gain
std::vector< std::string > m_analogGainNames
 Valid analog-gain option names for the INDI selection switch.
 
std::vector< std::string > m_analogGainNameLabels
 Optional GUI labels for the analog-gain options.
 
std::string m_analogGainName { "" }
 Current analog-gain option name.
 
std::string m_analogGainNameSet { "" }
 Requested analog-gain option name.
 
bool m_analogGainValid { false }
 True once the current analog-gain state is known.
 
pcf::IndiProperty m_indiP_analogGain
 Property used to select the analog-gain mode.
 
LED Control
bool m_ledState { false }
 Current status LED state.
 
bool m_ledStateSet { false }
 Requested status LED state.
 
bool m_ledStateValid { false }
 True once the current LED state is known.
 
pcf::IndiProperty m_indiP_led
 Property used to control the status LED state.
 
External Synchronization
bool m_synchroSet { false }
 Target status of m_synchro.
 
bool m_synchro { false }
 Status of synchronization, true is on, false is off.
 
pcf::IndiProperty m_indiP_synchro
 
Modes
std::string m_modeName
 The current mode name.
 
std::string m_nextMode
 The mode to be set by the next reconfiguration.
 
pcf::IndiProperty m_indiP_mode
 Property used to report the current mode.
 
pcf::IndiProperty m_indiP_reconfig
 Request switch which forces the framegrabber to go through the reconfigure process.
 
ROIs

ROI controls are exposed if derivedT::c_stdCamera_usesROI==true

roi m_currentROI
 
roi m_nextROI
 
roi m_lastROI
 
float m_minROIx { 0 }
 
float m_maxROIx { 1023 }
 
float m_stepROIx { 0 }
 
float m_minROIy { 0 }
 
float m_maxROIy { 1023 }
 
float m_stepROIy { 0 }
 
int m_minROIWidth { 1 }
 
int m_maxROIWidth { 1024 }
 
int m_stepROIWidth { 1 }
 
int m_minROIHeight { 1 }
 
int m_maxROIHeight { 1024 }
 
int m_stepROIHeight { 1 }
 
int m_minROIBinning_x { 1 }
 
int m_maxROIBinning_x { 4 }
 
int m_stepROIBinning_x { 1 }
 
int m_minROIBinning_y { 1 }
 
int m_maxROIBinning_y { 4 }
 
int m_stepROIBinning_y { 1 }
 
float m_default_x { 0 }
 Power-on ROI center x coordinate.
 
float m_default_y { 0 }
 Power-on ROI center y coordinate.
 
int m_default_w { 0 }
 Power-on ROI width.
 
int m_default_h { 0 }
 Power-on ROI height.
 
int m_default_bin_x { 1 }
 Power-on ROI x binning.
 
int m_default_bin_y { 1 }
 Power-on ROI y binning.
 
float m_full_x { 0 }
 The full ROI center x coordinate.
 
float m_full_y { 0 }
 The full ROI center y coordinate.
 
int m_full_w { 0 }
 The full ROI width.
 
int m_full_h { 0 }
 The full ROI height.
 
int m_full_bin_x { 1 }
 The x-binning in the full ROI.
 
int m_full_bin_y { 1 }
 The y-binning in the full ROI.
 
float m_full_currbin_x { 0 }
 The current-binning full ROI center x coordinate.
 
float m_full_currbin_y { 0 }
 The current-binning full ROI center y coordinate.
 
int m_full_currbin_w { 0 }
 The current-binning full ROI width.
 
int m_full_currbin_h { 0 }
 The current-binning full ROI height.
 
pcf::IndiProperty m_indiP_roi_x
 Property used to set the ROI x center coordinate.
 
pcf::IndiProperty m_indiP_roi_y
 Property used to set the ROI x center coordinate.
 
pcf::IndiProperty m_indiP_roi_w
 Property used to set the ROI width.
 
pcf::IndiProperty m_indiP_roi_h
 Property used to set the ROI height.
 
pcf::IndiProperty m_indiP_roi_bin_x
 Property used to set the ROI x binning.
 
pcf::IndiProperty m_indiP_roi_bin_y
 Property used to set the ROI y binning.
 
pcf::IndiProperty m_indiP_fullROI
 Property used to preset the full ROI dimensions.
 
pcf::IndiProperty m_indiP_roi_check
 Property used to trigger checking the target ROI.
 
pcf::IndiProperty m_indiP_roi_set
 Property used to trigger setting the ROI.
 
pcf::IndiProperty m_indiP_roi_full
 Property used to trigger setting the full ROI.
 
pcf::IndiProperty m_indiP_roi_fullbin
 Property used to trigger setting the full in current binning ROI.
 
pcf::IndiProperty m_indiP_roi_loadlast
 Property used to trigger loading the last ROI as the target.
 
pcf::IndiProperty m_indiP_roi_last
 Property used to trigger setting the last ROI.
 
pcf::IndiProperty m_indiP_roi_default
 Property used to trigger setting the default and startup ROI.
 
Crop Mode

Crop mode controls are exposed if derivedT::c_stdCamera_cropMode==true

bool m_cropMode { false }
 Status of crop mode ROIs, if enabled for this camera.
 
bool m_cropModeSet { false }
 Desired status of crop mode ROIs, if enabled for this camera.
 
pcf::IndiProperty m_indiP_cropMode
 Property used to toggle crop mode on and off.
 
Shutter Control

Shutter controls are exposed if derivedT::c_stdCamera_hasShutter == true.

std::string m_shutterStatus { "UNKNOWN" }
 
int m_shutterState { -1 }
 
pcf::IndiProperty m_indiP_shutterStatus
 State of the shutter. 0 = shut, 1 = open, -1 = unknown.
 
pcf::IndiProperty m_indiP_shutter
 Property used to control the shutter, a switch.
 
Focus Control - Data

Focus controls are exposed if the derived camera supports focus and m_hasFocus is true.

bool m_hasFocus { false }
 Runtime flag enabling focus-state reporting and goto-focus control publication.
 
bool m_focusStateHelperConfigured
 True when stdCamera should evaluate focus state from an external switch property.
 
std::string m_focusStateSource
 INDI key (device.property) of the switch property used by checkFocusSwitchState.
 
std::string m_focusStateElement { "toggle" }
 
bool m_focusStateOnMeansInFocus { false }
 
int m_focusStateSourceIndex
 Index of m_focusStateSource within m_indiP_focusMonitoredProperties, or -1 when unused.
 
bool m_focusGotoHelperConfigured
 True when stdCamera should derive goto-focus commands from external switch properties.
 
std::vector< std::string > m_focusGotoSourceProperties
 
std::vector< int > m_focusGotoSourceIndices
 Indices of m_focusGotoSourceProperties within m_indiP_focusMonitoredProperties.
 
std::string m_focusGotoFormat
 Literal {} placeholder format used to build the goto-focus preset name.
 
std::string m_focusGotoTargetProperty
 INDI key (device.property) of the switch property commanded by gotoFocus().
 
std::string m_focusGotoTargetDevice
 Device portion parsed from m_focusGotoTargetProperty.
 
std::string m_focusGotoTargetName
 Property-name portion parsed from m_focusGotoTargetProperty.
 
std::vector< std::string > m_focusMonitoredPropertyKeys
 Unique INDI keys monitored for the focus-state and goto-focus helpers.
 
std::vector< pcf::IndiProperty > m_indiP_focusMonitoredProperties
 Cached external switch properties monitored for the focus helpers.
 
pcf::IndiProperty m_indiP_focus
 Read-only switch property reporting whether the current state is in focus.
 
pcf::IndiProperty m_indiP_gotoFocus
 Request switch property used to command the current focus target.
 
State String

The State string is exposed if derivedT::c_stdCamera_usesStateString is true.

pcf::IndiProperty m_indiP_stateString
 

Static Protected Attributes

static constexpr bool c_hasFanSpeed
 True when the derived camera exposes fan-speed control.
 
static constexpr bool c_hasLED
 True when the derived camera exposes LED control.
 
static constexpr bool c_hasAnalogGain
 True when the derived camera exposes analog-gain control.
 
static constexpr bool c_hasFocus = stdCameraHasFocus<derivedT>::value
 

Private Member Functions

derivedT & derived ()
 

INDI

int newCallBack_stdCamera (const pcf::IndiProperty &ipRecv)
 The callback function for stdCamera properties.
 
int setTempSetPt (const mx::meta::trueFalseT< true > &t)
 Interface to setTempSetPt when the derivedT has temperature control.
 
int setTempSetPt (const mx::meta::trueFalseT< false > &f)
 Interface to setTempSetPt when the derivedT does not have temperature control.
 
int newCallBack_temp (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW CCD temp request.
 
int setTempControl (const mx::meta::trueFalseT< true > &t)
 Interface to setTempControl when the derivedT has temperature control.
 
int setTempControl (const mx::meta::trueFalseT< false > &f)
 Interface to setTempControl when the derivedT does not have temperature control.
 
int newCallBack_temp_controller (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW CCD temp control request.
 
int setReadoutSpeed (const mx::meta::trueFalseT< true > &t)
 Interface to setReadoutSpeed when the derivedT has readout speed control.
 
int setReadoutSpeed (const mx::meta::trueFalseT< false > &f)
 Interface to setReadoutSpeed when the derivedT does not have readout speed control.
 
int newCallBack_readoutSpeed (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW readout speed request.
 
int setVShiftSpeed (const mx::meta::trueFalseT< true > &t)
 Interface to setVShiftSpeed when the derivedT has vshift speed control.
 
int setVShiftSpeed (const mx::meta::trueFalseT< false > &f)
 Interface to setVShiftSpeed when the derivedT does not have vshift speed control.
 
int newCallBack_vShiftSpeed (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW vshift speed request.
 
int setEMGain (const mx::meta::trueFalseT< true > &t)
 Interface to setEMGain when the derivedT has EM Gain.
 
int setEMGain (const mx::meta::trueFalseT< false > &f)
 Interface to setEMGain when the derivedT does not have EM Gain.
 
int newCallBack_emgain (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW EM gain request.
 
int setExpTime (const mx::meta::trueFalseT< true > &t)
 Interface to setExpTime when the derivedT uses exposure time controls.
 
int setExpTime (const mx::meta::trueFalseT< false > &f)
 Interface to setExptime when the derivedT does not use exposure time controls.
 
int newCallBack_exptime (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW exposure time request.
 
int setFPS (const mx::meta::trueFalseT< true > &t)
 Interface to setFPS when the derivedT uses FPS controls.
 
int setFPS (const mx::meta::trueFalseT< false > &f)
 Interface to setFPS when the derivedT does not use FPS controls.
 
int newCallBack_fps (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW fps request.
 
int setFanSpeed (const mx::meta::trueFalseT< true > &t)
 Interface to setFanSpeed when the derivedT exposes fan controls.
 
int setFanSpeed (const mx::meta::trueFalseT< false > &f)
 Interface to setFanSpeed when the derivedT does not expose fan controls.
 
int newCallBack_fanSpeed (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW fan speed request.
 
int setAnalogGain (const mx::meta::trueFalseT< true > &t)
 Interface to setAnalogGain when the derivedT exposes analog-gain controls.
 
int setAnalogGain (const mx::meta::trueFalseT< false > &f)
 Interface to setAnalogGain when the derivedT does not expose analog-gain controls.
 
int newCallBack_analogGain (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW analog-gain request.
 
int setLED (const mx::meta::trueFalseT< true > &t)
 Interface to setLED when the derivedT exposes LED controls.
 
int setLED (const mx::meta::trueFalseT< false > &f)
 Interface to setLED when the derivedT does not expose LED controls.
 
int newCallBack_led (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW LED request.
 
int setSynchro (const mx::meta::trueFalseT< true > &t)
 Interface to setSynchro when the derivedT has synchronization.
 
int setSynchro (const mx::meta::trueFalseT< false > &f)
 Interface to setSynchro when the derivedT does not have synchronization.
 
int newCallBack_synchro (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW synchro request.
 
int newCallBack_mode (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW mode request.
 
int newCallBack_reconfigure (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW reconfigure request.
 
int setCropMode (const mx::meta::trueFalseT< true > &t)
 Interface to setCropMode when the derivedT has crop mode.
 
int setCropMode (const mx::meta::trueFalseT< false > &f)
 Interface to setCropMode when the derivedT does not have crop mode.
 
int newCallBack_cropMode (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW cropMode request.
 
int newCallBack_roi_x (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_x request.
 
int newCallBack_roi_y (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_y request.
 
int newCallBack_roi_w (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_w request.
 
int newCallBack_roi_h (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_h request.
 
int newCallBack_roi_bin_x (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW bin_x request.
 
int newCallBack_roi_bin_y (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW bin_y request.
 
int checkNextROI (const mx::meta::trueFalseT< true > &t)
 Interface to checkNextROI when the derivedT uses ROIs.
 
int checkNextROI (const mx::meta::trueFalseT< false > &f)
 Interface to checkNextROI when the derivedT does not use ROIs.
 
int newCallBack_roi_check (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_check request.
 
int setNextROI (const mx::meta::trueFalseT< true > &t)
 Interface to setNextROI when the derivedT uses ROIs.
 
int setNextROI (const mx::meta::trueFalseT< false > &f)
 Interface to setNextROI when the derivedT does not use ROIs.
 
int newCallBack_roi_set (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_set request.
 
int newCallBack_roi_full (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_full request.
 
int newCallBack_roi_fullbin (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_fullbin request.
 
int newCallBack_roi_loadlast (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_loadlast request.
 
int newCallBack_roi_last (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_last request.
 
int newCallBack_roi_default (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW roi_default request.
 
int setShutter (int ss, const mx::meta::trueFalseT< true > &t)
 Interface to setShutter when the derivedT has a shutter.
 
int setShutter (int ss, const mx::meta::trueFalseT< false > &f)
 Interface to setShutter when the derivedT does not have a shutter.
 
int newCallBack_shutter (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW shutter request.
 
bool checkFocus (const mx::meta::trueFalseT< true > &t)
 Interface to checkFocus when the derivedT exposes focus support.
 
bool checkFocus (const mx::meta::trueFalseT< false > &f)
 Interface to checkFocus when the derivedT does not expose focus support.
 
int gotoFocus (const mx::meta::trueFalseT< true > &t)
 Interface to gotoFocus when the derivedT exposes focus support.
 
int gotoFocus (const mx::meta::trueFalseT< false > &f)
 Interface to gotoFocus when the derivedT does not expose focus support.
 
int newCallBack_gotoFocus (const pcf::IndiProperty &ipRecv)
 Callback to process a NEW goto-focus request.
 
int setCallBack_focusMonitored (const pcf::IndiProperty &ipRecv)
 The callback which caches external focus-helper switch-property updates.
 
std::string stateString (const mx::meta::trueFalseT< true > &t)
 Interface to stateString when the derivedT provides it.
 
std::string stateString (const mx::meta::trueFalseT< false > &f)
 Interface to stateString when the derivedT does not provide it.
 
bool stateStringValid (const mx::meta::trueFalseT< true > &t)
 Interface to stateStringValid when the derivedT provides it.
 
bool stateStringValid (const mx::meta::trueFalseT< false > &f)
 Interface to stateStringValid when the derivedT does not provide it.
 
int updateINDI ()
 Update the INDI properties for this device controller.
 
static int st_newCallBack_stdCamera (void *app, const pcf::IndiProperty &ipRecv)
 The static callback function to be registered for stdCamera properties.
 
static int st_setCallBack_focusMonitored (void *app, const pcf::IndiProperty &ipRecv)
 The static callback function registered for external focus-helper switch properties.
 

Detailed Description

template<class derivedT>
class MagAOX::app::dev::stdCamera< derivedT >

MagAO-X standard camera interface.

Implements the standard interface to a MagAO-X camera. The derived class derivedT must meet the following requirements:

  • The derived class derivedT must be a MagAOXApp\<true\>
  • Must declare this class a friend like so:
    friend class dev::stdCamera<DERIVEDNAME>; //replace DERIVEDNAME with derivedT class name
    MagAO-X standard camera interface.
  • Must declare the following typedef:
    typedef dev::stdCamera<DERIVEDNAME> stdCameraT; //replace DERIVEDNAME with derivedT class name
  • Must declare a series of static constexpr flags to manage static compile-time configuration. Each of these flags must be defined in derivedT to be either true or false.
    • Temperature Control and Status:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_tempControl = true; //or: false
        which determines whether or not temperature controls are exposed.
      • If (c_stdCamera_tempControl == true) then the derived class must implement the following interfaces
        int setTempControl(); // set temp control status according to m_tempControlStatusSet
        int setTempSetPt(); // set the temperature set point accordin to m_ccdTempSetpt
        int setTempControl(const mx::meta::trueFalseT< true > &t)
        Interface to setTempControl when the derivedT has temperature control.
        int setTempSetPt(const mx::meta::trueFalseT< true > &t)
        Interface to setTempSetPt when the derivedT has temperature control.
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_temp = true; //or: false
        which determines whether or not temperature reporting is exposed. Note that if (c_stdCamera_tempControl == true), then the behavior is as if c_stdCamera_temp == true, but thus constexpr must still be defined.
      • If either (c_stdCamera_tempControl == true) or c_stdCamera_temp == true then the INDI property "temp_ccd" will be updated from the value of m_ccdTemp.
    • Readout Speed:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_readoutSpeed = true; //or: false
        which determines whether or not readout speed controls are exposed. If true, then the implementation should populate m_readoutSpeedNames and m_readoutSpeedNameLabels (vectors of strings) on construction to the allowed values. This facility is normally used to control both amplifier and readout/adc speed with names like "ccd_1MHz" and "emccd_17MHz".
        - If used (and true) then the following interface must be implemented:
          \code
              int setReadoutSpeed(); // configures camera using m_readoutSpeedNameSet
          \endcode
          This configures the camera according to \ref m_readoutSpeedNameSet.
          The implementation must also manage \ref m_readoutSpeedName, keeping it up to date with the current setting.
        
        - If true, the configuration setting "camera.defaultReadoutSpeed"
          is also exposed, and \ref m_defaultReadoutSpeed will be set according to it.  The implementation can
          set a sensible default on construction.
        
    • Vertical Shift Speed:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_vShiftSpeed = true; //or: false
        which determines whether or not vertical shift speed controls are exposed.
      • If true, then the implementation should populate m_vShiftSpeedNames and m_vShiftSpeedLabels (vectors of strings) on construction to the allowed values. This facility is normally used with names like "0_3us" and "1_3us".
      • If true then the following interface must be defined:
        int setVShiftSpeed(); // configures camera according to m_vShiftSpeedNameSet
        int setVShiftSpeed(const mx::meta::trueFalseT< true > &t)
        Interface to setVShiftSpeed when the derivedT has vshift speed control.
        function must be defined which sets the camera according to m_vShiftSpeedNameSet. The implementation must also manage m_vShiftSpeedName, keeping it up to date.
      • The configuration setting "camera.defaultVShiftSpeed" is also exposed, and m_defaultVShiftSpeed will be set accordingly. derivedT can set a sensible default on constuction.
    • Fan Speed:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_fanSpeed = true; //or: false
        which determines whether or not fan-speed controls are supported by the app.
      • If true, then the implementation should populate m_fanSpeedNames and m_fanSpeedNameLabels (vectors of strings) on construction to the allowed values.
      • If true then the following interface must be defined:
        int setFanSpeed(); // configures camera according to m_fanSpeedNameSet
        int setFanSpeed(const mx::meta::trueFalseT< true > &t)
        Interface to setFanSpeed when the derivedT exposes fan controls.
        function must be defined which sets the camera according to m_fanSpeedNameSet. The implementation must also manage m_fanSpeedName, keeping it up to date.
      • The configuration settings camera.fanSpeedControl and camera.defaultFanSpeed are exposed. camera.fanSpeedControl controls whether the INDI fan-speed property is published and defaults to true. camera.defaultFanSpeed sets the default fan speed applied after power-on and must match one of the configured entries in m_fanSpeedNames.
    • Exposure Time:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_exptimeCtrl = true; //or: false
      • If true, the following interface must be implemented:
        int setExpTime(); // set camera exposure time according to m_expTimeSet.
        int setExpTime(const mx::meta::trueFalseT< true > &t)
        Interface to setExpTime when the derivedT uses exposure time controls.
        to configure the camera according to m_expTimeSet. derivedT must also keep m_expTime up to date.
    • Frames per Second (FPS) Control and Status:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_fpsCtrl = true; //or: false
      • If that is set to true the derivedT must implement
        int setFPS(); // set camera FS according to m_fps
        int setFPS(const mx::meta::trueFalseT< true > &t)
        Interface to setFPS when the derivedT uses FPS controls.
        to configure the camera according to m_fpsSet.
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_fps = true; //or: false
        Note that the value of c_stdCamera_fps does not matter if c_stdCamera_fpsCtrl == true.
      • If either c_stdCamera_fpsCtrl == true or c_stdCamera_fps == true then derivedT must also keep m_fps up to date.
    • Analog Gain:
      • A static configuration variable may be defined in derivedT as
        static constexpr bool c_stdCamera_analogGain = true; //or: false
        which determines whether or not discrete analog-gain controls are exposed. If omitted, analog-gain controls default to off.
      • If that is set to true the derivedT must implement
        int setAnalogGain(); // configure the camera based on m_analogGainNameSet
        int setAnalogGain(const mx::meta::trueFalseT< true > &t)
        Interface to setAnalogGain when the derivedT exposes analog-gain controls.
        and should populate m_analogGainNames (and optionally m_analogGainNameLabels) before stdCamera::appStartup().
    • LED Control:
      • A static configuration variable may be defined in derivedT as
        static constexpr bool c_stdCamera_led = true; //or: false
        which determines whether or not status LED controls are exposed. If omitted, LED controls default to off.
      • If that is set to true the derivedT must implement
        int setLED(); // configure the camera according to m_ledStateSet
        int setLED(const mx::meta::trueFalseT< true > &t)
        Interface to setLED when the derivedT exposes LED controls.
        and should keep m_ledState up to date.
      • The configuration setting camera.startupLED is exposed for LED-capable cameras and sets the default LED state applied after power-on.
    • Synchro Control:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_synchro = true; //or: false
      • If that is set to true the derivedT must implement
        int setSynchro(); // configure the camera based m_synchroSet.
        int setSynchro(const mx::meta::trueFalseT< true > &t)
        Interface to setSynchro when the derivedT has synchronization.
        to configure the camera based on m_synchroSet. The implementation should also keep m_synchro up to date.
    • EM Gain:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_emGain = true; //or: false
        which determines whether or not EM gain controls are exposed.
      • If the camera uses EM Gain, then a function
        int setEMGain(); // set EM gain based on m_emGainSet.
        int setEMGain(const mx::meta::trueFalseT< true > &t)
        Interface to setEMGain when the derivedT has EM Gain.
        must be defined which sets the camera EM Gain to m_emGainSet.
      • If true the implementation must keep m_emGain up to date.
      • If true the value of m_maxEMGain should be set by the implementation and managed as needed. Additionally the configuration setting "camera.maxEMGain" is exposed.
    • Camera Modes:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_usesModes= true; //or: false
      • If true, then modes are read from the configuration file. See loadCameraConfig()
      • If true, then the configuration setting "camera.startupMode" is exposed, which sets the mode at startup by its name.
    • Regions of Interest
    • Crop Mode ROIs:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_cropMode = true; //or: false
      • If true the derived class must implement
        int setCropMode(); // set crop mode according to m_cropModeSet
        int setCropMode(const mx::meta::trueFalseT< true > &t)
        Interface to setCropMode when the derivedT has crop mode.
        which changes the crop mode according to m_cropModeSet.
      • derivedT must also maintain the value of m_cropMode.
    • Shutters:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_hasShutter = true; //or: false
      • If true the following interface must be implemented:
        int setShutter(int); // shut the shutter if 0, open the shutter otherwise.
        int setShutter(int ss, const mx::meta::trueFalseT< true > &t)
        Interface to setShutter when the derivedT has a shutter.
        which shuts the shutter if the argument is 0, opens it otherwise.
    • Focus State and Control:
      • A static configuration variable may be defined in derivedT as
        static constexpr bool c_stdCamera_hasFocus = true; //or: false
        which determines whether or not focus-state reporting and goto-focus control are available. If omitted, focus support defaults to off.
      • If true then the derived class must implement
        bool checkFocus(); // return true when the current instrument state is in focus
        int gotoFocus(); // command the focus stage to the current in-focus position
        int gotoFocus(const mx::meta::trueFalseT< true > &t)
        Interface to gotoFocus when the derivedT exposes focus support.
        bool checkFocus(const mx::meta::trueFalseT< true > &t)
        Interface to checkFocus when the derivedT exposes focus support.
      • The focus controls are only published when m_hasFocus is true at runtime. Derived classes may set m_hasFocus directly when they provide custom focus logic. When both stdCamera focus helpers are fully configured, stdCamera enables m_hasFocus automatically.
      • When focus control is enabled, stdCamera publishes the read-only switch focus.state, which is On when checkFocus returns true, and the request switch goto_focus.request, which dispatches to gotoFocus when pressed.
      • Derived classes can use checkFocusSwitchState when an external switch property indicates focus state via a configured switch element. By default that element being On means "out of focus", and focus.stateElementOnMeansInFocus=true flips the interpretation so On means "in focus".
      • Derived classes can use sendGotoFocusCommand to derive and send a target preset name from the configuration keys focus.gotoFocus.numSwitches, focus.gotoFocus.property1...propertyN, focus.gotoFocus.format, and focus.gotoFocus.targetProperty.
    • State:
      • A static configuration variable must be defined in derivedT as
        static constexpr bool c_stdCamera_usesStateString = true; //or: false
        which determines whether the class provides a state string for dark management.
      • If true, the following functions must be defined in derivedT:
        std::string stateString(); //String capturing the current state. Must not include "__T".
        bool stateStringValid(); //Whether or not the current state string is valid, i.e. not changing.
        bool stateStringValid(const mx::meta::trueFalseT< true > &t)
        Interface to stateStringValid when the derivedT provides it.
        std::string stateString(const mx::meta::trueFalseT< true > &t)
        Interface to stateString when the derivedT provides it.
  • The derived class must implement:
    int powerOnDefaults(); // called on power-on after powerOnWaitElapsed has occurred.
  • Calls to this class's setupConfig(), loadConfig(), appStartup(), appLogic(), appShutdown() onPowerOff(), and whilePowerOff(), must be placed in the derived class's functions of the same name.

Definition at line 455 of file stdCamera.hpp.


Class Documentation

◆ MagAOX::app::dev::stdCamera::roi

struct MagAOX::app::dev::stdCamera::roi
template<class derivedT>
struct MagAOX::app::dev::stdCamera< derivedT >::roi

Definition at line 630 of file stdCamera.hpp.

Collaboration diagram for MagAOX::app::dev::stdCamera< derivedT >::roi:
Collaboration graph
Class Members
int bin_x { 0 }
int bin_y { 0 }
int h { 0 }
int w { 0 }
float x { 0 }
float y { 0 }

Constructor & Destructor Documentation

◆ ~stdCamera()

template<class derivedT >
MagAOX::app::dev::stdCamera< derivedT >::~stdCamera ( )
noexcept

Destructor.

Definition at line 1424 of file stdCamera.hpp.

Member Function Documentation

◆ appLogic()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::appLogic ( )

Application logic.

Checks the stdCamera thread

This should be called from the derived's appLogic() as in

with appropriate error checking.

Returns
0 on success
-1 on error, which is logged.

Definition at line 2746 of file stdCamera.hpp.

References INDI_BUSY, INDI_IDLE, INDI_OK, MagAOX::app::stateCodes::NOTCONNECTED, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::POWERON, MagAOX::app::stateCodes::READY, and MagAOX::app::indi::updateSelectionSwitchIfChanged().

◆ appShutdown()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::appShutdown ( )

Application shutdown.

Shuts down the stdCamera thread

with appropriate error checking.

Returns
0 on success
-1 on error, which is logged.

Definition at line 3077 of file stdCamera.hpp.

Referenced by MagAOX::app::cameraSim::appShutdown(), MagAOX::app::ocam2KCtrl::appShutdown(), MagAOX::app::qhyCtrl::appShutdown(), and MagAOX::app::zylaCtrl::appShutdown().

◆ appStartup()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::appStartup ( )

Startup function.

This should be called in derivedT::appStartup as

with appropriate error checking.

You should set the default/startup values of m_currentROI as well as the min/max/step values for the ROI parameters before calling this function.

Returns
0 on success
-1 on error, which is logged.

Definition at line 2249 of file stdCamera.hpp.

References MagAOX::app::it, and MagAOX::app::indi::parseIndiKey().

◆ checkFocus() [1/2]

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::checkFocus ( const mx::meta::trueFalseT< false > &  f)

Interface to checkFocus when the derivedT does not expose focus support.

Definition at line 4328 of file stdCamera.hpp.

◆ checkFocus() [2/2]

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::checkFocus ( const mx::meta::trueFalseT< true > &  t)

Interface to checkFocus when the derivedT exposes focus support.

Definition at line 4321 of file stdCamera.hpp.

◆ checkFocusSwitchState()

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::checkFocusSwitchState ( )

Evaluate the configured focus-state switch helper as an in-focus boolean.

Definition at line 2022 of file stdCamera.hpp.

◆ checkNextROI() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::checkNextROI ( const mx::meta::trueFalseT< false > &  f)

Interface to checkNextROI when the derivedT does not use ROIs.

Tag-dispatch resolution of c_stdCamera_usesROI==false will call this function. This prevents requiring derivedT to have its own checkNextROI().

Definition at line 4000 of file stdCamera.hpp.

◆ checkNextROI() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::checkNextROI ( const mx::meta::trueFalseT< true > &  t)

Interface to checkNextROI when the derivedT uses ROIs.

Tag-dispatch resolution of c_stdCamera_usesROI==true will call this function. Calls derivedT::checkNextROI.

Definition at line 3993 of file stdCamera.hpp.

◆ createFanSpeed() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::createFanSpeed ( const mx::meta::trueFalseT< false > &  f)
protected

◆ createFanSpeed() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::createFanSpeed ( const mx::meta::trueFalseT< true > &  t)
protected

Definition at line 2221 of file stdCamera.hpp.

◆ createReadoutSpeed() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::createReadoutSpeed ( const mx::meta::trueFalseT< false > &  f)
protected

◆ createReadoutSpeed() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::createReadoutSpeed ( const mx::meta::trueFalseT< true > &  t)
protected

Definition at line 2166 of file stdCamera.hpp.

◆ createVShiftSpeed() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::createVShiftSpeed ( const mx::meta::trueFalseT< false > &  f)
protected

◆ createVShiftSpeed() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::createVShiftSpeed ( const mx::meta::trueFalseT< true > &  t)
protected

Definition at line 2194 of file stdCamera.hpp.

◆ derived()

template<class derivedT >
derivedT & MagAOX::app::dev::stdCamera< derivedT >::derived ( )
inlineprivate

Definition at line 1417 of file stdCamera.hpp.

◆ gotoFocus() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::gotoFocus ( const mx::meta::trueFalseT< false > &  f)

Interface to gotoFocus when the derivedT does not expose focus support.

Definition at line 4342 of file stdCamera.hpp.

◆ gotoFocus() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::gotoFocus ( const mx::meta::trueFalseT< true > &  t)

Interface to gotoFocus when the derivedT exposes focus support.

Definition at line 4335 of file stdCamera.hpp.

◆ loadConfig()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::loadConfig ( mx::app::appConfigurator &  config)

load the configuration system results

This should be called in derivedT::loadConfig as

int loadConfig(mx::app::appConfigurator &config)
load the configuration system results

with appropriate error checking.

Parameters
[in]configthe derived classes configurator

Definition at line 1690 of file stdCamera.hpp.

References CAMCTRL_E_NOCONFIGS, MagAOX::app::dev::loadCameraConfig(), flatlogs::logPrio::LOG_CRITICAL, MagAOX::app::indi::parseIndiKey(), and MagAOX::app::dev::stripQuotedWhitespace().

Referenced by MagAOX::app::andorCtrl::loadConfig(), MagAOX::app::ocam2KCtrl::loadConfig(), MagAOX::app::picamCtrl::loadConfig(), MagAOX::app::qhyCtrl::loadConfig(), MagAOX::app::zylaCtrl::loadConfig(), and MagAOX::app::cameraSim::loadConfigImpl().

◆ newCallBack_analogGain()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_analogGain ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW analog-gain request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3591 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and flatlogs::logPrio::LOG_ERROR.

◆ newCallBack_cropMode()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_cropMode ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW cropMode request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3823 of file stdCamera.hpp.

References MagAOX::app::ipRecv, and MagAOX::app::lock().

◆ newCallBack_emgain()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_emgain ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW EM gain request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3403 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_exptime()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_exptime ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW exposure time request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3445 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_fanSpeed()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_fanSpeed ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW fan speed request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3529 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and flatlogs::logPrio::LOG_ERROR.

◆ newCallBack_fps()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_fps ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW fps request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3487 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_gotoFocus()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_gotoFocus ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW goto-focus request.

Parameters
[in]ipRecvthe INDI property sent with the new property request.

Definition at line 4349 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_led()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_led ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW LED request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3653 of file stdCamera.hpp.

References MagAOX::app::ipRecv, and MagAOX::app::lock().

◆ newCallBack_mode()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_mode ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW mode request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3731 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::it, MagAOX::app::lock(), and flatlogs::logPrio::LOG_ERROR.

◆ newCallBack_readoutSpeed()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_readoutSpeed ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW readout speed request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3281 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and flatlogs::logPrio::LOG_ERROR.

◆ newCallBack_reconfigure()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_reconfigure ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW reconfigure request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3784 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_bin_x()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_bin_x ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW bin_x request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3947 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_roi_bin_y()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_bin_y ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW bin_y request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3970 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_roi_check()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_check ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_check request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4007 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_default()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_default ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_default request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4241 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_full()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_full ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_full request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4081 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_fullbin()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_fullbin ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_fullbin request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4117 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), flatlogs::logPrio::LOG_WARNING, and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_h()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_h ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_h request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3924 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_roi_last()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_last ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_last request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4211 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_loadlast()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_loadlast ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_loadlast request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4182 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_set()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_set ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_set request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4050 of file stdCamera.hpp.

References INDI_IDLE, MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::indi::updateSwitchIfChanged().

◆ newCallBack_roi_w()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_w ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_w request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3901 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_roi_x()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_x ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_x request.

Returns
0 on success.
-1 on error.
Todo:
why don't these check if usesROI is true?
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3855 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_roi_y()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_roi_y ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW roi_y request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3878 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_shutter()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_shutter ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW shutter request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 4292 of file stdCamera.hpp.

References MagAOX::app::ipRecv.

◆ newCallBack_stdCamera()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_stdCamera ( const pcf::IndiProperty &  ipRecv)

The callback function for stdCamera properties.

Dispatches to the relevant handler

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3090 of file stdCamera.hpp.

References MagAOX::app::ipRecv.

◆ newCallBack_synchro()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_synchro ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW synchro request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3700 of file stdCamera.hpp.

References MagAOX::app::ipRecv, and MagAOX::app::lock().

◆ newCallBack_temp()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_temp ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW CCD temp request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3187 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and MagAOX::app::target.

◆ newCallBack_temp_controller()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_temp_controller ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW CCD temp control request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3231 of file stdCamera.hpp.

References INDI_BUSY, MagAOX::app::ipRecv, and MagAOX::app::lock().

◆ newCallBack_vShiftSpeed()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::newCallBack_vShiftSpeed ( const pcf::IndiProperty &  ipRecv)

Callback to process a NEW vshift speed request.

Returns
0 on success.
-1 on error.
Parameters
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3342 of file stdCamera.hpp.

References MagAOX::app::ipRecv, MagAOX::app::lock(), and flatlogs::logPrio::LOG_ERROR.

◆ onPowerOff()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::onPowerOff ( )

Actions on power off.

This should be called from the derived's onPowerOff() as in

with appropriate error checking.

The INDI mutex should be locked before calling.

Returns
0 on success
-1 on error, which is logged.

Definition at line 2907 of file stdCamera.hpp.

References INDI_BUSY, INDI_IDLE, INDI_OK, MagAOX::app::it, MagAOX::app::indi::updateIfChanged(), and MagAOX::app::indi::updateSelectionSwitchIfChanged().

◆ recordCamera()

◆ sendGotoFocusCommand()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::sendGotoFocusCommand ( )

Format and send the configured goto-focus switch command.

Returns
0 on success.
-1 if formatting fails or the command cannot be dispatched.

Definition at line 2075 of file stdCamera.hpp.

◆ setAnalogGain() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setAnalogGain ( const mx::meta::trueFalseT< false > &  f)

Interface to setAnalogGain when the derivedT does not expose analog-gain controls.

Tag-dispatch resolution of analog-gain control availability will call this function. This prevents requiring derivedT to have its own setAnalogGain().

Definition at line 3584 of file stdCamera.hpp.

◆ setAnalogGain() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setAnalogGain ( const mx::meta::trueFalseT< true > &  t)

Interface to setAnalogGain when the derivedT exposes analog-gain controls.

Tag-dispatch resolution of analog-gain control availability will call this function. Calls derivedT::setAnalogGain.

Definition at line 3577 of file stdCamera.hpp.

◆ setCallBack_focusMonitored()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setCallBack_focusMonitored ( const pcf::IndiProperty &  ipRecv)

The callback which caches external focus-helper switch-property updates.

Parameters
[in]ipRecvthe INDI property sent with the set-property update.

Definition at line 4384 of file stdCamera.hpp.

References MagAOX::app::ipRecv, and MagAOX::app::lock().

◆ setCropMode() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setCropMode ( const mx::meta::trueFalseT< false > &  f)

Interface to setCropMode when the derivedT does not have crop mode.

Tag-dispatch resolution of c_stdCamera_cropMode==false will call this function. This prevents requiring derivedT to have its own setCropMode().

Definition at line 3816 of file stdCamera.hpp.

◆ setCropMode() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setCropMode ( const mx::meta::trueFalseT< true > &  t)

Interface to setCropMode when the derivedT has crop mode.

Tag-dispatch resolution of c_stdCamera_cropMode==true will call this function. Calls derivedT::setCropMode.

Definition at line 3809 of file stdCamera.hpp.

◆ setEMGain() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setEMGain ( const mx::meta::trueFalseT< false > &  f)

Interface to setEMGain when the derivedT does not have EM Gain.

Tag-dispatch resolution of c_stdCamera_emGain==false will call this function. This prevents requiring derivedT to have its own setEMGain().

Definition at line 3396 of file stdCamera.hpp.

◆ setEMGain() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setEMGain ( const mx::meta::trueFalseT< true > &  t)

Interface to setEMGain when the derivedT has EM Gain.

Tag-dispatch resolution of c_stdCamera_emGain==true will call this function. Calls derivedT::setEMGain.

Definition at line 3389 of file stdCamera.hpp.

◆ setExpTime() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setExpTime ( const mx::meta::trueFalseT< false > &  f)

Interface to setExptime when the derivedT does not use exposure time controls.

Tag-dispatch resolution of c_stdCamera_exptimeCtrl==false will call this function. This prevents requiring derivedT to have its own setExpTime().

Definition at line 3438 of file stdCamera.hpp.

◆ setExpTime() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setExpTime ( const mx::meta::trueFalseT< true > &  t)

Interface to setExpTime when the derivedT uses exposure time controls.

Tag-dispatch resolution of c_stdCamera_exptimeCtrl==true will call this function. Calls derivedT::setExpTime.

Definition at line 3431 of file stdCamera.hpp.

◆ setFanSpeed() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setFanSpeed ( const mx::meta::trueFalseT< false > &  f)

Interface to setFanSpeed when the derivedT does not expose fan controls.

Tag-dispatch resolution of fan control availability will call this function. This prevents requiring derivedT to have its own setFanSpeed().

Definition at line 3522 of file stdCamera.hpp.

◆ setFanSpeed() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setFanSpeed ( const mx::meta::trueFalseT< true > &  t)

Interface to setFanSpeed when the derivedT exposes fan controls.

Tag-dispatch resolution of fan control availability will call this function. Calls derivedT::setFanSpeed.

Definition at line 3515 of file stdCamera.hpp.

◆ setFPS() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setFPS ( const mx::meta::trueFalseT< false > &  f)

Interface to setFPS when the derivedT does not use FPS controls.

Tag-dispatch resolution of c_stdCamera_hasFPS==false will call this function. This prevents requiring derivedT to have its own setFPS().

Definition at line 3480 of file stdCamera.hpp.

◆ setFPS() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setFPS ( const mx::meta::trueFalseT< true > &  t)

Interface to setFPS when the derivedT uses FPS controls.

Tag-dispatch resolution of c_stdCamera_fpsCtrl==true will call this function. Calls derivedT::setFPS.

Definition at line 3473 of file stdCamera.hpp.

◆ setLED() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setLED ( const mx::meta::trueFalseT< false > &  f)

Interface to setLED when the derivedT does not expose LED controls.

Tag-dispatch resolution of LED control availability will call this function. This prevents requiring derivedT to have its own setLED().

Definition at line 3646 of file stdCamera.hpp.

◆ setLED() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setLED ( const mx::meta::trueFalseT< true > &  t)

Interface to setLED when the derivedT exposes LED controls.

Tag-dispatch resolution of LED control availability will call this function. Calls derivedT::setLED.

Definition at line 3639 of file stdCamera.hpp.

◆ setNextROI() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setNextROI ( const mx::meta::trueFalseT< false > &  f)

Interface to setNextROI when the derivedT does not use ROIs.

Tag-dispatch resolution of c_stdCamera_usesROI==false will call this function. This prevents requiring derivedT to have its own setNextROI().

Definition at line 4043 of file stdCamera.hpp.

◆ setNextROI() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setNextROI ( const mx::meta::trueFalseT< true > &  t)

Interface to setNextROI when the derivedT uses ROIs.

Tag-dispatch resolution of c_stdCamera_usesROI==true will call this function. Calls derivedT::setNextROI.

Definition at line 4036 of file stdCamera.hpp.

◆ setReadoutSpeed() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setReadoutSpeed ( const mx::meta::trueFalseT< false > &  f)

Interface to setReadoutSpeed when the derivedT does not have readout speed control.

Tag-dispatch resolution of c_stdCamera_readoutSpeed==false will call this function. Just returns 0.

Definition at line 3274 of file stdCamera.hpp.

◆ setReadoutSpeed() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setReadoutSpeed ( const mx::meta::trueFalseT< true > &  t)

Interface to setReadoutSpeed when the derivedT has readout speed control.

Tag-dispatch resolution of c_stdCamera_readoutSpeed==true will call this function. Calls derivedT::setReadoutSpeed.

Definition at line 3267 of file stdCamera.hpp.

◆ setShutter() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setShutter ( int  ss,
const mx::meta::trueFalseT< false > &  f 
)

Interface to setShutter when the derivedT does not have a shutter.

Tag-dispatch resolution of c_stdCamera_hasShutter==false will call this function. This prevents requiring derivedT to have its own setShutter().

Definition at line 4284 of file stdCamera.hpp.

◆ setShutter() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setShutter ( int  ss,
const mx::meta::trueFalseT< true > &  t 
)

Interface to setShutter when the derivedT has a shutter.

Tag-dispatch resolution of c_stdCamera_hasShutter==true will call this function. Calls derivedT::setShutter.

Definition at line 4277 of file stdCamera.hpp.

◆ setSynchro() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setSynchro ( const mx::meta::trueFalseT< false > &  f)

Interface to setSynchro when the derivedT does not have synchronization.

Tag-dispatch resolution of c_stdCamera_ynchro==false will call this function. This prevents requiring derivedT to have its own setSynchro().

Definition at line 3693 of file stdCamera.hpp.

◆ setSynchro() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setSynchro ( const mx::meta::trueFalseT< true > &  t)

Interface to setSynchro when the derivedT has synchronization.

Tag-dispatch resolution of c_stdCamera_synchro==true will call this function. Calls derivedT::setSynchro.

Definition at line 3686 of file stdCamera.hpp.

◆ setTempControl() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setTempControl ( const mx::meta::trueFalseT< false > &  f)

Interface to setTempControl when the derivedT does not have temperature control.

Tag-dispatch resolution of c_stdCamera_tempControl==false will call this function. Prevents requiring derivedT::setTempControl.

Definition at line 3224 of file stdCamera.hpp.

◆ setTempControl() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setTempControl ( const mx::meta::trueFalseT< true > &  t)

Interface to setTempControl when the derivedT has temperature control.

Tag-dispatch resolution of c_stdCamera_tempControl==true will call this function. Calls derivedT::setTempControl.

Definition at line 3217 of file stdCamera.hpp.

◆ setTempSetPt() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setTempSetPt ( const mx::meta::trueFalseT< false > &  f)

Interface to setTempSetPt when the derivedT does not have temperature control.

Tag-dispatch resolution of c_stdCamera_tempControl==false will call this function. Prevents requiring derivedT::setTempSetPt.

Definition at line 3180 of file stdCamera.hpp.

◆ setTempSetPt() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setTempSetPt ( const mx::meta::trueFalseT< true > &  t)

Interface to setTempSetPt when the derivedT has temperature control.

Tag-dispatch resolution of c_stdCamera_tempControl==true will call this function. Calls derivedT::setTempSetPt.

Definition at line 3173 of file stdCamera.hpp.

◆ setupConfig()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setupConfig ( mx::app::appConfigurator &  config)

Setup the configuration system.

This should be called in derivedT::setupConfig as

int setupConfig(mx::app::appConfigurator &config)
Setup the configuration system.

with appropriate error checking.

Parameters
[out]configthe derived classes configurator

Definition at line 1430 of file stdCamera.hpp.

Referenced by MagAOX::app::andorCtrl::setupConfig(), MagAOX::app::cameraSim::setupConfig(), MagAOX::app::ocam2KCtrl::setupConfig(), MagAOX::app::picamCtrl::setupConfig(), MagAOX::app::qhyCtrl::setupConfig(), and MagAOX::app::zylaCtrl::setupConfig().

◆ setVShiftSpeed() [1/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setVShiftSpeed ( const mx::meta::trueFalseT< false > &  f)

Interface to setVShiftSpeed when the derivedT does not have vshift speed control.

Tag-dispatch resolution of c_stdCamera_vShiftSpeed==false will call this function. Just returns 0.

Definition at line 3335 of file stdCamera.hpp.

◆ setVShiftSpeed() [2/2]

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::setVShiftSpeed ( const mx::meta::trueFalseT< true > &  t)

Interface to setVShiftSpeed when the derivedT has vshift speed control.

Tag-dispatch resolution of c_stdCamera_vShiftSpeed==true will call this function. Calls derivedT::setVShiftSpeed.

Definition at line 3328 of file stdCamera.hpp.

◆ st_newCallBack_stdCamera()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::st_newCallBack_stdCamera ( void *  app,
const pcf::IndiProperty &  ipRecv 
)
static

The static callback function to be registered for stdCamera properties.

Calls newCallback_stdCamera

Returns
0 on success.
-1 on error.
Parameters
[in]appa pointer to this, will be static_cast-ed to derivedT.
[in]ipRecvthe INDI property sent with the the new property request.

Definition at line 3083 of file stdCamera.hpp.

References MagAOX::app::ipRecv.

◆ st_setCallBack_focusMonitored()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::st_setCallBack_focusMonitored ( void *  app,
const pcf::IndiProperty &  ipRecv 
)
static

The static callback function registered for external focus-helper switch properties.

Parameters
[in]appa pointer to this, which will be static_cast-ed to derivedT
[in]ipRecvthe INDI property sent with the set-property update

Definition at line 4378 of file stdCamera.hpp.

References MagAOX::app::ipRecv.

◆ stateString() [1/2]

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::stateString ( const mx::meta::trueFalseT< false > &  f)

Interface to stateString when the derivedT does not provide it.

Tag-dispatch resolution of c_stdCamera_usesStateString==false will call this function. returns "".

Definition at line 4414 of file stdCamera.hpp.

◆ stateString() [2/2]

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::stateString ( const mx::meta::trueFalseT< true > &  t)

Interface to stateString when the derivedT provides it.

Tag-dispatch resolution of c_stdCamera_usesStateString==true will call this function. Calls derivedT::stateString.

Definition at line 4407 of file stdCamera.hpp.

◆ stateStringValid() [1/2]

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::stateStringValid ( const mx::meta::trueFalseT< false > &  f)

Interface to stateStringValid when the derivedT does not provide it.

Tag-dispatch resolution of c_stdCamera_usesStateString==false will call this function. returns false.

Definition at line 4428 of file stdCamera.hpp.

◆ stateStringValid() [2/2]

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::stateStringValid ( const mx::meta::trueFalseT< true > &  t)

Interface to stateStringValid when the derivedT provides it.

Tag-dispatch resolution of c_stdCamera_usesStateString==true will call this function. Calls derivedT::stateStringValid.

Definition at line 4421 of file stdCamera.hpp.

◆ updateFocusStateProperty()

template<class derivedT >
void MagAOX::app::dev::stdCamera< derivedT >::updateFocusStateProperty ( )
protected

Refresh the published focus.state property from the current helper or derived focus implementation.

Definition at line 2045 of file stdCamera.hpp.

References INDI_IDLE, and INDI_OK.

◆ updateINDI()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::updateINDI ( )

Update the INDI properties for this device controller.

You should call this once per main loop. It is not called automatically.

Returns
0 on success.
-1 on error.

Definition at line 4435 of file stdCamera.hpp.

References INDI_BUSY, INDI_IDLE, INDI_OK, MagAOX::app::it, and MagAOX::app::indi::updateSelectionSwitchIfChanged().

◆ whilePowerOff()

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::whilePowerOff ( )

Actions while powered off.

This should be called from the derived's whilePowerOff() as in

with appropriate error checking.

Returns
0 on success
-1 on error, which is logged.

Definition at line 3017 of file stdCamera.hpp.

References INDI_BUSY, INDI_IDLE, INDI_OK, and MagAOX::app::indi::updateSelectionSwitchIfChanged().

Member Data Documentation

◆ c_hasAnalogGain

template<class derivedT >
constexpr bool MagAOX::app::dev::stdCamera< derivedT >::c_hasAnalogGain
staticconstexprprotected
Initial value:
=
stdCameraHasAnalogGain<derivedT>::value

True when the derived camera exposes analog-gain control.

Definition at line 462 of file stdCamera.hpp.

◆ c_hasFanSpeed

template<class derivedT >
constexpr bool MagAOX::app::dev::stdCamera< derivedT >::c_hasFanSpeed
staticconstexprprotected
Initial value:
=
stdCameraHasFanSpeed<derivedT>::value

True when the derived camera exposes fan-speed control.

Definition at line 458 of file stdCamera.hpp.

◆ c_hasFocus

template<class derivedT >
constexpr bool MagAOX::app::dev::stdCamera< derivedT >::c_hasFocus = stdCameraHasFocus<derivedT>::value
staticconstexprprotected

True when the derived camera exposes focus-state and goto-focus support.

Definition at line 464 of file stdCamera.hpp.

◆ c_hasLED

template<class derivedT >
constexpr bool MagAOX::app::dev::stdCamera< derivedT >::c_hasLED
staticconstexprprotected
Initial value:
=
stdCameraHasLED<derivedT>::value

True when the derived camera exposes LED control.

Definition at line 460 of file stdCamera.hpp.

◆ m_adcSpeed

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_adcSpeed { 0 }
protected

Definition at line 526 of file stdCamera.hpp.

◆ m_analogGainName

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_analogGainName { "" }
protected

Current analog-gain option name.

Definition at line 581 of file stdCamera.hpp.

◆ m_analogGainNameLabels

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_analogGainNameLabels
protected

Optional GUI labels for the analog-gain options.

Definition at line 580 of file stdCamera.hpp.

◆ m_analogGainNames

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_analogGainNames
protected

Valid analog-gain option names for the INDI selection switch.

Definition at line 579 of file stdCamera.hpp.

◆ m_analogGainNameSet

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_analogGainNameSet { "" }
protected

Requested analog-gain option name.

Definition at line 582 of file stdCamera.hpp.

◆ m_analogGainValid

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_analogGainValid { false }
protected

True once the current analog-gain state is known.

Definition at line 583 of file stdCamera.hpp.

◆ m_cameraModes

template<class derivedT >
cameraConfigMap MagAOX::app::dev::stdCamera< derivedT >::m_cameraModes
protected

Map holding the possible camera mode configurations.

Definition at line 471 of file stdCamera.hpp.

◆ m_ccdTemp

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_ccdTemp { -999 }
protected

The current temperature, in C.

Definition at line 493 of file stdCamera.hpp.

◆ m_ccdTempSetpt

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_ccdTempSetpt { -999 }
protected

The desired temperature, in C.

Definition at line 495 of file stdCamera.hpp.

◆ m_cropMode

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_cropMode { false }
protected

Status of crop mode ROIs, if enabled for this camera.

Definition at line 712 of file stdCamera.hpp.

◆ m_cropModeSet

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_cropModeSet { false }
protected

Desired status of crop mode ROIs, if enabled for this camera.

Definition at line 713 of file stdCamera.hpp.

◆ m_currentROI

template<class derivedT >
roi MagAOX::app::dev::stdCamera< derivedT >::m_currentROI
protected

Definition at line 640 of file stdCamera.hpp.

◆ m_default_bin_x

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_default_bin_x { 1 }
protected

Power-on ROI x binning.

Definition at line 672 of file stdCamera.hpp.

◆ m_default_bin_y

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_default_bin_y { 1 }
protected

Power-on ROI y binning.

Definition at line 673 of file stdCamera.hpp.

◆ m_default_h

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_default_h { 0 }
protected

Power-on ROI height.

Definition at line 671 of file stdCamera.hpp.

◆ m_default_w

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_default_w { 0 }
protected

Power-on ROI width.

Definition at line 670 of file stdCamera.hpp.

◆ m_default_x

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_default_x { 0 }
protected

Power-on ROI center x coordinate.

Definition at line 668 of file stdCamera.hpp.

◆ m_default_y

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_default_y { 0 }
protected

Power-on ROI center y coordinate.

Definition at line 669 of file stdCamera.hpp.

◆ m_defaultFanSpeed

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_defaultFanSpeed
protected

The default fan speed to apply after power on.

Definition at line 480 of file stdCamera.hpp.

◆ m_defaultLEDState

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_defaultLEDState { true }
protected

The default LED state to apply after power on.

Definition at line 481 of file stdCamera.hpp.

◆ m_defaultReadoutSpeed

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_defaultReadoutSpeed
protected

The default readout speed of the camera.

Definition at line 477 of file stdCamera.hpp.

◆ m_defaultVShiftSpeed

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_defaultVShiftSpeed
protected

The default readout speed of the camera.

Definition at line 478 of file stdCamera.hpp.

◆ m_emGain

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_emGain { 1 }
protected

The camera's current EM gain (if available).

Definition at line 529 of file stdCamera.hpp.

◆ m_emGainSet

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_emGainSet { 1 }
protected

The camera's EM gain, as set by the user.

Definition at line 530 of file stdCamera.hpp.

◆ m_expTime

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_expTime { 0 }
protected

The current exposure time, in seconds.

Definition at line 547 of file stdCamera.hpp.

◆ m_expTimeSet

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_expTimeSet { 0 }
protected

The exposure time, in seconds, as set by user.

Definition at line 548 of file stdCamera.hpp.

◆ m_fanSpeedControlEnabled

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_fanSpeedControlEnabled { true }
protected

Whether or not fan-speed control is published through INDI.

Definition at line 479 of file stdCamera.hpp.

◆ m_fanSpeedName

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_fanSpeedName { "" }
protected

Current fan-control option name.

Definition at line 568 of file stdCamera.hpp.

◆ m_fanSpeedNameLabels

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_fanSpeedNameLabels
protected

Optional GUI labels for the fan-control options.

Definition at line 567 of file stdCamera.hpp.

◆ m_fanSpeedNames

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_fanSpeedNames
protected

Valid fan-control option names for the INDI selection switch.

Definition at line 566 of file stdCamera.hpp.

◆ m_fanSpeedNameSet

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_fanSpeedNameSet { "" }
protected

Requested fan-control option name.

Definition at line 569 of file stdCamera.hpp.

◆ m_fanSpeedValid

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_fanSpeedValid { false }
protected

True once the current fan-control state is known.

Definition at line 570 of file stdCamera.hpp.

◆ m_focusGotoFormat

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoFormat
protected

Literal {} placeholder format used to build the goto-focus preset name.

Definition at line 760 of file stdCamera.hpp.

◆ m_focusGotoHelperConfigured

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoHelperConfigured
protected
Initial value:
{
false }

True when stdCamera should derive goto-focus commands from external switch properties.

Definition at line 751 of file stdCamera.hpp.

◆ m_focusGotoSourceIndices

template<class derivedT >
std::vector<int> MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoSourceIndices
protected

Indices of m_focusGotoSourceProperties within m_indiP_focusMonitoredProperties.

Definition at line 758 of file stdCamera.hpp.

◆ m_focusGotoSourceProperties

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoSourceProperties
protected

INDI keys (device.property) of the switch properties combined for gotoFocus().

Definition at line 754 of file stdCamera.hpp.

◆ m_focusGotoTargetDevice

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoTargetDevice
protected

Device portion parsed from m_focusGotoTargetProperty.

Definition at line 765 of file stdCamera.hpp.

◆ m_focusGotoTargetName

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoTargetName
protected

Property-name portion parsed from m_focusGotoTargetProperty.

Definition at line 767 of file stdCamera.hpp.

◆ m_focusGotoTargetProperty

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_focusGotoTargetProperty
protected

INDI key (device.property) of the switch property commanded by gotoFocus().

Definition at line 763 of file stdCamera.hpp.

◆ m_focusMonitoredPropertyKeys

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_focusMonitoredPropertyKeys
protected

Unique INDI keys monitored for the focus-state and goto-focus helpers.

Definition at line 770 of file stdCamera.hpp.

◆ m_focusStateElement

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_focusStateElement { "toggle" }
protected

Element within m_focusStateSource whose On state is interpreted according to m_focusStateOnMeansInFocus.

Definition at line 742 of file stdCamera.hpp.

◆ m_focusStateHelperConfigured

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_focusStateHelperConfigured
protected
Initial value:
{
false }

True when stdCamera should evaluate focus state from an external switch property.

Definition at line 736 of file stdCamera.hpp.

◆ m_focusStateOnMeansInFocus

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_focusStateOnMeansInFocus { false }
protected

True when m_focusStateElement being On means "in focus". Default false means On is interpreted as "out of focus".

Definition at line 745 of file stdCamera.hpp.

◆ m_focusStateSource

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_focusStateSource
protected

INDI key (device.property) of the switch property used by checkFocusSwitchState.

Definition at line 740 of file stdCamera.hpp.

◆ m_focusStateSourceIndex

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_focusStateSourceIndex
protected
Initial value:
{
-1 }

Index of m_focusStateSource within m_indiP_focusMonitoredProperties, or -1 when unused.

Definition at line 748 of file stdCamera.hpp.

◆ m_fps

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_fps { 0 }
protected

The current FPS.

Definition at line 554 of file stdCamera.hpp.

◆ m_fpsSet

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_fpsSet { 0 }
protected

The commanded fps, as set by user.

Definition at line 555 of file stdCamera.hpp.

◆ m_full_bin_x

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_full_bin_x { 1 }
protected

The x-binning in the full ROI.

Definition at line 679 of file stdCamera.hpp.

◆ m_full_bin_y

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_full_bin_y { 1 }
protected

The y-binning in the full ROI.

Definition at line 680 of file stdCamera.hpp.

◆ m_full_currbin_h

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_full_currbin_h { 0 }
protected

The current-binning full ROI height.

Definition at line 685 of file stdCamera.hpp.

◆ m_full_currbin_w

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_full_currbin_w { 0 }
protected

The current-binning full ROI width.

Definition at line 684 of file stdCamera.hpp.

◆ m_full_currbin_x

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_full_currbin_x { 0 }
protected

The current-binning full ROI center x coordinate.

Definition at line 682 of file stdCamera.hpp.

◆ m_full_currbin_y

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_full_currbin_y { 0 }
protected

The current-binning full ROI center y coordinate.

Definition at line 683 of file stdCamera.hpp.

◆ m_full_h

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_full_h { 0 }
protected

The full ROI height.

Definition at line 678 of file stdCamera.hpp.

◆ m_full_w

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_full_w { 0 }
protected

The full ROI width.

Definition at line 677 of file stdCamera.hpp.

◆ m_full_x

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_full_x { 0 }
protected

The full ROI center x coordinate.

Definition at line 675 of file stdCamera.hpp.

◆ m_full_y

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_full_y { 0 }
protected

The full ROI center y coordinate.

Definition at line 676 of file stdCamera.hpp.

◆ m_hasFocus

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_hasFocus { false }
protected

Runtime flag enabling focus-state reporting and goto-focus control publication.

Definition at line 734 of file stdCamera.hpp.

◆ m_indiP_analogGain

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_analogGain
protected

Property used to select the analog-gain mode.

Definition at line 585 of file stdCamera.hpp.

◆ m_indiP_cropMode

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_cropMode
protected

Property used to toggle crop mode on and off.

Definition at line 715 of file stdCamera.hpp.

◆ m_indiP_emGain

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_emGain
protected

Definition at line 536 of file stdCamera.hpp.

◆ m_indiP_exptime

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_exptime
protected

Definition at line 557 of file stdCamera.hpp.

◆ m_indiP_fanSpeed

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_fanSpeed
protected

Property used to select the fan-speed mode.

Definition at line 572 of file stdCamera.hpp.

◆ m_indiP_focus

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_focus
protected

Read-only switch property reporting whether the current state is in focus.

Definition at line 775 of file stdCamera.hpp.

◆ m_indiP_focusMonitoredProperties

template<class derivedT >
std::vector<pcf::IndiProperty> MagAOX::app::dev::stdCamera< derivedT >::m_indiP_focusMonitoredProperties
protected

Cached external switch properties monitored for the focus helpers.

Definition at line 773 of file stdCamera.hpp.

◆ m_indiP_fps

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_fps
protected

Definition at line 559 of file stdCamera.hpp.

◆ m_indiP_fullROI

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_fullROI
protected

Property used to preset the full ROI dimensions.

Definition at line 694 of file stdCamera.hpp.

◆ m_indiP_gotoFocus

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_gotoFocus
protected

Request switch property used to command the current focus target.

Definition at line 777 of file stdCamera.hpp.

◆ m_indiP_led

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_led
protected

Property used to control the status LED state.

Definition at line 596 of file stdCamera.hpp.

◆ m_indiP_mode

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_mode
protected

Property used to report the current mode.

Definition at line 619 of file stdCamera.hpp.

◆ m_indiP_readoutSpeed

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_readoutSpeed
protected

Definition at line 533 of file stdCamera.hpp.

◆ m_indiP_reconfig

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_reconfig
protected

Request switch which forces the framegrabber to go through the reconfigure process.

Definition at line 622 of file stdCamera.hpp.

◆ m_indiP_roi_bin_x

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_bin_x
protected

Property used to set the ROI x binning.

Definition at line 691 of file stdCamera.hpp.

◆ m_indiP_roi_bin_y

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_bin_y
protected

Property used to set the ROI y binning.

Definition at line 692 of file stdCamera.hpp.

◆ m_indiP_roi_check

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_check
protected

Property used to trigger checking the target ROI.

Definition at line 696 of file stdCamera.hpp.

◆ m_indiP_roi_default

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_default
protected

Property used to trigger setting the default and startup ROI.

Definition at line 704 of file stdCamera.hpp.

◆ m_indiP_roi_full

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_full
protected

Property used to trigger setting the full ROI.

Definition at line 700 of file stdCamera.hpp.

◆ m_indiP_roi_fullbin

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_fullbin
protected

Property used to trigger setting the full in current binning ROI.

Definition at line 701 of file stdCamera.hpp.

◆ m_indiP_roi_h

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_h
protected

Property used to set the ROI height.

Definition at line 690 of file stdCamera.hpp.

◆ m_indiP_roi_last

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_last
protected

Property used to trigger setting the last ROI.

Definition at line 703 of file stdCamera.hpp.

◆ m_indiP_roi_loadlast

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_loadlast
protected

Property used to trigger loading the last ROI as the target.

Definition at line 702 of file stdCamera.hpp.

◆ m_indiP_roi_set

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_set
protected

Property used to trigger setting the ROI.

Definition at line 698 of file stdCamera.hpp.

◆ m_indiP_roi_w

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_w
protected

Property used to set the ROI width.

Definition at line 689 of file stdCamera.hpp.

◆ m_indiP_roi_x

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_x
protected

Property used to set the ROI x center coordinate.

Definition at line 687 of file stdCamera.hpp.

◆ m_indiP_roi_y

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_roi_y
protected

Property used to set the ROI x center coordinate.

Definition at line 688 of file stdCamera.hpp.

◆ m_indiP_shutter

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_shutter
protected

Property used to control the shutter, a switch.

Definition at line 726 of file stdCamera.hpp.

◆ m_indiP_shutterStatus

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_shutterStatus
protected

State of the shutter. 0 = shut, 1 = open, -1 = unknown.

Property to report shutter status

Definition at line 725 of file stdCamera.hpp.

◆ m_indiP_stateString

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_stateString
protected

Definition at line 785 of file stdCamera.hpp.

◆ m_indiP_synchro

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_synchro
protected

Definition at line 607 of file stdCamera.hpp.

◆ m_indiP_temp

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_temp
protected

Definition at line 504 of file stdCamera.hpp.

◆ m_indiP_tempcont

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_tempcont
protected

Definition at line 505 of file stdCamera.hpp.

◆ m_indiP_tempstat

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_tempstat
protected

Definition at line 506 of file stdCamera.hpp.

◆ m_indiP_vShiftSpeed

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::stdCamera< derivedT >::m_indiP_vShiftSpeed
protected

Definition at line 534 of file stdCamera.hpp.

◆ m_lastROI

template<class derivedT >
roi MagAOX::app::dev::stdCamera< derivedT >::m_lastROI
protected

Definition at line 642 of file stdCamera.hpp.

◆ m_ledState

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_ledState { false }
protected

Current status LED state.

Definition at line 592 of file stdCamera.hpp.

◆ m_ledStateSet

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_ledStateSet { false }
protected

Requested status LED state.

Definition at line 593 of file stdCamera.hpp.

◆ m_ledStateValid

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_ledStateValid { false }
protected

True once the current LED state is known.

Definition at line 594 of file stdCamera.hpp.

◆ m_maxEMGain

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_maxEMGain { 1 }
protected

The configurable maximum EM gain. To be enforced in derivedT.

Definition at line 531 of file stdCamera.hpp.

◆ m_maxExpTime

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_maxExpTime { std::numeric_limits<float>::max() }
protected

The maximum exposure time, used for INDI attributes.

Definition at line 544 of file stdCamera.hpp.

◆ m_maxFPS

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_maxFPS { std::numeric_limits<float>::max() }
protected

The maximum FPS, used for INDI attributes.

Definition at line 551 of file stdCamera.hpp.

◆ m_maxROIBinning_x

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_maxROIBinning_x { 4 }
protected

Definition at line 661 of file stdCamera.hpp.

◆ m_maxROIBinning_y

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_maxROIBinning_y { 4 }
protected

Definition at line 665 of file stdCamera.hpp.

◆ m_maxROIHeight

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_maxROIHeight { 1024 }
protected

Definition at line 657 of file stdCamera.hpp.

◆ m_maxROIWidth

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_maxROIWidth { 1024 }
protected

Definition at line 653 of file stdCamera.hpp.

◆ m_maxROIx

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_maxROIx { 1023 }
protected

Definition at line 645 of file stdCamera.hpp.

◆ m_maxROIy

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_maxROIy { 1023 }
protected

Definition at line 649 of file stdCamera.hpp.

◆ m_maxTemp

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_maxTemp { 30 }
protected

Definition at line 490 of file stdCamera.hpp.

◆ m_minExpTime

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_minExpTime { 0 }
protected

The minimum exposure time, used for INDI attributes.

Definition at line 543 of file stdCamera.hpp.

◆ m_minFPS

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_minFPS { 0 }
protected

The minimum FPS, used for INDI attributes.

Definition at line 550 of file stdCamera.hpp.

◆ m_minROIBinning_x

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_minROIBinning_x { 1 }
protected

Definition at line 660 of file stdCamera.hpp.

◆ m_minROIBinning_y

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_minROIBinning_y { 1 }
protected

Definition at line 664 of file stdCamera.hpp.

◆ m_minROIHeight

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_minROIHeight { 1 }
protected

Definition at line 656 of file stdCamera.hpp.

◆ m_minROIWidth

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_minROIWidth { 1 }
protected

Definition at line 652 of file stdCamera.hpp.

◆ m_minROIx

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_minROIx { 0 }
protected

Definition at line 644 of file stdCamera.hpp.

◆ m_minROIy

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_minROIy { 0 }
protected

Definition at line 648 of file stdCamera.hpp.

◆ m_minTemp

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_minTemp { -60 }
protected

Definition at line 489 of file stdCamera.hpp.

◆ m_modeName

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_modeName
protected

The current mode name.

Definition at line 615 of file stdCamera.hpp.

◆ m_nextMode

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_nextMode
protected

The mode to be set by the next reconfiguration.

Definition at line 617 of file stdCamera.hpp.

◆ m_nextROI

template<class derivedT >
roi MagAOX::app::dev::stdCamera< derivedT >::m_nextROI
protected

Definition at line 641 of file stdCamera.hpp.

◆ m_readoutSpeedName

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_readoutSpeedName
protected

The current readout speed name.

Definition at line 517 of file stdCamera.hpp.

◆ m_readoutSpeedNameLabels

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_readoutSpeedNameLabels
protected

Definition at line 515 of file stdCamera.hpp.

◆ m_readoutSpeedNames

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_readoutSpeedNames
protected

Definition at line 514 of file stdCamera.hpp.

◆ m_readoutSpeedNameSet

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_readoutSpeedNameSet
protected

The user requested readout speed name, to be set by derived()

Definition at line 518 of file stdCamera.hpp.

◆ m_shutterState

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_shutterState { -1 }
protected

Definition at line 723 of file stdCamera.hpp.

◆ m_shutterStatus

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_shutterStatus { "UNKNOWN" }
protected

Definition at line 722 of file stdCamera.hpp.

◆ m_startupMode

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_startupMode
protected

The camera mode to load during first init after a power-on.

Definition at line 473 of file stdCamera.hpp.

◆ m_startupTemp

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_startupTemp { -999 }
protected

The temperature to set after a power-on. Set to <= -999 to not use [default].

Definition at line 475 of file stdCamera.hpp.

◆ m_stepExpTime

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_stepExpTime { 0 }
protected

The maximum exposure time stepsize, used for INDI attributes.

Definition at line 545 of file stdCamera.hpp.

◆ m_stepFPS

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_stepFPS { 0 }
protected

The FPS step size, used for INDI attributes.

Definition at line 552 of file stdCamera.hpp.

◆ m_stepROIBinning_x

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_stepROIBinning_x { 1 }
protected

Definition at line 662 of file stdCamera.hpp.

◆ m_stepROIBinning_y

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_stepROIBinning_y { 1 }
protected

Definition at line 666 of file stdCamera.hpp.

◆ m_stepROIHeight

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_stepROIHeight { 1 }
protected

Definition at line 658 of file stdCamera.hpp.

◆ m_stepROIWidth

template<class derivedT >
int MagAOX::app::dev::stdCamera< derivedT >::m_stepROIWidth { 1 }
protected

Definition at line 654 of file stdCamera.hpp.

◆ m_stepROIx

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_stepROIx { 0 }
protected

Definition at line 646 of file stdCamera.hpp.

◆ m_stepROIy

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_stepROIy { 0 }
protected

Definition at line 650 of file stdCamera.hpp.

◆ m_stepTemp

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_stepTemp { 0 }
protected

Definition at line 491 of file stdCamera.hpp.

◆ m_synchro

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_synchro { false }
protected

Status of synchronization, true is on, false is off.

Definition at line 605 of file stdCamera.hpp.

◆ m_synchroSet

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_synchroSet { false }
protected

Target status of m_synchro.

Definition at line 603 of file stdCamera.hpp.

◆ m_tempControlOnTarget

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_tempControlOnTarget { false }
protected

Whether or not the temperature control system is on its target temperature.

Definition at line 500 of file stdCamera.hpp.

◆ m_tempControlStatus

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_tempControlStatus { false }
protected

Whether or not temperature control is active.

Definition at line 497 of file stdCamera.hpp.

◆ m_tempControlStatusSet

template<class derivedT >
bool MagAOX::app::dev::stdCamera< derivedT >::m_tempControlStatusSet { false }
protected

Desired state of temperature control.

Definition at line 498 of file stdCamera.hpp.

◆ m_tempControlStatusStr

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_tempControlStatusStr
protected

Camera specific description of temperature control status.

Definition at line 502 of file stdCamera.hpp.

◆ m_vshiftSpeed

template<class derivedT >
float MagAOX::app::dev::stdCamera< derivedT >::m_vshiftSpeed { 0 }
protected

Definition at line 527 of file stdCamera.hpp.

◆ m_vShiftSpeedName

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_vShiftSpeedName
protected

The current vshift speed name.

Definition at line 523 of file stdCamera.hpp.

◆ m_vShiftSpeedNameLabels

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_vShiftSpeedNameLabels
protected

Definition at line 521 of file stdCamera.hpp.

◆ m_vShiftSpeedNames

template<class derivedT >
std::vector<std::string> MagAOX::app::dev::stdCamera< derivedT >::m_vShiftSpeedNames
protected

Definition at line 520 of file stdCamera.hpp.

◆ m_vShiftSpeedNameSet

template<class derivedT >
std::string MagAOX::app::dev::stdCamera< derivedT >::m_vShiftSpeedNameSet
protected

The user requested vshift speed name, to be set by derived()

Definition at line 524 of file stdCamera.hpp.


The documentation for this class was generated from the following file: