API
MagAOX::app::baslerCtrl Class Reference

#include <baslerCtrl.hpp>

Inheritance diagram for MagAOX::app::baslerCtrl:
Inheritance graph
Collaboration diagram for MagAOX::app::baslerCtrl:
Collaboration graph

Public Types

typedef logger::logManager< MagAOXApp< _useINDI >, logFileRawlogManagerT
 The log manager type. More...
 
enum  fgFlip
 
typedef logger::logManager< baslerCtrl, logFileRaw > logManagerT
 The log manager type. More...
 

Public Member Functions

 baslerCtrl ()
 Default c'tor. More...
 
 ~baslerCtrl () noexcept
 Destructor. More...
 
virtual void setupConfig ()
 Setup the configuration system (called by MagAOXApp::setup()) More...
 
virtual void loadConfig ()
 load the configuration system results (called by MagAOXApp::setup()) More...
 
virtual int appStartup ()
 Startup functions. More...
 
virtual int appLogic ()
 Implementation of the FSM for the Siglent SDG. More...
 
virtual int appShutdown ()
 Do any needed shutdown tasks. Currently nothing in this app. More...
 
int connect ()
 
int configureAcquisition ()
 
int startAcquisition ()
 
int acquireAndCheckValid ()
 
int loadImageIntoStream (void *dest)
 
int reconfig ()
 
int shutdown ()
 Get the value of the shutdown flag. More...
 
virtual void setDefaults (int argc, char **argv)
 Set the paths for config files. More...
 
virtual void setupBasicConfig ()
 The basic MagAO-X configuration setup method. Should not normally be overridden. More...
 
virtual void loadBasicConfig ()
 The basic MagAO-X configuration processing method. Should not normally be overridden. More...
 
virtual void checkConfig ()
 Check for unused and unrecognized config options and settings. More...
 
virtual int execute ()
 The execute method implementing the standard main loop. Should not normally be overridden. More...
 
void setupConfig (mx::app::appConfigurator &config)
 Setup the configuration system. More...
 
void loadConfig (mx::app::appConfigurator &config)
 load the configuration system results More...
 
int onPowerOff ()
 Actions on power off. More...
 
int whilePowerOff ()
 Actions while powered off. More...
 
void setupConfig (mx::app::appConfigurator &config)
 Setup the configuration system. More...
 
void loadConfig (mx::app::appConfigurator &config)
 load the configuration system results More...
 
int onPowerOff ()
 On power off, sets m_reconfig to true. More...
 
int telem (const typename telT::messageT &msg)
 Make a telemetry recording. More...
 
int telem ()
 Make a telemetry recording, for an empty record. More...
 
int setupConfig (appConfigurator &config)
 Setup an application configurator for the device section. More...
 
int loadConfig (appConfigurator &config)
 Load the device section from an application configurator. More...
 
int checkRecordTimes (const telT &tel, telTs... tels)
 Check the time of the last record for each telemetry type and make an entry if needed. More...
 
int checkRecordTimes (timespec &ts, const telT &tel, telTs... tels)
 Worker function to actually perform the record time checking logic. More...
 
int checkRecordTimes (timespec &ts)
 Empty function called at the end of the template list. More...
 
Threads
template<class thisPtr , class Function >
int threadStart (std::thread &thrd, bool &thrdInit, pid_t &tpid, pcf::IndiProperty &thProp, int thrdPrio, const std::string &cpuset, const std::string &thrdName, thisPtr *thrdThis, Function &&thrdStart)
 Start a thread, using this class's privileges to set priority, etc. More...
 
Member Accessors
std::string configName ()
 Get the config name. More...
 
std::string configDir ()
 Get the config directory. More...
 
std::string driverInName ()
 Get the INDI input FIFO file name. More...
 
std::string driverOutName ()
 Get the INDI output FIFO file name. More...
 
std::string driverCtrlName ()
 Get the INDI control FIFO file name. More...
 
Telemeter Interface
int recordCamera (bool force=false)
 
Telemeter Interface
int recordFGTimings (bool force=false)
 

Public Attributes

logManagerT m_tel
 
double m_maxInterval
 The maximum interval, in seconds, between telemetry records. Default is 10.0 seconds. More...
 

Static Public Attributes

app::dev Configurations
static constexpr bool c_stdCamera_tempControl = false
 app::dev config to tell stdCamera to not expose temperature controls More...
 
static constexpr bool c_stdCamera_temp = true
 app::dev config to tell stdCamera to expose temperature More...
 
static constexpr bool c_stdCamera_readoutSpeed = false
 app::dev config to tell stdCamera not to expose readout speed controls More...
 
static constexpr bool c_stdCamera_vShiftSpeed = false
 app:dev config to tell stdCamera not to expose vertical shift speed control More...
 
static constexpr bool c_stdCamera_emGain = false
 app::dev config to tell stdCamera to not expose EM gain controls More...
 
static constexpr bool c_stdCamera_exptimeCtrl = true
 app::dev config to tell stdCamera to expose exposure time controls More...
 
static constexpr bool c_stdCamera_fpsCtrl = true
 app::dev config to tell stdCamera to expose FPS controls More...
 
static constexpr bool c_stdCamera_fps = true
 app::dev config to tell stdCamera not to expose FPS status (ignored since fpsCtrl=true) More...
 
static constexpr bool c_stdCamera_synchro = false
 app::dev config to tell stdCamera to not expose synchro mode controls More...
 
static constexpr bool c_stdCamera_usesModes = false
 app:dev config to tell stdCamera not to expose mode controls More...
 
static constexpr bool c_stdCamera_usesROI = true
 app:dev config to tell stdCamera to expose ROI controls More...
 
static constexpr bool c_stdCamera_cropMode = false
 app:dev config to tell stdCamera not to expose Crop Mode controls More...
 
static constexpr bool c_stdCamera_hasShutter = false
 app:dev config to tell stdCamera to expose shutter controls More...
 
static constexpr bool c_stdCamera_usesStateString = false
 app::dev confg to tell stdCamera to expose the state string property More...
 
static constexpr bool c_frameGrabber_flippable = true
 app:dev config to tell framegrabber that this camera can be flipped More...
 

Protected Types

typedef uint16_t cbIndexT
 

Protected Member Functions

int getTemp ()
 Get the current detector temperature. More...
 
int getExpTime ()
 Get the current exposure time. More...
 
int getFPS ()
 Get the current framerate. More...
 
float fps ()
 
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)
 
void * loadImageIntoStreamCopy (void *dest, void *src, size_t width, size_t height, size_t szof)
 
stdCamera Interface
int powerOnDefaults ()
 Set defaults for a power on state. More...
 
int setFPS ()
 Set the framerate. More...
 
int setExpTime ()
 Set the Exposure Time. [stdCamera interface]. More...
 
int checkNextROI ()
 Check the next ROI. More...
 
int setNextROI ()
 Set the next ROI. More...
 
Telemeter Interface
int checkRecordTimes ()
 
int recordTelem (const telem_stdcam *)
 

Protected Attributes

CBaslerUsbInstantCamera * m_camera {nullptr}
 The library camera handle. More...
 
CGrabResultPtr ptrGrabResult
 The result of an attempt to grab an image. More...
 
std::string MagAOXPath
 The base path of the MagAO-X system. More...
 
std::string m_configName
 The name of the configuration file (minus .conf). More...
 
std::string m_configDir
 The path to configuration files for MagAOX. More...
 
std::string m_configBase
 The name of a base config class for this app (minus .conf). More...
 
std::string m_calibDir
 The path to calibration files for MagAOX. More...
 
std::string sysPath
 The path to the system directory, for PID file, etc. More...
 
std::string secretsPath
 Path to the secrets directory, where passwords, etc, are stored. More...
 
unsigned long m_loopPause {MAGAOX_default_loopPause}
 The time in nanoseconds to pause the main loop. The appLogic() function of the derived class is called every m_loopPause nanoseconds. Default is 1,000,000,000 ns. Config with loopPause=X. More...
 
int m_shutdown {0}
 Flag to signal it's time to shutdown. When not 0, the main loop exits. More...
 
int m_currentFlip
 
uint32_t m_width
 The width of the image, once deinterlaced etc. More...
 
uint32_t m_height
 The height of the image, once deinterlaced etc. More...
 
uint8_t m_dataType
 The ImageStreamIO type code. More...
 
size_t m_typeSize
 The size of the type, in bytes. Result of sizeof. More...
 
int m_xbinning
 The x-binning according to the framegrabber. More...
 
int m_ybinning
 The y-binning according to the framegrabber. More...
 
timespec m_currImageTimestamp
 The timestamp of the current image. More...
 
bool m_reconfig
 Flag to set if a camera reconfiguration requires a framegrabber reset. More...
 
IMAGE * m_imageStream
 The ImageStreamIO shared memory buffer. More...
 
mx::sigproc::circularBufferIndex< timespec, cbIndexTm_atimes
 
mx::sigproc::circularBufferIndex< timespec, cbIndexTm_wtimes
 
std::vector< double > m_atimesD
 
std::vector< double > m_wtimesD
 
std::vector< double > m_watimesD
 
timespec m_dummy_ts
 
uint64_t m_dummy_cnt
 
char m_dummy_c
 
double m_mna
 
double m_vara
 
double m_mnw
 
double m_varw
 
double m_mnwa
 
double m_varwa
 
configurable parameters
std::string m_serialNumber
 The camera's identifying serial number. More...
 
int m_bits {10}
 The number of bits used by the camera. More...
 
binning allowed values
std::vector< int > m_binXs
 The allowed values of binning in X (horizontal) More...
 
std::vector< int > m_binYs
 The allowed values of binning in Y (vertical) More...
 
std::vector< int > m_incXs
 The allowed increment in X for each X-binning. More...
 
std::vector< int > m_minWs
 The minimum value of the width for each X-binning. More...
 
std::vector< int > m_incWs
 The minimum value of the width for each X-binning. More...
 
std::vector< int > m_maxWs
 The minimum value of the width for each X-binning. More...
 
std::vector< int > m_incYs
 The allowed increment in Y for each Y-binning. More...
 
std::vector< int > m_minHs
 The minimum value of the height for each Y-binning. More...
 
std::vector< int > m_incHs
 The minimum value of the height for each Y-binning. More...
 
std::vector< int > m_maxHs
 The minimum value of the height for each Y-binning. More...
 
cpusets

The path to the cpusets mount is configured by the environment varialbe defined by MAGOX_env_cpuset in environment.hpp. This environment varialbe is normally named "CGROUPS1_CPUSET_MOUNTPOINT". If the environment variable is not set, the default defined by MAGAOX_cpusetPath in paths.hpp is used. This is normally "/opt/MagAOX/cpuset/"

std::string m_cpusetPath {MAGAOX_cpusetPath}
 
Configurable Parameters
cameraConfigMap m_cameraModes
 Map holding the possible camera mode configurations. More...
 
std::string m_startupMode
 The camera mode to load during first init after a power-on. More...
 
float m_startupTemp
 The temperature to set after a power-on. Set to <= -999 to not use [default]. More...
 
std::string m_defaultReadoutSpeed
 The default readout speed of the camera. More...
 
std::string m_defaultVShiftSpeed
 The default readout speed of the camera. More...
 
Temperature Control Interface
float m_minTemp
 
float m_maxTemp
 
float m_stepTemp
 
float m_ccdTemp
 The current temperature, in C. More...
 
float m_ccdTempSetpt
 The desired temperature, in C. More...
 
bool m_tempControlStatus
 Whether or not temperature control is active. More...
 
bool m_tempControlStatusSet
 Desired state of temperature control. More...
 
bool m_tempControlOnTarget
 Whether or not the temperature control system is on its target temperature. More...
 
std::string m_tempControlStatusStr
 Camera specific description of temperature control status. More...
 
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. More...
 
std::string m_readoutSpeedNameSet
 The user requested readout speed name, to be set by derived() More...
 
std::vector< std::string > m_vShiftSpeedNames
 
std::vector< std::string > m_vShiftSpeedNameLabels
 
std::string m_vShiftSpeedName
 The current vshift speed name. More...
 
std::string m_vShiftSpeedNameSet
 The user requested vshift speed name, to be set by derived() More...
 
float m_adcSpeed
 
float m_vshiftSpeed
 
float m_emGain
 The camera's current EM gain (if available). More...
 
float m_emGainSet
 The camera's EM gain, as set by the user. More...
 
float m_maxEMGain
 The configurable maximum EM gain. To be enforced in derivedT. More...
 
pcf::IndiProperty m_indiP_readoutSpeed
 
pcf::IndiProperty m_indiP_vShiftSpeed
 
pcf::IndiProperty m_indiP_emGain
 
Exposure Control
float m_minExpTime
 The minimum exposure time, used for INDI attributes. More...
 
float m_maxExpTime
 The maximum exposure time, used for INDI attributes. More...
 
float m_stepExpTime
 The maximum exposure time stepsize, used for INDI attributes. More...
 
float m_expTime
 The current exposure time, in seconds. More...
 
float m_expTimeSet
 The exposure time, in seconds, as set by user. More...
 
float m_minFPS
 The minimum FPS, used for INDI attributes. More...
 
float m_maxFPS
 The maximum FPS, used for INDI attributes. More...
 
float m_stepFPS
 The FPS step size, used for INDI attributes. More...
 
float m_fps
 The current FPS. More...
 
float m_fpsSet
 The commanded fps, as set by user. More...
 
pcf::IndiProperty m_indiP_exptime
 
pcf::IndiProperty m_indiP_fps
 
External Synchronization
bool m_synchroSet
 Target status of m_synchro. More...
 
bool m_synchro
 Status of synchronization, true is on, false is off. More...
 
pcf::IndiProperty m_indiP_synchro
 
Modes
std::string m_modeName
 The current mode name. More...
 
std::string m_nextMode
 The mode to be set by the next reconfiguration. More...
 
pcf::IndiProperty m_indiP_mode
 Property used to report the current mode. More...
 
pcf::IndiProperty m_indiP_reconfig
 Request switch which forces the framegrabber to go through the reconfigure process. More...
 
ROIs

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

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

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

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

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

std::string m_shutterStatus
 
int m_shutterState
 
pcf::IndiProperty m_indiP_shutterStatus
 State of the shutter. 0 = shut, 1 = open, -1 = unknown. More...
 
pcf::IndiProperty m_indiP_shutter
 Property used to control the shutter, a switch. More...
 
State String

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

pcf::IndiProperty m_indiP_stateString
 
Configurable Parameters
std::string m_shmimName
 The name of the shared memory image, is used in /tmp/<shmimName>.im.shm. Derived classes should set a default. More...
 
int m_fgThreadPrio
 Priority of the framegrabber thread, should normally be > 00. More...
 
std::string m_fgCpuset
 The cpuset to assign the framegrabber thread to. Not used if empty, the default. More...
 
uint32_t m_circBuffLength
 Length of the circular buffer, in frames. More...
 
uint16_t m_latencyCircBuffMaxLength
 Maximum length of the latency measurement circular buffers. More...
 
float m_latencyCircBuffMaxTime
 Maximum time of the latency meaurement circular buffers. More...
 
int m_defaultFlip
 

Private Member Functions

int clearFSMAlert ()
 Clear the FSM alert state. More...
 
baslerCtrlderived ()
 

Friends

class dev::stdCamera< baslerCtrl >
 
class dev::frameGrabber< baslerCtrl >
 
class dev::telemeter< baslerCtrl >
 

Logging

static logManagerT m_log
 
void logMessage (bufferPtrT &b)
 Handle a log message from the logging system. More...
 
template<typename logT , int retval = 0>
static int log (const typename logT::messageT &msg, logPrioT level=logPrio::LOG_DEFAULT)
 Make a log entry. More...
 
template<typename logT , int retval = 0>
static int log (logPrioT level=logPrio::LOG_DEFAULT)
 Make a log entry. More...
 
static void configLog (const std::string &name, const int &code, const std::string &value, const std::string &source)
 Callback for config system logging. More...
 

PID Locking

Each MagAOXApp has a PID lock file in the system directory. The app will not startup if it detects that the PID is already locked, preventing duplicates. This is based on the configured name, not the invoked name (argv[0]).

std::string pidFileName
 The name of the PID file. More...
 
pid_t m_pid {0}
 This process's PID. More...
 
int lockPID ()
 Attempt to lock the PID by writing it to a file. Fails if a process is already running with the same config name. More...
 
int unlockPID ()
 Remove the PID file. More...
 

INDI Interface

For reference: "Get" and "New" refer to properties we own. "Set" refers to properties owned by others. So we respond to GetProperties by listing our own properties, and NewProperty is a request to change a property we own. Whereas SetProperty is a notification that someone else has changed a property.

std::unordered_map< std::string, indiCallBackm_indiNewCallBacks
 Map to hold the NewProperty indiCallBacks for this App, with fast lookup by property name. More...
 
std::unordered_map< std::string, indiCallBackm_indiSetCallBacks
 Map to hold the SetProperty indiCallBacks for this App, with fast lookup by property name. More...
 
bool m_allDefsReceived {false}
 Flag indicating that all registered Set properties have been updated since last Get. More...
 
std::string m_driverInName
 Full path name of the INDI driver input FIFO. More...
 
std::string m_driverOutName
 Full path name of the INDI driver output FIFO. More...
 
std::string m_driverCtrlName
 Full path name of the INDI driver control FIFO. More...
 
pcf::IndiProperty m_indiP_state
 indi Property to report the application state. More...
 
pcf::IndiProperty m_indiP_clearFSMAlert
 indi Property to clear an FSM alert. More...
 
int createStandardIndiText (pcf::IndiProperty &prop, const std::string &propName, const std::string &label="", const std::string &group="")
 Create a standard R/W INDI Text property with target and current elements. More...
 
int createROIndiText (pcf::IndiProperty &prop, const std::string &propName, const std::string &elName, const std::string &propLabel="", const std::string &propGroup="", const std::string &elLabel="")
 Create a standard ReadOnly INDI Text property, with at least one element. More...
 
template<typename T >
int createStandardIndiNumber (pcf::IndiProperty &prop, const std::string &name, const T &min, const T &max, const T &step, const std::string &format, const std::string &label="", const std::string &group="")
 Create a standard R/W INDI Number property with target and current elements. More...
 
int createROIndiNumber (pcf::IndiProperty &prop, const std::string &propName, const std::string &propLabel="", const std::string &propGroup="")
 Create a ReadOnly INDI Number property. More...
 
int createStandardIndiToggleSw (pcf::IndiProperty &prop, const std::string &name, const std::string &label="", const std::string &group="")
 Create a standard R/W INDI switch with a single toggle element. More...
 
int createStandardIndiRequestSw (pcf::IndiProperty &prop, const std::string &name, const std::string &label="", const std::string &group="")
 Create a standard R/W INDI switch with a single request element. More...
 
int createStandardIndiSelectionSw (pcf::IndiProperty &prop, const std::string &name, const std::vector< std::string > &elements, const std::vector< std::string > &elementLabels, const std::string &label="", const std::string &group="")
 Create a standard R/W INDI selection (one of many) switch with vector of elements and element labels. More...
 
int createStandardIndiSelectionSw (pcf::IndiProperty &prop, const std::string &name, const std::vector< std::string > &elements, const std::string &label="", const std::string &group="")
 Create a standard R/W INDI selection (one of many) switch with vector of elements using the element strings as their own labels. More...
 
int registerIndiPropertyReadOnly (pcf::IndiProperty &prop)
 Register an INDI property which is read only. More...
 
int registerIndiPropertyReadOnly (pcf::IndiProperty &prop, const std::string &propName, const pcf::IndiProperty::Type &propType, const pcf::IndiProperty::PropertyPermType &propPerm, const pcf::IndiProperty::PropertyStateType &propState)
 Register an INDI property which is read only. More...
 
int registerIndiPropertyNew (pcf::IndiProperty &prop, int(*)(void *, const pcf::IndiProperty &))
 Register an INDI property which is exposed for others to request a New Property for. More...
 
int registerIndiPropertyNew (pcf::IndiProperty &prop, const std::string &propName, const pcf::IndiProperty::Type &propType, const pcf::IndiProperty::PropertyPermType &propPerm, const pcf::IndiProperty::PropertyStateType &propState, int(*)(void *, const pcf::IndiProperty &))
 Register an INDI property which is exposed for others to request a New Property for. More...
 
int registerIndiPropertyNew (pcf::IndiProperty &prop, const std::string &propName, const pcf::IndiProperty::Type &propType, const pcf::IndiProperty::PropertyPermType &propPerm, const pcf::IndiProperty::PropertyStateType &propState, const pcf::IndiProperty::SwitchRuleType &propRule, int(*)(void *, const pcf::IndiProperty &))
 Register an INDI property which is exposed for others to request a New Property for, with a switch rule. More...
 
int registerIndiPropertySet (pcf::IndiProperty &prop, const std::string &devName, const std::string &propName, int(*)(void *, const pcf::IndiProperty &))
 Register an INDI property which is monitored for updates from others. More...
 
void sendGetPropertySetList (bool all=false)
 
void handleDefProperty (const pcf::IndiProperty &ipRecv)
 Handler for the DEF INDI properties notification. More...
 
void handleGetProperties (const pcf::IndiProperty &ipRecv)
 Handler for the get INDI properties request. More...
 
void handleNewProperty (const pcf::IndiProperty &ipRecv)
 Handler for the new INDI property request. More...
 
void handleSetProperty (const pcf::IndiProperty &ipRecv)
 Handler for the set INDI property request. More...
 
int createINDIFIFOS ()
 Create the INDI FIFOs. More...
 
int startINDI ()
 Start INDI Communications. More...
 
template<typename T >
void updateIfChanged (pcf::IndiProperty &p, const std::string &el, const T &newVal, pcf::IndiProperty::PropertyStateType ipState=pcf::IndiProperty::Ok)
 Update an INDI property element value if it has changed. More...
 
void updateIfChanged (pcf::IndiProperty &p, const std::string &el, const char *newVal, pcf::IndiProperty::PropertyStateType ipState=pcf::IndiProperty::Ok)
 Update an INDI property element value if it has changed. More...
 
template<typename T >
void updateIfChanged (pcf::IndiProperty &p, const std::string &el, const std::vector< T > &newVals, pcf::IndiProperty::PropertyStateType ipState=pcf::IndiProperty::Ok)
 Update an INDI property if values have changed. More...
 
template<typename T >
void updateIfChanged (pcf::IndiProperty &p, const std::vector< std::string > &els, const std::vector< T > &newVals)
 Update an INDI property if values have changed. More...
 
void updateSwitchIfChanged (pcf::IndiProperty &p, const std::string &el, const pcf::IndiElement::SwitchStateType &newVal, pcf::IndiProperty::PropertyStateType ipState=pcf::IndiProperty::Ok)
 Update an INDI switch element value if it has changed. More...
 
template<typename T >
int indiTargetUpdate (pcf::IndiProperty &localProperty, T &localTarget, const pcf::IndiProperty &remoteProperty, bool setBusy=true)
 Get the target element value from an new property. More...
 
template<typename T >
int sendNewProperty (const pcf::IndiProperty &ipSend, const std::string &el, const T &newVal)
 Send a newProperty command to another device (using the INDI Client interface) More...
 
int sendNewProperty (const pcf::IndiProperty &ipSend)
 Send a newProperty command to another device (using the INDI Client interface) More...
 
int sendNewStandardIndiToggle (const std::string &device, const std::string &property, bool onoff)
 Send a new property commmand for a standard toggle switch. More...
 
int newCallBack_clearFSMAlert (const pcf::IndiProperty &ipRecv)
 The callback called by the static version, to actually process the FSM Alert Clear request. More...
 
typedef std::pair< std::string, indiCallBackcallBackValueType
 Value type of the indiCallBack map. More...
 
typedef std::unordered_map< std::string, indiCallBack >::iterator callBackIterator
 Iterator type of the indiCallBack map. More...
 
typedef std::pair< callBackIterator, bool > callBackInsertResult
 Return type of insert on the indiCallBack map. More...
 
constexpr static bool m_useINDI = _useINDI
 Flag controlling whether INDI is used. If false, then no INDI code executes. More...
 
indiDriver< MagAOXApp > * m_indiDriver {nullptr}
 The INDI driver wrapper. Constructed and initialized by execute, which starts and stops communications. More...
 
std::mutex m_indiMutex
 Mutex for locking INDI communications. More...
 
static int st_newCallBack_clearFSMAlert (void *app, const pcf::IndiProperty &ipRecv)
 The static callback function to be registered for requesting to clear the FSM alert. More...
 

Power Management

For devices which have remote power management (e.g. from one of the PDUs) we implement a standard power state monitoring and management component for the FSM. This needs to be enabled in the derived app constructor. To stay enabled, m_powerDevice and m_powerChannel must be not empty strings after the configuration. These could be set in the derived app defaults.

If power management is enabled, then while power is off, appLogic will not be called. Instead a parrallel set of virtual functions is called, onPowerOff (to allow apps to perform cleanup) and whilePowerOff (to allow apps to keep variables updated, etc). Note that these could merely call appLogic if desired.

bool m_powerMgtEnabled {false}
 Flag controls whether power mgt is used. Set this in the constructor of a derived app. If true, then if after loadConfig the powerDevice and powerChannel are empty, then the app will exit with a critical error. More...
 
std::string m_powerDevice
 The INDI device name of the power controller. More...
 
std::string m_powerChannel
 The INDI property name of the channel controlling this device's power. More...
 
std::string m_powerElement {"state"}
 The INDI element name to monitor for this device's power state. More...
 
std::string m_powerTargetElement {"target"}
 The INDI element name to monitor for this device's power state. More...
 
unsigned long m_powerOnWait {0}
 Time in sec to wait for device to boot after power on. More...
 
int m_powerOnCounter {-1}
 Counts numer of loops after power on, implements delay for device bootup. If -1, then device was NOT powered off on app startup. More...
 
int m_powerState {-1}
 Current power state, 1=On, 0=Off, -1=Unk. More...
 
int m_powerTargetState {-1}
 Current target power state, 1=On, 0=Off, -1=Unk. More...
 
pcf::IndiProperty m_indiP_powerChannel
 INDI property used to communicate power state. More...
 
int powerState ()
 Returns the current power state. More...
 
int powerStateTarget ()
 Returns the target power state. More...
 
 INDI_SETCALLBACK_DECL (MagAOXApp, m_indiP_powerChannel)
 
virtual int onPowerOff ()
 This method is called when the change to poweroff is detected. More...
 
virtual int whilePowerOff ()
 This method is called while the power is off, once per FSM loop. More...
 
bool powerOnWaitElapsed ()
 This method tests whether the power on wait time has elapsed. More...
 

Framegrabber Thread

This thread actually manages the framegrabbing hardware

bool m_fgThreadInit
 Synchronizer for thread startup, to allow priority setting to finish. More...
 
pid_t m_fgThreadID
 The ID of the framegrabber thread. More...
 
pcf::IndiProperty m_fgThreadProp
 The property to hold the f.g. thread details. More...
 
std::thread m_fgThread
 A separate thread for the actual framegrabbings. More...
 
void fgThreadExec ()
 Execute framegrabbing. More...
 
static void fgThreadStart (frameGrabber *o)
 Thread starter, called by MagAOXApp::threadStart on thread construction. Calls fgThreadExec. More...
 

INDI

pcf::IndiProperty m_indiP_shmimName
 Property used to report the shmim buffer name. More...
 
pcf::IndiProperty m_indiP_frameSize
 Property used to report the current frame size. More...
 
pcf::IndiProperty m_indiP_timing
 
int updateINDI ()
 Update the INDI properties for this device controller. More...
 

Application State

stateCodes::stateCodeT state ()
 Get the current state code. More...
 
void state (const stateCodes::stateCodeT &s, bool stateAlert=false)
 Set the current state code. More...
 
int stateLogged ()
 Updates and returns the value of m_stateLogged. Will be 0 on first call after a state change, >0 afterwards. More...
 
stateCodes::stateCodeT m_state {stateCodes::UNINITIALIZED}
 The application's state. Never ever set this directly, use state(const stateCodeT & s). More...
 
bool m_stateAlert {false}
 
bool m_gitAlert {false}
 
int m_stateLogged {0}
 Counter and flag for use to log errors just once. Never ever access directly, use stateLogged(). More...
 

INDI

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

Signal Handling

libMagAOX/logger/types/software_log.hpp

static MagAOXAppm_self = nullptr
 Static pointer to this (set in constructor). Used to test whether a a MagAOXApp is already instatiated (a fatal error) and used for getting out of static signal handlers. More...
 
static void _handlerSigTerm (int signum, siginfo_t *siginf, void *ucont)
 The handler called when SIGTERM, SIGQUIT, or SIGINT is received. Just a wrapper for handlerSigTerm. More...
 
int setSigTermHandler ()
 Sets the handler for SIGTERM, SIGQUIT, and SIGINT. More...
 
void handlerSigTerm (int signum, siginfo_t *siginf, void *ucont)
 Handles SIGTERM, SIGQUIT, and SIGINT. Sets m_shutdown to 1 and logs the signal. More...
 

Privilege Management

uid_t m_euidReal
 The real user id of the proces (i.e. the lower privileged id of the user) More...
 
uid_t m_euidCalled
 The user id of the process as called (i.e. the higher privileged id of the owner, root if setuid). More...
 
uid_t m_suid
 The save-set user id of the process. More...
 
int setEuidCalled ()
 Set the effective user ID to the called value, i.e. the highest possible. More...
 
int setEuidReal ()
 Set the effective user ID to the real value, i.e. the file owner. More...
 

Detailed Description

MagAO-X application to control a Basler USB3 Camera

Definition at line 57 of file baslerCtrl.hpp.

Member Typedef Documentation

◆ callBackInsertResult

template<bool _useINDI = true>
typedef std::pair<callBackIterator,bool> MagAOX::app::MagAOXApp< _useINDI >::callBackInsertResult
inherited

Return type of insert on the indiCallBack map.

Definition at line 561 of file MagAOXApp.hpp.

◆ callBackIterator

template<bool _useINDI = true>
typedef std::unordered_map<std::string, indiCallBack>::iterator MagAOX::app::MagAOXApp< _useINDI >::callBackIterator
inherited

Iterator type of the indiCallBack map.

Definition at line 558 of file MagAOXApp.hpp.

◆ callBackValueType

template<bool _useINDI = true>
typedef std::pair<std::string, indiCallBack> MagAOX::app::MagAOXApp< _useINDI >::callBackValueType
inherited

Value type of the indiCallBack map.

Definition at line 555 of file MagAOXApp.hpp.

◆ cbIndexT

typedef uint16_t MagAOX::app::dev::frameGrabber< baslerCtrl >::cbIndexT
protectedinherited

Definition at line 120 of file frameGrabber.hpp.

◆ logManagerT [1/2]

The log manager type.

Definition at line 54 of file telemeter.hpp.

◆ logManagerT [2/2]

template<bool _useINDI = true>
typedef logger::logManager<MagAOXApp<_useINDI>, logFileRaw> MagAOX::app::MagAOXApp< _useINDI >::logManagerT
inherited

The log manager type.

Definition at line 82 of file MagAOXApp.hpp.

Member Enumeration Documentation

◆ fgFlip

Definition at line 81 of file frameGrabber.hpp.

Constructor & Destructor Documentation

◆ baslerCtrl()

MagAOX::app::baslerCtrl::baslerCtrl ( )
inline

Default c'tor.

Definition at line 252 of file baslerCtrl.hpp.

◆ ~baslerCtrl()

MagAOX::app::baslerCtrl::~baslerCtrl ( )
inlinenoexcept

Destructor.

Definition at line 260 of file baslerCtrl.hpp.

Member Function Documentation

◆ _handlerSigTerm()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::_handlerSigTerm ( int  signum,
siginfo_t *  siginf,
void *  ucont 
)
staticprivateinherited

The handler called when SIGTERM, SIGQUIT, or SIGINT is received. Just a wrapper for handlerSigTerm.

Parameters
[in]signumspecifies the signal.
[in]siginfignored by MagAOXApp
[in]ucontignored by MagAOXApp

Definition at line 1709 of file MagAOXApp.hpp.

◆ acquireAndCheckValid()

int MagAOX::app::baslerCtrl::acquireAndCheckValid ( )

Definition at line 841 of file baslerCtrl.hpp.

◆ appLogic()

int MagAOX::app::baslerCtrl::appLogic ( )
inlinevirtual

Implementation of the FSM for the Siglent SDG.

Todo:
Fall through check?

Implements MagAOX::app::MagAOXApp< _useINDI >.

Definition at line 326 of file baslerCtrl.hpp.

◆ appShutdown()

int MagAOX::app::baslerCtrl::appShutdown ( )
inlinevirtual

Do any needed shutdown tasks. Currently nothing in this app.

Implements MagAOX::app::MagAOXApp< _useINDI >.

Definition at line 415 of file baslerCtrl.hpp.

◆ appStartup()

int MagAOX::app::baslerCtrl::appStartup ( )
inlinevirtual

Startup functions.

Sets up the INDI vars.

Implements MagAOX::app::MagAOXApp< _useINDI >.

Definition at line 294 of file baslerCtrl.hpp.

◆ checkConfig()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::checkConfig
virtualinherited

Check for unused and unrecognized config options and settings.

Logs the unused targets as warnings. Unrecognized and unused options are logged as critical, and m_shutdown is set. Any command line argument (not an option) will also be critical and cause shutdown.

Definition at line 1327 of file MagAOXApp.hpp.

◆ checkNextROI() [1/3]

int MagAOX::app::baslerCtrl::checkNextROI ( )
inlineprotected

Check the next ROI.

Checks if the target values are valid and adjusts them to the closest valid values if needed.

Returns
0 always

Definition at line 1036 of file baslerCtrl.hpp.

◆ checkNextROI() [2/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::checkNextROI ( const mx::meta::trueFalseT< false > &  f)
inherited

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 835 of file stdCamera.hpp.

◆ checkNextROI() [3/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::checkNextROI ( const mx::meta::trueFalseT< true > &  t)
inherited

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 829 of file stdCamera.hpp.

◆ checkRecordTimes() [1/4]

int MagAOX::app::baslerCtrl::checkRecordTimes ( )
inlineprotected

Definition at line 1188 of file baslerCtrl.hpp.

◆ checkRecordTimes() [2/4]

int MagAOX::app::dev::telemeter< baslerCtrl >::checkRecordTimes ( const telT &  tel,
telTs...  tels 
)
inherited

Check the time of the last record for each telemetry type and make an entry if needed.

This must be called from derivedT::checkRecordTimes(), with one template parameter for ach telemetry log type being recorded.

Returns
0 on succcess
-1 on error
Parameters
[in]tel[unused] object of the telemetry type to record
[in]tels[unused] objects of the additional telemetry types to record

Definition at line 131 of file telemeter.hpp.

◆ checkRecordTimes() [3/4]

int MagAOX::app::dev::telemeter< baslerCtrl >::checkRecordTimes ( timespec &  ts)
inherited

Empty function called at the end of the template list.

Returns
0 on succcess
-1 on error
Parameters
[in]ts[unused] the timestamp that records are compared to

Definition at line 152 of file telemeter.hpp.

◆ checkRecordTimes() [4/4]

int MagAOX::app::dev::telemeter< baslerCtrl >::checkRecordTimes ( timespec &  ts,
const telT &  tel,
telTs...  tels 
)
inherited

Worker function to actually perform the record time checking logic.

Recursively calls itself until the variadic template list is exhausted.

Returns
0 on succcess
-1 on error
Parameters
[in]ts[unused] the timestamp that records are compared to
[in]tel[unused] objects of the telemetry type to record
[in]tels[unused] objects of the additional telemetry types to record

Definition at line 142 of file telemeter.hpp.

◆ clearFSMAlert()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::clearFSMAlert
privateinherited

Clear the FSM alert state.

This can only be done from within this class, and this should only be possible via user action via INDI.

Definition at line 2155 of file MagAOXApp.hpp.

◆ configDir()

template<bool _useINDI>
std::string MagAOX::app::MagAOXApp< _useINDI >::configDir
inherited

Get the config directory.

Returns
the current value of m_configDir

Definition at line 3247 of file MagAOXApp.hpp.

◆ configLog()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::configLog ( const std::string &  name,
const int &  code,
const std::string &  value,
const std::string &  source 
)
staticprivateinherited

Callback for config system logging.

Called by appConfigurator each time a value is set using the config() operator. You never need to call this directly.

Parameters
[in]nameThe name of the config value
[in]codenumeric code specifying the type
[in]valuethe value read by the config system
[in]sourcethe source of the value.

Definition at line 1650 of file MagAOXApp.hpp.

◆ configName()

template<bool _useINDI>
std::string MagAOX::app::MagAOXApp< _useINDI >::configName
inherited

Get the config name.

Returns
the current value of m_configName

Definition at line 3241 of file MagAOXApp.hpp.

Referenced by MagAOXApp_tests::MagAOXApp_test::configName(), MagAOX::app::andorCtrl::loadConfig(), and MagAOX::app::andorCtrl::writeConfig().

◆ configureAcquisition()

int MagAOX::app::baslerCtrl::configureAcquisition ( )

Definition at line 652 of file baslerCtrl.hpp.

◆ connect()

int MagAOX::app::baslerCtrl::connect ( )
inline

Definition at line 432 of file baslerCtrl.hpp.

◆ createINDIFIFOS()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createINDIFIFOS
protectedinherited

Create the INDI FIFOs.

Changes permissions to max available and creates the FIFOs at the configured path.

Todo:
make driver FIFO path full configurable.

Definition at line 2603 of file MagAOXApp.hpp.

◆ createReadoutSpeed() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::createReadoutSpeed ( const mx::meta::trueFalseT< false > &  f)
protectedinherited

◆ createReadoutSpeed() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::createReadoutSpeed ( const mx::meta::trueFalseT< true > &  t)
protectedinherited

Definition at line 491 of file stdCamera.hpp.

◆ createROIndiNumber()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createROIndiNumber ( pcf::IndiProperty &  prop,
const std::string &  propName,
const std::string &  propLabel = "",
const std::string &  propGroup = "" 
)
inherited

Create a ReadOnly INDI Number property.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]propNamethe name of the property
[in]propLabel[optional] the GUI label suggestion for this property
[in]propGroup[optional] the group for this property

Definition at line 2294 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picamCtrl::appStartup(), and MagAOX::app::zaberCtrl::appStartup().

◆ createROIndiText()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createROIndiText ( pcf::IndiProperty &  prop,
const std::string &  propName,
const std::string &  elName,
const std::string &  propLabel = "",
const std::string &  propGroup = "",
const std::string &  elLabel = "" 
)
inherited

Create a standard ReadOnly INDI Text property, with at least one element.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]propNamethe name of the property
[in]elNamethe name of the element
[in]propLabel[optional] the GUI label suggestion for this property
[in]propGroup[optional] the group for this property
[in]elLabel[optional] the GUI label suggestion for the element

Definition at line 2209 of file MagAOXApp.hpp.

◆ createStandardIndiNumber()

template<bool _useINDI>
template<typename T >
int MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiNumber ( pcf::IndiProperty &  prop,
const std::string &  name,
const T &  min,
const T &  max,
const T &  step,
const std::string &  format,
const std::string &  label = "",
const std::string &  group = "" 
)
inherited

Create a standard R/W INDI Number property with target and current elements.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]namethe name of the property
[in]minthe minimum value for the elements, applied to both target and current
[in]maxthe minimum value for the elements, applied to both target and current
[in]stepthe step size for the elements, applied to both target and current
[in]formatthe _ value for the elements, applied to both target and current. Set to "" to use the MagAO-X standard for type.
[in]label[optional] the GUI label suggestion for this property
[in]group[optional] the group for this property

Definition at line 2246 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::appStartup().

◆ createStandardIndiRequestSw()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiRequestSw ( pcf::IndiProperty &  prop,
const std::string &  name,
const std::string &  label = "",
const std::string &  group = "" 
)
inherited

Create a standard R/W INDI switch with a single request element.

This switch is intended to function like a momentary switch.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]namethe name of the property
[in]label[optional] the GUI label suggestion for this property
[in]group[optional] the group for this property

Definition at line 2352 of file MagAOXApp.hpp.

Referenced by MagAOX::app::ocam2KCtrl::appStartup().

◆ createStandardIndiSelectionSw() [1/2]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiSelectionSw ( pcf::IndiProperty &  prop,
const std::string &  name,
const std::vector< std::string > &  elements,
const std::string &  label = "",
const std::string &  group = "" 
)
inherited

Create a standard R/W INDI selection (one of many) switch with vector of elements using the element strings as their own labels.

This switch is intended to function like drop down menu.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]namethe name of the property,
[in]elementsthe element names to give to the switches
[in]label[optional] the GUI label suggestion for this property
[in]group[optional] the group for this property

Definition at line 2426 of file MagAOXApp.hpp.

◆ createStandardIndiSelectionSw() [2/2]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiSelectionSw ( pcf::IndiProperty &  prop,
const std::string &  name,
const std::vector< std::string > &  elements,
const std::vector< std::string > &  elementLabels,
const std::string &  label = "",
const std::string &  group = "" 
)
inherited

Create a standard R/W INDI selection (one of many) switch with vector of elements and element labels.

This switch is intended to function like drop down menu.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]namethe name of the property,
[in]elementsthe element names to give to the switches
[in]elementLabelsthe element labels to give to the switches
[in]label[optional] the GUI label suggestion for this property
[in]group[optional] the group for this property

Definition at line 2383 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::appStartup().

◆ createStandardIndiText()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiText ( pcf::IndiProperty &  prop,
const std::string &  propName,
const std::string &  label = "",
const std::string &  group = "" 
)
inherited

Create a standard R/W INDI Text property with target and current elements.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]propNamethe name of the property
[in]label[optional] the GUI label suggestion for this property
[in]group[optional] the group for this property

Definition at line 2180 of file MagAOXApp.hpp.

◆ createStandardIndiToggleSw()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiToggleSw ( pcf::IndiProperty &  prop,
const std::string &  name,
const std::string &  label = "",
const std::string &  group = "" 
)
inherited

Create a standard R/W INDI switch with a single toggle element.

This switch is intended to function like an on/off toggle switch.

Returns
0 on success
-1 on error
Parameters
[out]propthe property to create and setup
[in]namethe name of the property
[in]label[optional] the GUI label suggestion for this property
[in]group[optional] the group for this property

Definition at line 2321 of file MagAOXApp.hpp.

Referenced by MagAOX::app::siglentSDG::appStartup(), MagAOX::app::streamWriter::appStartup(), and MagAOX::app::sysMonitor::appStartup().

◆ createVShiftSpeed() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::createVShiftSpeed ( const mx::meta::trueFalseT< false > &  f)
protectedinherited

◆ createVShiftSpeed() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::createVShiftSpeed ( const mx::meta::trueFalseT< true > &  t)
protectedinherited

Definition at line 495 of file stdCamera.hpp.

◆ derived()

baslerCtrl & MagAOX::app::dev::stdCamera< baslerCtrl >::derived ( )
inlineprivateinherited

Definition at line 965 of file stdCamera.hpp.

◆ driverCtrlName()

template<bool _useINDI>
std::string MagAOX::app::MagAOXApp< _useINDI >::driverCtrlName
inherited

Get the INDI control FIFO file name.

Returns
the current value of m_driverCtrlName

Definition at line 3265 of file MagAOXApp.hpp.

◆ driverInName()

template<bool _useINDI>
std::string MagAOX::app::MagAOXApp< _useINDI >::driverInName
inherited

Get the INDI input FIFO file name.

Returns
the current value of m_driverInName

Definition at line 3253 of file MagAOXApp.hpp.

◆ driverOutName()

template<bool _useINDI>
std::string MagAOX::app::MagAOXApp< _useINDI >::driverOutName
inherited

Get the INDI output FIFO file name.

Returns
the current value of m_driverOutName

Definition at line 3259 of file MagAOXApp.hpp.

◆ execute()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::execute ( void  )
virtualinherited

The execute method implementing the standard main loop. Should not normally be overridden.

Performs final startup steps. That is:

Errors in the above steps will cause a process exit.

Then commences the main event loop. Conditions on entry to the main loop:

  • PID locked
  • Log thread running
  • Signal handling installed
  • appStartup successful
  • INDI communications started successfully (if being used)
  • power state known (if being managed)

In the event loop, the power state is checked (if being managed). If power is off, then onPowerOff is called. If power is on, or power is not managed, appLogic is called. These methods are implemented in derived classes, and are called every m_loopPause interval.

If an error is returned by either onPowerOff or appLogic, or a signal is handled, then the shutdown is managed. This includes shutting down INDI, calling appShutdown, and unlocking the PID. The log thread will shutdown.

Todo:
Need a heartbeat update here.

Definition at line 1370 of file MagAOXApp.hpp.

◆ fgThreadExec()

void MagAOX::app::dev::frameGrabber< baslerCtrl >::fgThreadExec
protectedinherited

Execute framegrabbing.

Todo:
this ought to wait until OPERATING, using READY as a sign of "not integrating"

Definition at line 236 of file frameGrabber.hpp.

◆ fgThreadStart()

void MagAOX::app::dev::frameGrabber< baslerCtrl >::fgThreadStart ( frameGrabber< baslerCtrl > *  o)
staticprotectedinherited

Thread starter, called by MagAOXApp::threadStart on thread construction. Calls fgThreadExec.

Parameters
[in]oa pointer to a frameGrabber instance (normally this)

Definition at line 233 of file frameGrabber.hpp.

◆ fps()

float MagAOX::app::baslerCtrl::fps ( )
inlineprotected

Definition at line 961 of file baslerCtrl.hpp.

◆ getExpTime()

int MagAOX::app::baslerCtrl::getExpTime ( )
inlineprotected

Get the current exposure time.

Returns
0 on success
-1 on an error.

Definition at line 917 of file baslerCtrl.hpp.

◆ getFPS()

int MagAOX::app::baslerCtrl::getFPS ( )
inlineprotected

Get the current framerate.

Returns
0 on success
-1 on an error.

Definition at line 939 of file baslerCtrl.hpp.

◆ getTemp()

int MagAOX::app::baslerCtrl::getTemp ( )
inlineprotected

Get the current detector temperature.

Returns
0 on success
-1 on an error.

Definition at line 895 of file baslerCtrl.hpp.

◆ handleDefProperty()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::handleDefProperty ( const pcf::IndiProperty &  ipRecv)
inherited

Handler for the DEF INDI properties notification.

Uses the properties registered in m_indiSetCallBacks to process the notification. This is called by m_indiDriver's indiDriver::handleDefProperties.

Parameters
[in]ipRecvThe property being sent.

Definition at line 2759 of file MagAOXApp.hpp.

◆ handleGetProperties()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::handleGetProperties ( const pcf::IndiProperty &  ipRecv)
inherited

Handler for the get INDI properties request.

Uses the properties registered in m_indiCallBacks to respond to the request. This is called by m_indiDriver's indiDriver::handleGetProperties.

Parameters
[in]ipRecvThe property being requested.

Definition at line 2765 of file MagAOXApp.hpp.

◆ handleNewProperty()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::handleNewProperty ( const pcf::IndiProperty &  ipRecv)
inherited

Handler for the new INDI property request.

Uses the properties registered in m_indiCallBacks to respond to the request, looking up the callback for this property and calling it.

This is called by m_indiDriver's indiDriver::handleGetProperties.

Todo:
handle errors, are they FATAL?
Parameters
[in]ipRecvThe property being changed.

Definition at line 2827 of file MagAOXApp.hpp.

Referenced by MagAOXApp_tests::SCENARIO().

◆ handlerSigTerm()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::handlerSigTerm ( int  signum,
siginfo_t *  siginf,
void *  ucont 
)
privateinherited

Handles SIGTERM, SIGQUIT, and SIGINT. Sets m_shutdown to 1 and logs the signal.

Parameters
[in]signumspecifies the signal.
[in]siginfignored by MagAOXApp
[in]ucontignored by MagAOXApp

Definition at line 1718 of file MagAOXApp.hpp.

Referenced by MagAOX::app::MagAOXApp< _useINDI >::_handlerSigTerm().

◆ handleSetProperty()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::handleSetProperty ( const pcf::IndiProperty &  ipRecv)
inherited

Handler for the set INDI property request.

This is called by m_indiDriver's indiDriver::handleSetProperties.

Todo:
handle errors, are they FATAL?
Todo:
log an error here because callBack should not be null
Todo:
log invalid SetProperty request.
Parameters
[in]ipRecvThe property being changed.

Definition at line 2849 of file MagAOXApp.hpp.

◆ INDI_SETCALLBACK_DECL()

template<bool _useINDI = true>
MagAOX::app::MagAOXApp< _useINDI >::INDI_SETCALLBACK_DECL ( MagAOXApp< _useINDI >  ,
m_indiP_powerChannel   
)
inherited

◆ indiTargetUpdate()

template<bool _useINDI>
template<typename T >
int MagAOX::app::MagAOXApp< _useINDI >::indiTargetUpdate ( pcf::IndiProperty &  localProperty,
T &  localTarget,
const pcf::IndiProperty &  remoteProperty,
bool  setBusy = true 
)
protectedinherited

Get the target element value from an new property.

Returns
0 on success
-1 on error
Parameters
[out]localPropertyThe local property to update
[out]localTargetThe local value to update
[in]remotePropertythe new property received
[in]setBusy[optional] set property to busy if true

Definition at line 2951 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::newCallBack_picopos().

◆ loadBasicConfig()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::loadBasicConfig
virtualinherited

The basic MagAO-X configuration processing method. Should not normally be overridden.

This method processes the standard MagAO-X key=value pairs.

Though it is virtual, it should not normally be overridden unless you need to depart from the MagAO-X standard.

Processing of app specific config goes in loadConfig() implemented by the derived class.

Definition at line 1278 of file MagAOXApp.hpp.

◆ loadConfig() [1/4]

void MagAOX::app::baslerCtrl::loadConfig ( )
inlinevirtual

load the configuration system results (called by MagAOXApp::setup())

Definition at line 280 of file baslerCtrl.hpp.

◆ loadConfig() [2/4]

int MagAOX::app::dev::telemeter< baslerCtrl >::loadConfig ( appConfigurator &  config)
inherited

Load the device section from an application configurator.

Returns
0 on success
-1 on error (nothing implemented yet)
Parameters
[in]configan application configuration from which to load values

Definition at line 95 of file telemeter.hpp.

◆ loadConfig() [3/4]

void MagAOX::app::dev::frameGrabber< baslerCtrl >::loadConfig ( mx::app::appConfigurator &  config)
inherited

load the configuration system results

This should be called in derivedT::loadConfig as

framegrabber<derivedT>::loadConfig(config);

with appropriate error checking.

Parameters
[in]configthe derived classes configurator

Definition at line 165 of file frameGrabber.hpp.

◆ loadConfig() [4/4]

void MagAOX::app::dev::stdCamera< baslerCtrl >::loadConfig ( mx::app::appConfigurator &  config)
inherited

load the configuration system results

This should be called in derivedT::loadConfig as

stdCamera<derivedT>::loadConfig(config);

with appropriate error checking.

Parameters
[in]configthe derived classes configurator

Definition at line 487 of file stdCamera.hpp.

◆ loadImageIntoStream()

int MagAOX::app::baslerCtrl::loadImageIntoStream ( void *  dest)

Definition at line 866 of file baslerCtrl.hpp.

◆ loadImageIntoStreamCopy()

void * MagAOX::app::dev::frameGrabber< baslerCtrl >::loadImageIntoStreamCopy ( void *  dest,
void *  src,
size_t  width,
size_t  height,
size_t  szof 
)
protectedinherited

Definition at line 241 of file frameGrabber.hpp.

◆ lockPID()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::lockPID
protectedinherited

Attempt to lock the PID by writing it to a file. Fails if a process is already running with the same config name.

First checks the PID file for an existing PID. If found, interrogates /proc to determine if that process is running and if so if the command line matches. If a matching process is currently running, then this returns an error.

Will not fail if a PID file exists but the stored PID does not correspond to a running process with the same command line name.

Reference: https://linux.die.net/man/3/getpid

Returns
0 on success.
-1 on any error, including creating the PID file or if this app is already running.

Definition at line 1796 of file MagAOXApp.hpp.

◆ log() [1/2]

template<bool _useINDI>
template<typename logT , int retval>
int MagAOX::app::MagAOXApp< _useINDI >::log ( const typename logT::messageT &  msg,
logPrioT  level = logPrio::LOG_DEFAULT 
)
staticinherited

Make a log entry.

Wrapper for logManager::log

Template Parameters
logTthe log entry type
retvalthe value returned by this method.
Parameters
[in]msgthe message to log
[in]level[optional] the log level. The default is used if not specified.

Definition at line 1590 of file MagAOXApp.hpp.

Referenced by MagAOX::app::zylaCtrl::acquireAndCheckValid(), MagAOX::app::streamWriter::allocate_circbufs(), MagAOX::app::streamWriter::allocate_xrif(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::cameraSim::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::qhyCtrl::appLogic(), MagAOX::app::trippLitePDU::appLogic(), MagAOX::app::xt1121Ctrl::appLogic(), MagAOX::app::xt1121DCDU::appLogic(), MagAOX::app::zylaCtrl::appLogic(), MagAOX::app::acronameUsbHub::appStartup(), MagAOX::app::andorCtrl::appStartup(), MagAOX::app::cameraSim::appStartup(), MagAOX::app::filterWheelCtrl::appStartup(), MagAOX::app::hsfwCtrl::appStartup(), MagAOX::app::ocam2KCtrl::appStartup(), MagAOX::app::picamCtrl::appStartup(), MagAOX::app::picoMotorCtrl::appStartup(), MagAOX::app::qhyCtrl::appStartup(), MagAOX::app::siglentSDG::appStartup(), MagAOX::app::smc100ccCtrl::appStartup(), MagAOX::app::streamWriter::appStartup(), MagAOX::app::sysMonitor::appStartup(), MagAOX::app::trippLitePDU::appStartup(), MagAOX::app::xt1121DCDU::appStartup(), MagAOX::app::zaberCtrl::appStartup(), MagAOX::app::zylaCtrl::appStartup(), MagAOX::app::andorCtrl::cameraSelect(), MagAOX::app::zylaCtrl::cameraSelect(), MagAOX::app::siglentSDG::changeOutp(), MagAOX::app::xt1121Ctrl::channelSetCallback(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::zylaCtrl::configureAcquisition(), MagAOX::app::sysMonitor::findChronyStatus(), MagAOX::app::sysMonitor::findCPULoads(), MagAOX::app::sysMonitor::findCPUTemperatures(), MagAOX::app::sysMonitor::findDiskUsage(), MagAOX::app::sysMonitor::findRamUsage(), MagAOX::app::ocam2KCtrl::getEMGain(), MagAOX::app::andorCtrl::getFPS(), MagAOX::app::ocam2KCtrl::getFPS(), MagAOX::app::xt1121Ctrl::getState(), MagAOX::app::zylaCtrl::getTemp(), MagAOX::app::ocam2KCtrl::getTemps(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), MagAOX::app::filterWheelCtrl::home(), MagAOX::app::streamWriter::initialize_xrif(), MagAOX::app::zylaCtrl::loadImageIntoStream(), audibleAlerts.core.AudibleAlerts::loop(), MagAOX::app::ttmModulator::modTTM(), MagAOX::app::hsfwCtrl::moveTo(), MagAOX::app::zaberCtrl::moveTo(), MagAOX::app::filterWheelCtrl::moveToRaw(), MagAOX::app::filterWheelCtrl::moveToRawRelative(), MagAOX::app::picoMotorCtrl::newCallBack_picopos(), MagAOX::app::ttmModulator::offset12(), MagAOX::app::filterWheelCtrl::onPowerOnConnect(), audibleAlerts.core.AudibleAlerts::preprocess(), audibleAlerts.core.AudibleAlerts::reaction_handler(), MagAOX::app::zylaCtrl::reconfig(), MagAOX::app::ocam2KCtrl::resetEMProtection(), MagAOX::app::ttmModulator::restTTM(), MagAOX::app::ocam2KCtrl::setEMGain(), MagAOX::app::picamCtrl::setEMGain(), MagAOX::app::ocam2KCtrl::setFPS(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::andorCtrl::setReadoutSpeed(), MagAOX::app::andorCtrl::setShutter(), MagAOX::app::ocam2KCtrl::setSynchro(), MagAOX::app::ocam2KCtrl::setTempControl(), MagAOX::app::zylaCtrl::setTempControl(), MagAOX::app::ocam2KCtrl::setTempSetPt(), MagAOX::app::ttmModulator::setTTM(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), MagAOX::app::andorCtrl::setVShiftSpeed(), MagAOX::app::andorCtrl::startAcquisition(), MagAOX::app::zylaCtrl::startAcquisition(), MagAOX::app::zaberCtrl::startHoming(), MagAOX::app::filterWheelCtrl::stop(), MagAOX::app::zaberCtrl::stop(), MagAOX::app::acronameUsbHub::turnOutletOff(), MagAOX::app::trippLitePDU::turnOutletOff(), MagAOX::app::xt1121DCDU::turnOutletOff(), MagAOX::app::acronameUsbHub::turnOutletOn(), MagAOX::app::trippLitePDU::turnOutletOn(), MagAOX::app::xt1121DCDU::turnOutletOn(), MagAOX::app::acronameUsbHub::updateOutletState(), and MagAOX::app::xt1121DCDU::updateOutletState().

◆ log() [2/2]

template<bool _useINDI>
template<typename logT , int retval>
int MagAOX::app::MagAOXApp< _useINDI >::log ( logPrioT  level = logPrio::LOG_DEFAULT)
staticinherited

◆ logMessage()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::logMessage ( bufferPtrT b)
inherited

Handle a log message from the logging system.

This is a callback from the logManager, and is called when the log thread is processing log entries.

Decides whether to display to stderr and whether to send via INDI.

Definition at line 1607 of file MagAOXApp.hpp.

◆ newCallBack_clearFSMAlert()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::newCallBack_clearFSMAlert ( const pcf::IndiProperty &  ipRecv)
protectedinherited

The callback called by the static version, to actually process the FSM Alert Clear request.

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

Definition at line 3130 of file MagAOXApp.hpp.

◆ newCallBack_cropMode()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_cropMode ( const pcf::IndiProperty &  ipRecv)
inherited

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 781 of file stdCamera.hpp.

◆ newCallBack_emgain()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_emgain ( const pcf::IndiProperty &  ipRecv)
inherited

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 691 of file stdCamera.hpp.

◆ newCallBack_exptime()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_exptime ( const pcf::IndiProperty &  ipRecv)
inherited

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 710 of file stdCamera.hpp.

◆ newCallBack_fps()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_fps ( const pcf::IndiProperty &  ipRecv)
inherited

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 729 of file stdCamera.hpp.

◆ newCallBack_mode()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_mode ( const pcf::IndiProperty &  ipRecv)
inherited

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 755 of file stdCamera.hpp.

◆ newCallBack_readoutSpeed()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_readoutSpeed ( const pcf::IndiProperty &  ipRecv)
inherited

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 653 of file stdCamera.hpp.

◆ newCallBack_reconfigure()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_reconfigure ( const pcf::IndiProperty &  ipRecv)
inherited

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 762 of file stdCamera.hpp.

◆ newCallBack_roi_bin_x()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_bin_x ( const pcf::IndiProperty &  ipRecv)
inherited

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 816 of file stdCamera.hpp.

◆ newCallBack_roi_bin_y()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_bin_y ( const pcf::IndiProperty &  ipRecv)
inherited

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 823 of file stdCamera.hpp.

◆ newCallBack_roi_check()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_check ( const pcf::IndiProperty &  ipRecv)
inherited

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 842 of file stdCamera.hpp.

◆ newCallBack_roi_default()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_default ( const pcf::IndiProperty &  ipRecv)
inherited

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 896 of file stdCamera.hpp.

◆ newCallBack_roi_full()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_full ( const pcf::IndiProperty &  ipRecv)
inherited

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 868 of file stdCamera.hpp.

◆ newCallBack_roi_fullbin()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_fullbin ( const pcf::IndiProperty &  ipRecv)
inherited

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 875 of file stdCamera.hpp.

◆ newCallBack_roi_h()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_h ( const pcf::IndiProperty &  ipRecv)
inherited

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 809 of file stdCamera.hpp.

◆ newCallBack_roi_last()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_last ( const pcf::IndiProperty &  ipRecv)
inherited

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 889 of file stdCamera.hpp.

◆ newCallBack_roi_loadlast()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_loadlast ( const pcf::IndiProperty &  ipRecv)
inherited

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 882 of file stdCamera.hpp.

◆ newCallBack_roi_set()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_set ( const pcf::IndiProperty &  ipRecv)
inherited

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 861 of file stdCamera.hpp.

◆ newCallBack_roi_w()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_w ( const pcf::IndiProperty &  ipRecv)
inherited

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 802 of file stdCamera.hpp.

◆ newCallBack_roi_x()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_x ( const pcf::IndiProperty &  ipRecv)
inherited

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 788 of file stdCamera.hpp.

◆ newCallBack_roi_y()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_roi_y ( const pcf::IndiProperty &  ipRecv)
inherited

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 795 of file stdCamera.hpp.

◆ newCallBack_shutter()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_shutter ( const pcf::IndiProperty &  ipRecv)
inherited

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 919 of file stdCamera.hpp.

◆ newCallBack_stdCamera()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_stdCamera ( const pcf::IndiProperty &  ipRecv)
inherited

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 596 of file stdCamera.hpp.

◆ newCallBack_synchro()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_synchro ( const pcf::IndiProperty &  ipRecv)
inherited

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 748 of file stdCamera.hpp.

◆ newCallBack_temp()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_temp ( const pcf::IndiProperty &  ipRecv)
inherited

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 615 of file stdCamera.hpp.

◆ newCallBack_temp_controller()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_temp_controller ( const pcf::IndiProperty &  ipRecv)
inherited

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 634 of file stdCamera.hpp.

◆ newCallBack_vShiftSpeed()

int MagAOX::app::dev::stdCamera< baslerCtrl >::newCallBack_vShiftSpeed ( const pcf::IndiProperty &  ipRecv)
inherited

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 672 of file stdCamera.hpp.

◆ onPowerOff() [1/3]

int MagAOX::app::dev::frameGrabber< baslerCtrl >::onPowerOff
inherited

On power off, sets m_reconfig to true.

This should be called in derivedT::onPowerOff as

framegrabber<derivedT>::onPowerOff();

with appropriate error checking.

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

Definition at line 202 of file frameGrabber.hpp.

◆ onPowerOff() [2/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::onPowerOff
inherited

Actions on power off.

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

stdCamera<derivedT>::onPowerOff();

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 543 of file stdCamera.hpp.

◆ onPowerOff() [3/3]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::onPowerOff
protectedvirtualinherited

◆ powerOnDefaults()

int MagAOX::app::baslerCtrl::powerOnDefaults ( )
inlineprotected

Set defaults for a power on state.

Returns
0 on success
-1 on error

Definition at line 968 of file baslerCtrl.hpp.

◆ powerOnWaitElapsed()

template<bool _useINDI>
bool MagAOX::app::MagAOXApp< _useINDI >::powerOnWaitElapsed
protectedinherited

This method tests whether the power on wait time has elapsed.

You would call this once per appLogic loop while in state POWERON. While false, you would return 0.
Once it becomes true, take post-power-on actions and go on with life.

Returns
true if the time since POWERON is greater than the power-on wait, or if power management is not enabled
false otherwise

Definition at line 3163 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::appLogic(), and MagAOX::app::smc100ccCtrl::appLogic().

◆ powerState()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::powerState
inherited

◆ powerStateTarget()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::powerStateTarget
inherited

◆ reconfig()

int MagAOX::app::baslerCtrl::reconfig ( )

Definition at line 886 of file baslerCtrl.hpp.

◆ recordCamera()

int MagAOX::app::dev::stdCamera< baslerCtrl >::recordCamera ( bool  force = false)
inherited

Definition at line 960 of file stdCamera.hpp.

◆ recordFGTimings()

int MagAOX::app::dev::frameGrabber< baslerCtrl >::recordFGTimings ( bool  force = false)
inherited

Definition at line 278 of file frameGrabber.hpp.

◆ recordTelem()

int MagAOX::app::baslerCtrl::recordTelem ( const telem_stdcam )
inlineprotected

Definition at line 1194 of file baslerCtrl.hpp.

◆ registerIndiPropertyNew() [1/3]

template<bool _useINDI = true>
int MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertyNew ( pcf::IndiProperty &  prop,
const std::string &  propName,
const pcf::IndiProperty::Type &  propType,
const pcf::IndiProperty::PropertyPermType &  propPerm,
const pcf::IndiProperty::PropertyStateType &  propState,
const pcf::IndiProperty::SwitchRuleType &  propRule,
int(*)(void *, const pcf::IndiProperty &)   
)
inherited

Register an INDI property which is exposed for others to request a New Property for, with a switch rule.

This verison sets up the INDI property according to the arguments.

Returns
0 on success.
-1 on error.
Parameters
[out]propthe property to register
[in]propNamethe name of the property
[in]propTypethe type of the property
[in]propPermthe permissions of the property
[in]propStatethe state of the property
[in]propRulethe switch rule type

◆ registerIndiPropertyNew() [2/3]

template<bool _useINDI = true>
int MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertyNew ( pcf::IndiProperty &  prop,
const std::string &  propName,
const pcf::IndiProperty::Type &  propType,
const pcf::IndiProperty::PropertyPermType &  propPerm,
const pcf::IndiProperty::PropertyStateType &  propState,
int(*)(void *, const pcf::IndiProperty &)   
)
inherited

Register an INDI property which is exposed for others to request a New Property for.

This verison sets up the INDI property according to the arguments.

Returns
0 on success.
-1 on error.
Parameters
[out]propthe property to register
[in]propNamethe name of the property
[in]propTypethe type of the property
[in]propPermthe permissions of the property
[in]propStatethe state of the property

◆ registerIndiPropertyNew() [3/3]

template<bool _useINDI = true>
int MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertyNew ( pcf::IndiProperty &  prop,
int(*)(void *, const pcf::IndiProperty &)   
)
inherited

Register an INDI property which is exposed for others to request a New Property for.

In this version the supplied IndiProperty must be fully set up before passing in.

Returns
0 on success.
-1 on error.
Parameters
[in]propthe property to register, must be fully set up

Referenced by MagAOX::app::filterWheelCtrl::appStartup(), MagAOX::app::magAOXMaths::appStartup(), MagAOX::app::ocam2KCtrl::appStartup(), MagAOX::app::picoMotorCtrl::appStartup(), MagAOX::app::siglentSDG::appStartup(), MagAOX::app::streamWriter::appStartup(), MagAOX::app::sysMonitor::appStartup(), MagAOX::app::zaberCtrl::appStartup(), and MagAOXApp_tests::SCENARIO().

◆ registerIndiPropertyReadOnly() [1/2]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertyReadOnly ( pcf::IndiProperty &  prop)
inherited

Register an INDI property which is read only.

This version requires the property be fully set up.

Returns
0 on success.
-1 on error.
Parameters
[in]propthe property to register, must be completely setup

Definition at line 2437 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picamCtrl::appStartup(), and MagAOX::app::zaberCtrl::appStartup().

◆ registerIndiPropertyReadOnly() [2/2]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertyReadOnly ( pcf::IndiProperty &  prop,
const std::string &  propName,
const pcf::IndiProperty::Type &  propType,
const pcf::IndiProperty::PropertyPermType &  propPerm,
const pcf::IndiProperty::PropertyStateType &  propState 
)
inherited

Register an INDI property which is read only.

This verison sets up the INDI property according to the arguments.

Returns
0 on success.
-1 on error.
Parameters
[out]propthe property to register, will be configured
[in]propNamethe name of the property
[in]propTypethe type of the property
[in]propPermthe permissions of the property
[in]propStatethe state of the property

Definition at line 2463 of file MagAOXApp.hpp.

◆ registerIndiPropertySet()

template<bool _useINDI = true>
int MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertySet ( pcf::IndiProperty &  prop,
const std::string &  devName,
const std::string &  propName,
int(*)(void *, const pcf::IndiProperty &)   
)
inherited

Register an INDI property which is monitored for updates from others.

Returns
0 on success.
-1 on error.
Parameters
[out]propthe property to register
[in]devNamethe device which owns this property
[in]propNamethe name of the property

Definition at line 2569 of file MagAOXApp.hpp.

◆ sendGetPropertySetList()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::sendGetPropertySetList ( bool  all = false)
inherited

Definition at line 2723 of file MagAOXApp.hpp.

◆ sendNewProperty() [1/2]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::sendNewProperty ( const pcf::IndiProperty &  ipSend)
protectedinherited

Send a newProperty command to another device (using the INDI Client interface)

Returns
0 on success.
-1 on an error, which will be logged
Parameters
[in]ipSendThe property to send a "new" INDI command for

Definition at line 3066 of file MagAOXApp.hpp.

◆ sendNewProperty() [2/2]

template<bool _useINDI>
template<typename T >
int MagAOX::app::MagAOXApp< _useINDI >::sendNewProperty ( const pcf::IndiProperty &  ipSend,
const std::string &  el,
const T &  newVal 
)
protectedinherited

Send a newProperty command to another device (using the INDI Client interface)

Copies the input IndiProperty, then updates the element with the new value.

Returns
0 on success.
-1 on an errory.
Parameters
[in]ipSendThe property to send a "new" INDI command for
[in]elThe element of the property to change
[in]newValThe value to request for the element.

Definition at line 3031 of file MagAOXApp.hpp.

Referenced by MagAOX::app::ttmModulator::modTTM(), MagAOX::app::zaberCtrl::moveTo(), MagAOX::app::ttmModulator::offset12(), MagAOX::app::ttmModulator::offsetXY(), MagAOX::app::ttmModulator::restTTM(), MagAOX::app::MagAOXApp< _useINDI >::sendNewProperty(), MagAOX::app::ocam2KCtrl::setFPS(), MagAOX::app::ttmModulator::setTTM(), MagAOX::app::zaberCtrl::startHoming(), MagAOX::app::zaberCtrl::stop(), MagAOX::app::xt1121DCDU::turnOutletOff(), and MagAOX::app::xt1121DCDU::turnOutletOn().

◆ sendNewStandardIndiToggle()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::sendNewStandardIndiToggle ( const std::string &  device,
const std::string &  property,
bool  onoff 
)
protectedinherited

Send a new property commmand for a standard toggle switch.

Returns
0 on success
-1 on an error, which will be logged.
Parameters
[in]deviceThe device name
[in]propertyThe property name
[in]onoffSwitch state to send: true = on, false = off

Definition at line 3084 of file MagAOXApp.hpp.

◆ setCropMode() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setCropMode ( const mx::meta::trueFalseT< false > &  f)
inherited

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 774 of file stdCamera.hpp.

◆ setCropMode() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setCropMode ( const mx::meta::trueFalseT< true > &  t)
inherited

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 768 of file stdCamera.hpp.

◆ setDefaults()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::setDefaults ( int  argc,
char **  argv 
)
virtualinherited

Set the paths for config files.

Replaces the mx::application defaults with the MagAO-X config system.

This function parses the CL for "-n" or "--name".

Do not override this unless you intend to depart from the MagAO-X standard.

Parameters
[in]argcstandard command line result specifying number of arguments in argv
[in]argvstandard command line result containing the arguments.

Definition at line 1152 of file MagAOXApp.hpp.

◆ setEMGain() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setEMGain ( const mx::meta::trueFalseT< false > &  f)
inherited

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 684 of file stdCamera.hpp.

◆ setEMGain() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setEMGain ( const mx::meta::trueFalseT< true > &  t)
inherited

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 678 of file stdCamera.hpp.

◆ setEuidCalled()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::setEuidCalled
privateinherited

Set the effective user ID to the called value, i.e. the highest possible.

If setuid is set on the file, this will be super-user privileges.

Reference: http://pubs.opengroup.org/onlinepubs/009695399/functions/seteuid.html

Returns
0 on success
-1 on error from setuid().

Definition at line 1757 of file MagAOXApp.hpp.

Referenced by MagAOX::app::MagAOXApp< _useINDI >::elevatedPrivileges::elevate().

◆ setEuidReal()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::setEuidReal
privateinherited

Set the effective user ID to the real value, i.e. the file owner.

Reference: http://pubs.opengroup.org/onlinepubs/009695399/functions/seteuid.html

Returns
0 on success
-1 on error from setuid().

Definition at line 1776 of file MagAOXApp.hpp.

Referenced by MagAOX::app::MagAOXApp< _useINDI >::elevatedPrivileges::restore().

◆ setExpTime() [1/3]

int MagAOX::app::baslerCtrl::setExpTime ( )
inlineprotected

Set the Exposure Time. [stdCamera interface].

Sets the frame rate to m_expTimeSet.

Returns
0 on success
-1 on error

Definition at line 1015 of file baslerCtrl.hpp.

◆ setExpTime() [2/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setExpTime ( const mx::meta::trueFalseT< false > &  f)
inherited

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 703 of file stdCamera.hpp.

◆ setExpTime() [3/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setExpTime ( const mx::meta::trueFalseT< true > &  t)
inherited

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 697 of file stdCamera.hpp.

◆ setFPS() [1/3]

int MagAOX::app::baslerCtrl::setFPS ( )
inlineprotected

Set the framerate.

This uses the acquistion framerate feature. If m_fpsSet is 0, acuisition framerate is disabled and the resultant framerate is based solely on exposure time and ROI. If non-zero, then the framerate will be set to m_fpsSet and the camera will maintain this (as long as exposure time and ROI allow).

Returns
0 always

Definition at line 981 of file baslerCtrl.hpp.

◆ setFPS() [2/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setFPS ( const mx::meta::trueFalseT< false > &  f)
inherited

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 722 of file stdCamera.hpp.

◆ setFPS() [3/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setFPS ( const mx::meta::trueFalseT< true > &  t)
inherited

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 716 of file stdCamera.hpp.

◆ setNextROI() [1/3]

int MagAOX::app::baslerCtrl::setNextROI ( )
inlineprotected

Set the next ROI.

Returns
0 always

Definition at line 1168 of file baslerCtrl.hpp.

◆ setNextROI() [2/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setNextROI ( const mx::meta::trueFalseT< false > &  f)
inherited

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 854 of file stdCamera.hpp.

◆ setNextROI() [3/3]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setNextROI ( const mx::meta::trueFalseT< true > &  t)
inherited

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 848 of file stdCamera.hpp.

◆ setReadoutSpeed() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setReadoutSpeed ( const mx::meta::trueFalseT< false > &  f)
inherited

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 646 of file stdCamera.hpp.

◆ setReadoutSpeed() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setReadoutSpeed ( const mx::meta::trueFalseT< true > &  t)
inherited

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 640 of file stdCamera.hpp.

◆ setShutter() [1/2]

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

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 910 of file stdCamera.hpp.

◆ setShutter() [2/2]

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

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 902 of file stdCamera.hpp.

◆ setSigTermHandler()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::setSigTermHandler
privateinherited

Sets the handler for SIGTERM, SIGQUIT, and SIGINT.

Definition at line 1660 of file MagAOXApp.hpp.

◆ setSynchro() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setSynchro ( const mx::meta::trueFalseT< false > &  f)
inherited

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 741 of file stdCamera.hpp.

◆ setSynchro() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setSynchro ( const mx::meta::trueFalseT< true > &  t)
inherited

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 735 of file stdCamera.hpp.

◆ setTempControl() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setTempControl ( const mx::meta::trueFalseT< false > &  f)
inherited

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 627 of file stdCamera.hpp.

◆ setTempControl() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setTempControl ( const mx::meta::trueFalseT< true > &  t)
inherited

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 621 of file stdCamera.hpp.

◆ setTempSetPt() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setTempSetPt ( const mx::meta::trueFalseT< false > &  f)
inherited

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 608 of file stdCamera.hpp.

◆ setTempSetPt() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setTempSetPt ( const mx::meta::trueFalseT< true > &  t)
inherited

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 602 of file stdCamera.hpp.

◆ setupBasicConfig()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::setupBasicConfig
virtualinherited

The basic MagAO-X configuration setup method. Should not normally be overridden.

This method sets up the config system with the standard MagAO-X key=value pairs.

Though it is virtual, it should not normally be overridden unless you need to depart from the MagAO-X standard.

Setting up app specific config goes in setupConfig() implemented in the derived class.

Definition at line 1249 of file MagAOXApp.hpp.

◆ setupConfig() [1/4]

void MagAOX::app::baslerCtrl::setupConfig ( )
inlinevirtual

Setup the configuration system (called by MagAOXApp::setup())

Definition at line 266 of file baslerCtrl.hpp.

◆ setupConfig() [2/4]

int MagAOX::app::dev::telemeter< baslerCtrl >::setupConfig ( appConfigurator &  config)
inherited

Setup an application configurator for the device section.

Returns
0 on success.
-1 on error (nothing implemented yet)
Parameters
[in]configan application configuration to setup

Definition at line 87 of file telemeter.hpp.

◆ setupConfig() [3/4]

void MagAOX::app::dev::frameGrabber< baslerCtrl >::setupConfig ( mx::app::appConfigurator &  config)
inherited

Setup the configuration system.

This should be called in derivedT::setupConfig as

framegrabber<derivedT>::setupConfig(config);

with appropriate error checking.

Parameters
[out]configthe derived classes configurator

Definition at line 155 of file frameGrabber.hpp.

◆ setupConfig() [4/4]

void MagAOX::app::dev::stdCamera< baslerCtrl >::setupConfig ( mx::app::appConfigurator &  config)
inherited

Setup the configuration system.

This should be called in derivedT::setupConfig as

stdCamera<derivedT>::setupConfig(config);

with appropriate error checking.

Parameters
[out]configthe derived classes configurator

Definition at line 477 of file stdCamera.hpp.

◆ setVShiftSpeed() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setVShiftSpeed ( const mx::meta::trueFalseT< false > &  f)
inherited

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 665 of file stdCamera.hpp.

◆ setVShiftSpeed() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::setVShiftSpeed ( const mx::meta::trueFalseT< true > &  t)
inherited

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 659 of file stdCamera.hpp.

◆ shutdown()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::shutdown
inherited

Get the value of the shutdown flag.

Returns
the current value of m_shutdown

Definition at line 1146 of file MagAOXApp.hpp.

Referenced by MagAOX::app::streamWriter::swThreadExec().

◆ st_newCallBack_clearFSMAlert()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::st_newCallBack_clearFSMAlert ( void *  app,
const pcf::IndiProperty &  ipRecv 
)
staticprotectedinherited

The static callback function to be registered for requesting to clear the FSM alert.

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

Definition at line 3122 of file MagAOXApp.hpp.

◆ st_newCallBack_stdCamera()

int MagAOX::app::dev::stdCamera< baslerCtrl >::st_newCallBack_stdCamera ( void *  app,
const pcf::IndiProperty &  ipRecv 
)
staticinherited

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 586 of file stdCamera.hpp.

◆ startAcquisition()

int MagAOX::app::baslerCtrl::startAcquisition ( )

Definition at line 824 of file baslerCtrl.hpp.

◆ startINDI()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::startINDI
protectedinherited

Start INDI Communications.

Returns
0 on success
-1 on error. This is fatal.

Definition at line 2666 of file MagAOXApp.hpp.

◆ state() [1/2]

template<bool _useINDI>
stateCodes::stateCodeT MagAOX::app::MagAOXApp< _useINDI >::state
inherited

Get the current state code.

Returns
m_state

Definition at line 2082 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picamCtrl::acquireAndCheckValid(), MagAOX::app::qhyCtrl::acquireAndCheckValid(), MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::cameraSim::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::siglentSDG::appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::streamWriter::appLogic(), MagAOX::app::trippLitePDU::appLogic(), MagAOX::app::ttmModulator::appLogic(), MagAOX::app::xt1121Ctrl::appLogic(), MagAOX::app::xt1121DCDU::appLogic(), MagAOX::app::zaberCtrl::appLogic(), MagAOX::app::zylaCtrl::appLogic(), MagAOX::app::acronameUsbHub::appStartup(), MagAOX::app::andorCtrl::appStartup(), MagAOX::app::cameraSim::appStartup(), MagAOX::app::filterWheelCtrl::appStartup(), MagAOX::app::hsfwCtrl::appStartup(), MagAOX::app::magAOXMaths::appStartup(), MagAOX::app::qhyCtrl::appStartup(), MagAOX::app::smc100ccCtrl::appStartup(), MagAOX::app::sysMonitor::appStartup(), MagAOX::app::trippLitePDU::appStartup(), MagAOX::app::xt1121DCDU::appStartup(), MagAOX::app::zylaCtrl::appStartup(), MagAOX::app::andorCtrl::cameraSelect(), MagAOX::app::siglentSDG::changeAmp(), MagAOX::app::siglentSDG::changeFreq(), MagAOX::app::siglentSDG::changeOfst(), MagAOX::app::siglentSDG::changeOutp(), MagAOX::app::siglentSDG::changePhse(), MagAOX::app::siglentSDG::changeSync(), MagAOX::app::siglentSDG::changeWdth(), MagAOX::app::siglentSDG::changeWvtp(), MagAOX::app::picoMotorCtrl::channelThreadExec(), MagAOX::app::siglentSDG::checkSetup(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::cameraSim::configureAcquisition(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::picamCtrl::connect(), MagAOX::app::qhyCtrl::connect(), MagAOX::app::picamCtrl::getAcquisitionState(), MagAOX::app::smc100ccCtrl::getCtrlState(), MagAOX::app::qhyCtrl::getExpTime(), MagAOX::app::qhyCtrl::getTemp(), MagAOX::app::picamCtrl::getTemps(), MagAOX::app::filterWheelCtrl::home(), MagAOX::app::qhyCtrl::loadImageIntoStream(), MagAOX::app::hsfwCtrl::moveTo(), MagAOX::app::smc100ccCtrl::moveTo(), MagAOX::app::siglentSDG::queryBTWV(), MagAOX::app::siglentSDG::queryMDWV(), MagAOX::app::siglentSDG::querySWWV(), MagAOX::app::andorCtrl::reconfig(), MagAOX::app::ocam2KCtrl::reconfig(), MagAOX::app::picamCtrl::reconfig(), MagAOX::app::streamWriter::recordSavingState(), MagAOX::app::andorCtrl::setCropMode(), MagAOX::app::picamCtrl::setEMGain(), MagAOX::app::andorCtrl::setExpTime(), MagAOX::app::picamCtrl::setExpTime(), MagAOX::app::andorCtrl::setNextROI(), MagAOX::app::qhyCtrl::setNextROI(), MagAOX::app::andorCtrl::setReadoutSpeed(), MagAOX::app::andorCtrl::setShutter(), MagAOX::app::andorCtrl::setVShiftSpeed(), MagAOX::app::andorCtrl::startAcquisition(), MagAOX::app::cameraSim::startAcquisition(), MagAOX::app::qhyCtrl::startAcquisition(), MagAOX::app::hsfwCtrl::startHoming(), MagAOX::app::ocam2KCtrl::stateStringValid(), MagAOX::app::streamWriter::swThreadExec(), MagAOX::app::acronameUsbHub::updateOutletState(), MagAOX::app::trippLitePDU::updateOutletStates(), and MagAOX::app::siglentSDG::writeRead().

◆ state() [2/2]

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::state ( const stateCodes::stateCodeT s,
bool  stateAlert = false 
)
inherited

Set the current state code.

Todo:
move this to a function in stateCodes
Parameters
[in]sThe new application state
[in]stateAlert[optional] flag to set the alert state of the FSM property.

Definition at line 2088 of file MagAOXApp.hpp.

◆ stateLogged()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::stateLogged
inherited

Updates and returns the value of m_stateLogged. Will be 0 on first call after a state change, >0 afterwards.

This method exists to facilitate logging the reason for a state change once, but not logging it on subsequent event loops. Returns the current value upon entry, but updates before returning so that the next call returns the incremented value. Example usage:

if( connection_failed ) //some condition set this to true
{
if(!stateLogged()) log<text_log>("Not connected");
}
stateCodes::stateCodeT state()
Get the current state code.
Definition: MagAOXApp.hpp:2082
int stateLogged()
Updates and returns the value of m_stateLogged. Will be 0 on first call after a state change,...
Definition: MagAOXApp.hpp:2140
@ NOTCONNECTED
The application is not connected to the device or service.
Definition: stateCodes.hpp:44

In this example, the log entry is made the first time the state changes. If there are no changes to a different state in the mean time, then when the event loop gets here again and decides it is not connected, the log entry will not be made.

Returns
current value of m_stateLogged, that is the value before it is incremented.

Definition at line 2140 of file MagAOXApp.hpp.

Referenced by MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::siglentSDG::appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::trippLitePDU::appLogic(), MagAOX::app::ttmModulator::appLogic(), MagAOX::app::xt1121Ctrl::appLogic(), MagAOX::app::andorCtrl::cameraSelect(), MagAOX::app::picamCtrl::connect(), and MagAOX::app::qhyCtrl::connect().

◆ stateString() [1/2]

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::stateString ( const mx::meta::trueFalseT< false > &  f)
inherited

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 931 of file stdCamera.hpp.

◆ stateString() [2/2]

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::stateString ( const mx::meta::trueFalseT< true > &  t)
inherited

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 925 of file stdCamera.hpp.

◆ stateStringValid() [1/2]

bool MagAOX::app::dev::stdCamera< baslerCtrl >::stateStringValid ( const mx::meta::trueFalseT< false > &  f)
inherited

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 943 of file stdCamera.hpp.

◆ stateStringValid() [2/2]

bool MagAOX::app::dev::stdCamera< baslerCtrl >::stateStringValid ( const mx::meta::trueFalseT< true > &  t)
inherited

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 937 of file stdCamera.hpp.

◆ telem() [1/2]

int MagAOX::app::dev::telemeter< baslerCtrl >::telem
inherited

Make a telemetry recording, for an empty record.

Wrapper for logManager::log, which updates telT::lastRecord.

Template Parameters
logTthe log entry type
retvalthe value returned by this method.

Definition at line 80 of file telemeter.hpp.

◆ telem() [2/2]

int MagAOX::app::dev::telemeter< baslerCtrl >::telem ( const typename telT::messageT &  msg)
inherited

Make a telemetry recording.

Wrapper for logManager::log, which updates telT::lastRecord.

Template Parameters
logTthe log entry type
retvalthe value returned by this method.
Parameters
[in]msgthe data to log

Definition at line 70 of file telemeter.hpp.

◆ threadStart()

template<bool _useINDI>
template<class thisPtr , class Function >
int MagAOX::app::MagAOXApp< _useINDI >::threadStart ( std::thread &  thrd,
bool &  thrdInit,
pid_t &  tpid,
pcf::IndiProperty &  thProp,
int  thrdPrio,
const std::string &  cpuset,
const std::string &  thrdName,
thisPtr *  thrdThis,
Function &&  thrdStart 
)
inherited

Start a thread, using this class's privileges to set priority, etc.

The thread initialization synchronizer bool is set to true at the beginning of this function, then is set to false once all initialization is complete. The thread exec function should wait until this is false before doing anything except setting the pid. This is to avoid privilege escalation bugs.

The interface of the thread start function is:

static void impl::myThreadStart( impl * o )
{
o->myThreadExec(); //A member function which actually executes the thread
}

where impl is the derived class, and mThreadStart and myThreadExec are members of impl.

Returns
0 on success
-1 on error
Parameters
[out]thrdThe thread object to start executing
thrdInit[in/out] The thread initilization synchronizer.
tpid[in/out] The thread pid to be filled in by thrdStart immediately upon call
thProp[in/out] The INDI property to publish the thread details
[in]thrdPrioThe r/t priority to set for this thread
[in]cpusetthe cpuset to place this thread on. Ignored if "".
[in]thrdNameThe name of the thread (just for logging)
[in]thrdThisThe `this` pointer to pass to the thread starter function
[in]thrdStartThe thread starting function, a static function taking a `this` pointer as argument.

Definition at line 1950 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::appStartup(), MagAOX::app::streamWriter::appStartup(), and MagAOX::app::sysMonitor::appStartup().

◆ unlockPID()

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::unlockPID
protectedinherited

Remove the PID file.

Definition at line 1927 of file MagAOXApp.hpp.

◆ updateIfChanged() [1/4]

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged ( pcf::IndiProperty &  p,
const std::string &  el,
const char *  newVal,
pcf::IndiProperty::PropertyStateType  ipState = pcf::IndiProperty::Ok 
)
protectedinherited

Update an INDI property element value if it has changed.

Will only peform a SetProperty if the new element value has changed compared to the stored value, or if the property state has changed.

This comparison is done in the true type of the value.

This is a specialization for const char * to std::string.

For a property with multiple elements, you should use the vector version to minimize network traffic. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
p[in/out] The property containing the element to possibly update
[in]elThe element name
[in]newValthe new value

Definition at line 2891 of file MagAOXApp.hpp.

◆ updateIfChanged() [2/4]

template<bool _useINDI>
template<typename T >
void MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged ( pcf::IndiProperty &  p,
const std::string &  el,
const std::vector< T > &  newVals,
pcf::IndiProperty::PropertyStateType  ipState = pcf::IndiProperty::Ok 
)
protectedinherited

Update an INDI property if values have changed.

Will only peform a SetProperty if at least one value has changed compared to the stored value, or if the property state has changed.

Constructs the element names for each value as elX where X is the index of the vector.

This comparison is done in the true type of the value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
p[in/out] The property containing the element to possibly update
[in]elBeginning of each element name
[in]newValsthe new values
[in]ipState[optional] the new state

Definition at line 2916 of file MagAOXApp.hpp.

◆ updateIfChanged() [3/4]

template<bool _useINDI>
template<typename T >
void MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged ( pcf::IndiProperty &  p,
const std::string &  el,
const T &  newVal,
pcf::IndiProperty::PropertyStateType  ipState = pcf::IndiProperty::Ok 
)
protectedinherited

Update an INDI property element value if it has changed.

Will only peform a SetProperty if the new element value has changed compared to the stored value, or if the property state has changed.

This comparison is done in the true type of the value.

For a property with multiple elements, you should use the vector version to minimize network traffic.

Parameters
p[in/out] The property containing the element to possibly update
[in]elThe element name
[in]newValthe new value

Definition at line 2877 of file MagAOXApp.hpp.

Referenced by MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::ttmModulator::appLogic(), MagAOX::app::zaberCtrl::appLogic(), MagAOX::app::xt1121Ctrl::channelSetCallback(), MagAOX::app::cameraSim::checkNextROI(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::zylaCtrl::configureAcquisition(), MagAOX::app::xt1121Ctrl::getState(), MagAOX::app::ocam2KCtrl::getTemps(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), MagAOX::app::smc100ccCtrl::moveTo(), MagAOX::app::filterWheelCtrl::moveToRaw(), MagAOX::app::acronameUsbHub::onPowerOff(), MagAOX::app::ocam2KCtrl::onPowerOff(), MagAOX::app::siglentSDG::onPowerOff(), MagAOX::app::xt1121Ctrl::onPowerOff(), MagAOX::app::siglentSDG::queryBSWV(), MagAOX::app::siglentSDG::queryOUTP(), MagAOX::app::ocam2KCtrl::resetEMProtection(), MagAOX::app::picamCtrl::setExpTime(), MagAOX::app::trippLitePDU::updateOutletStates(), MagAOX::app::magAOXMaths::updateVals(), and MagAOX::app::sysMonitor::updateVals().

◆ updateIfChanged() [4/4]

template<bool _useINDI>
template<typename T >
void MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged ( pcf::IndiProperty &  p,
const std::vector< std::string > &  els,
const std::vector< T > &  newVals 
)
protectedinherited

Update an INDI property if values have changed.

Will only peform a SetProperty if at least one value has changed compared to the stored value, or if the property state has changed.

This comparison is done in the true type of the value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
p[in/out] The property containing the element to possibly update
[in]elsString vector of element names
[in]newValsthe new values

Definition at line 2936 of file MagAOXApp.hpp.

◆ updateINDI() [1/2]

int MagAOX::app::dev::frameGrabber< baslerCtrl >::updateINDI
inherited

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 270 of file frameGrabber.hpp.

◆ updateINDI() [2/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::updateINDI
inherited

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 952 of file stdCamera.hpp.

◆ updateSwitchIfChanged()

template<bool _useINDI>
void MagAOX::app::MagAOXApp< _useINDI >::updateSwitchIfChanged ( pcf::IndiProperty &  p,
const std::string &  el,
const pcf::IndiElement::SwitchStateType &  newVal,
pcf::IndiProperty::PropertyStateType  ipState = pcf::IndiProperty::Ok 
)
protectedinherited

◆ whilePowerOff() [1/2]

int MagAOX::app::dev::stdCamera< baslerCtrl >::whilePowerOff
inherited

Actions while powered off.

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

stdCamera<derivedT>::whilePowerOff();

with appropriate error checking.

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

Definition at line 556 of file stdCamera.hpp.

◆ whilePowerOff() [2/2]

template<bool _useINDI>
int MagAOX::app::MagAOXApp< _useINDI >::whilePowerOff
protectedvirtualinherited

Friends And Related Function Documentation

◆ dev::frameGrabber< baslerCtrl >

friend class dev::frameGrabber< baslerCtrl >
friend

Definition at line 1194 of file baslerCtrl.hpp.

◆ dev::stdCamera< baslerCtrl >

friend class dev::stdCamera< baslerCtrl >
friend

Definition at line 1194 of file baslerCtrl.hpp.

◆ dev::telemeter< baslerCtrl >

friend class dev::telemeter< baslerCtrl >
friend

Definition at line 1194 of file baslerCtrl.hpp.

Member Data Documentation

◆ c_frameGrabber_flippable

constexpr bool MagAOX::app::baslerCtrl::c_frameGrabber_flippable = true
staticconstexpr

app:dev config to tell framegrabber that this camera can be flipped

Definition at line 96 of file baslerCtrl.hpp.

◆ c_stdCamera_cropMode

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_cropMode = false
staticconstexpr

app:dev config to tell stdCamera not to expose Crop Mode controls

Definition at line 90 of file baslerCtrl.hpp.

◆ c_stdCamera_emGain

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_emGain = false
staticconstexpr

app::dev config to tell stdCamera to not expose EM gain controls

Definition at line 76 of file baslerCtrl.hpp.

◆ c_stdCamera_exptimeCtrl

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_exptimeCtrl = true
staticconstexpr

app::dev config to tell stdCamera to expose exposure time controls

Definition at line 78 of file baslerCtrl.hpp.

◆ c_stdCamera_fps

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_fps = true
staticconstexpr

app::dev config to tell stdCamera not to expose FPS status (ignored since fpsCtrl=true)

Definition at line 82 of file baslerCtrl.hpp.

◆ c_stdCamera_fpsCtrl

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_fpsCtrl = true
staticconstexpr

app::dev config to tell stdCamera to expose FPS controls

Definition at line 80 of file baslerCtrl.hpp.

◆ c_stdCamera_hasShutter

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_hasShutter = false
staticconstexpr

app:dev config to tell stdCamera to expose shutter controls

Definition at line 92 of file baslerCtrl.hpp.

◆ c_stdCamera_readoutSpeed

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_readoutSpeed = false
staticconstexpr

app::dev config to tell stdCamera not to expose readout speed controls

Definition at line 72 of file baslerCtrl.hpp.

◆ c_stdCamera_synchro

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_synchro = false
staticconstexpr

app::dev config to tell stdCamera to not expose synchro mode controls

Definition at line 84 of file baslerCtrl.hpp.

◆ c_stdCamera_temp

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_temp = true
staticconstexpr

app::dev config to tell stdCamera to expose temperature

Definition at line 70 of file baslerCtrl.hpp.

◆ c_stdCamera_tempControl

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_tempControl = false
staticconstexpr

app::dev config to tell stdCamera to not expose temperature controls

Definition at line 68 of file baslerCtrl.hpp.

◆ c_stdCamera_usesModes

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_usesModes = false
staticconstexpr

app:dev config to tell stdCamera not to expose mode controls

Definition at line 86 of file baslerCtrl.hpp.

◆ c_stdCamera_usesROI

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_usesROI = true
staticconstexpr

app:dev config to tell stdCamera to expose ROI controls

Definition at line 88 of file baslerCtrl.hpp.

◆ c_stdCamera_usesStateString

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_usesStateString = false
staticconstexpr

app::dev confg to tell stdCamera to expose the state string property

Definition at line 94 of file baslerCtrl.hpp.

◆ c_stdCamera_vShiftSpeed

constexpr bool MagAOX::app::baslerCtrl::c_stdCamera_vShiftSpeed = false
staticconstexpr

app:dev config to tell stdCamera not to expose vertical shift speed control

Definition at line 74 of file baslerCtrl.hpp.

◆ m_adcSpeed

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_adcSpeed
protectedinherited

Definition at line 291 of file stdCamera.hpp.

◆ m_allDefsReceived

template<bool _useINDI = true>
bool MagAOX::app::MagAOXApp< _useINDI >::m_allDefsReceived {false}
protectedinherited

Flag indicating that all registered Set properties have been updated since last Get.

Definition at line 576 of file MagAOXApp.hpp.

◆ m_atimes

mx::sigproc::circularBufferIndex<timespec, cbIndexT> MagAOX::app::dev::frameGrabber< baslerCtrl >::m_atimes
protectedinherited

Definition at line 122 of file frameGrabber.hpp.

◆ m_atimesD

std::vector<double> MagAOX::app::dev::frameGrabber< baslerCtrl >::m_atimesD
protectedinherited

Definition at line 125 of file frameGrabber.hpp.

◆ m_binXs

std::vector<int> MagAOX::app::baslerCtrl::m_binXs
protected

The allowed values of binning in X (horizontal)

Definition at line 114 of file baslerCtrl.hpp.

◆ m_binYs

std::vector<int> MagAOX::app::baslerCtrl::m_binYs
protected

The allowed values of binning in Y (vertical)

Definition at line 115 of file baslerCtrl.hpp.

◆ m_bits

int MagAOX::app::baslerCtrl::m_bits {10}
protected

The number of bits used by the camera.

Definition at line 107 of file baslerCtrl.hpp.

◆ m_calibDir

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_calibDir
protectedinherited

The path to calibration files for MagAOX.

Definition at line 94 of file MagAOXApp.hpp.

◆ m_camera

CBaslerUsbInstantCamera* MagAOX::app::baslerCtrl::m_camera {nullptr}
protected

The library camera handle.

Definition at line 131 of file baslerCtrl.hpp.

◆ m_cameraModes

cameraConfigMap MagAOX::app::dev::stdCamera< baslerCtrl >::m_cameraModes
protectedinherited

Map holding the possible camera mode configurations.

Definition at line 239 of file stdCamera.hpp.

◆ m_ccdTemp

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_ccdTemp
protectedinherited

The current temperature, in C.

Definition at line 258 of file stdCamera.hpp.

◆ m_ccdTempSetpt

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_ccdTempSetpt
protectedinherited

The desired temperature, in C.

Definition at line 260 of file stdCamera.hpp.

◆ m_circBuffLength

uint32_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_circBuffLength
protectedinherited

Length of the circular buffer, in frames.

Definition at line 93 of file frameGrabber.hpp.

◆ m_configBase

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_configBase
protectedinherited

The name of a base config class for this app (minus .conf).

Definition at line 92 of file MagAOXApp.hpp.

◆ m_configDir

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_configDir
protectedinherited

The path to configuration files for MagAOX.

Definition at line 90 of file MagAOXApp.hpp.

Referenced by MagAOX::app::ocam2KCtrl::configureAcquisition().

◆ m_configName

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_configName
protectedinherited

◆ m_cpusetPath

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_cpusetPath {MAGAOX_cpusetPath}
protectedinherited

Definition at line 421 of file MagAOXApp.hpp.

◆ m_cropMode

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_cropMode
protectedinherited

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

Definition at line 439 of file stdCamera.hpp.

◆ m_cropModeSet

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_cropModeSet
protectedinherited

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

Definition at line 440 of file stdCamera.hpp.

◆ m_currentFlip

int MagAOX::app::dev::frameGrabber< baslerCtrl >::m_currentFlip
protectedinherited

Definition at line 102 of file frameGrabber.hpp.

◆ m_currentROI

roi MagAOX::app::dev::stdCamera< baslerCtrl >::m_currentROI
protectedinherited

Definition at line 367 of file stdCamera.hpp.

◆ m_currImageTimestamp

timespec MagAOX::app::dev::frameGrabber< baslerCtrl >::m_currImageTimestamp
protectedinherited

The timestamp of the current image.

Definition at line 114 of file frameGrabber.hpp.

◆ m_dataType

uint8_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_dataType
protectedinherited

The ImageStreamIO type code.

Definition at line 107 of file frameGrabber.hpp.

◆ m_default_bin_x

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_default_bin_x
protectedinherited

Power-on ROI x binning.

Definition at line 399 of file stdCamera.hpp.

◆ m_default_bin_y

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_default_bin_y
protectedinherited

Power-on ROI y binning.

Definition at line 400 of file stdCamera.hpp.

◆ m_default_h

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_default_h
protectedinherited

Power-on ROI height.

Definition at line 398 of file stdCamera.hpp.

◆ m_default_w

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_default_w
protectedinherited

Power-on ROI width.

Definition at line 397 of file stdCamera.hpp.

◆ m_default_x

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_default_x
protectedinherited

Power-on ROI center x coordinate.

Definition at line 395 of file stdCamera.hpp.

◆ m_default_y

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_default_y
protectedinherited

Power-on ROI center y coordinate.

Definition at line 396 of file stdCamera.hpp.

◆ m_defaultFlip

int MagAOX::app::dev::frameGrabber< baslerCtrl >::m_defaultFlip
protectedinherited

Definition at line 98 of file frameGrabber.hpp.

◆ m_defaultReadoutSpeed

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_defaultReadoutSpeed
protectedinherited

The default readout speed of the camera.

Definition at line 245 of file stdCamera.hpp.

◆ m_defaultVShiftSpeed

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_defaultVShiftSpeed
protectedinherited

The default readout speed of the camera.

Definition at line 246 of file stdCamera.hpp.

◆ m_driverCtrlName

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_driverCtrlName
protectedinherited

Full path name of the INDI driver control FIFO.

This is currently only used to signal restarts.

Definition at line 587 of file MagAOXApp.hpp.

◆ m_driverInName

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_driverInName
protectedinherited

Full path name of the INDI driver input FIFO.

Definition at line 579 of file MagAOXApp.hpp.

◆ m_driverOutName

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_driverOutName
protectedinherited

Full path name of the INDI driver output FIFO.

Definition at line 582 of file MagAOXApp.hpp.

◆ m_dummy_c

char MagAOX::app::dev::frameGrabber< baslerCtrl >::m_dummy_c
protectedinherited

Definition at line 131 of file frameGrabber.hpp.

◆ m_dummy_cnt

uint64_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_dummy_cnt
protectedinherited

Definition at line 130 of file frameGrabber.hpp.

◆ m_dummy_ts

timespec MagAOX::app::dev::frameGrabber< baslerCtrl >::m_dummy_ts
protectedinherited

Definition at line 129 of file frameGrabber.hpp.

◆ m_emGain

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_emGain
protectedinherited

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

Definition at line 294 of file stdCamera.hpp.

◆ m_emGainSet

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_emGainSet
protectedinherited

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

Definition at line 295 of file stdCamera.hpp.

◆ m_euidCalled

template<bool _useINDI = true>
uid_t MagAOX::app::MagAOXApp< _useINDI >::m_euidCalled
privateinherited

The user id of the process as called (i.e. the higher privileged id of the owner, root if setuid).

Definition at line 315 of file MagAOXApp.hpp.

◆ m_euidReal

template<bool _useINDI = true>
uid_t MagAOX::app::MagAOXApp< _useINDI >::m_euidReal
privateinherited

The real user id of the proces (i.e. the lower privileged id of the user)

Definition at line 314 of file MagAOXApp.hpp.

◆ m_expTime

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_expTime
protectedinherited

The current exposure time, in seconds.

Definition at line 312 of file stdCamera.hpp.

◆ m_expTimeSet

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_expTimeSet
protectedinherited

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

Definition at line 313 of file stdCamera.hpp.

◆ m_fgCpuset

std::string MagAOX::app::dev::frameGrabber< baslerCtrl >::m_fgCpuset
protectedinherited

The cpuset to assign the framegrabber thread to. Not used if empty, the default.

Definition at line 91 of file frameGrabber.hpp.

◆ m_fgThread

std::thread MagAOX::app::dev::frameGrabber< baslerCtrl >::m_fgThread
protectedinherited

A separate thread for the actual framegrabbings.

Definition at line 230 of file frameGrabber.hpp.

◆ m_fgThreadID

pid_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_fgThreadID
protectedinherited

The ID of the framegrabber thread.

Definition at line 226 of file frameGrabber.hpp.

◆ m_fgThreadInit

bool MagAOX::app::dev::frameGrabber< baslerCtrl >::m_fgThreadInit
protectedinherited

Synchronizer for thread startup, to allow priority setting to finish.

Definition at line 224 of file frameGrabber.hpp.

◆ m_fgThreadPrio

int MagAOX::app::dev::frameGrabber< baslerCtrl >::m_fgThreadPrio
protectedinherited

Priority of the framegrabber thread, should normally be > 00.

Definition at line 90 of file frameGrabber.hpp.

◆ m_fgThreadProp

pcf::IndiProperty MagAOX::app::dev::frameGrabber< baslerCtrl >::m_fgThreadProp
protectedinherited

The property to hold the f.g. thread details.

Definition at line 228 of file frameGrabber.hpp.

◆ m_fps

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_fps
protectedinherited

The current FPS.

Definition at line 319 of file stdCamera.hpp.

◆ m_fpsSet

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_fpsSet
protectedinherited

The commanded fps, as set by user.

Definition at line 320 of file stdCamera.hpp.

◆ m_full_bin_x

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_bin_x
protectedinherited

The x-binning in the full ROI.

Definition at line 406 of file stdCamera.hpp.

◆ m_full_bin_y

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_bin_y
protectedinherited

The y-binning in the full ROI.

Definition at line 407 of file stdCamera.hpp.

◆ m_full_currbin_h

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_currbin_h
protectedinherited

The current-binning full ROI height.

Definition at line 412 of file stdCamera.hpp.

◆ m_full_currbin_w

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_currbin_w
protectedinherited

The current-binning full ROI width.

Definition at line 411 of file stdCamera.hpp.

◆ m_full_currbin_x

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_currbin_x
protectedinherited

The current-binning full ROI center x coordinate.

Definition at line 409 of file stdCamera.hpp.

◆ m_full_currbin_y

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_currbin_y
protectedinherited

The current-binning full ROI center y coordinate.

Definition at line 410 of file stdCamera.hpp.

◆ m_full_h

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_h
protectedinherited

The full ROI height.

Definition at line 405 of file stdCamera.hpp.

◆ m_full_w

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_w
protectedinherited

The full ROI width.

Definition at line 404 of file stdCamera.hpp.

◆ m_full_x

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_x
protectedinherited

The full ROI center x coordinate.

Definition at line 402 of file stdCamera.hpp.

◆ m_full_y

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_full_y
protectedinherited

The full ROI center y coordinate.

Definition at line 403 of file stdCamera.hpp.

◆ m_gitAlert

template<bool _useINDI = true>
bool MagAOX::app::MagAOXApp< _useINDI >::m_gitAlert {false}
privateinherited

Definition at line 472 of file MagAOXApp.hpp.

◆ m_height

uint32_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_height
protectedinherited

The height of the image, once deinterlaced etc.

Definition at line 105 of file frameGrabber.hpp.

◆ m_imageStream

IMAGE* MagAOX::app::dev::frameGrabber< baslerCtrl >::m_imageStream
protectedinherited

The ImageStreamIO shared memory buffer.

Definition at line 118 of file frameGrabber.hpp.

◆ m_incHs

std::vector<int> MagAOX::app::baslerCtrl::m_incHs
protected

The minimum value of the height for each Y-binning.

Definition at line 126 of file baslerCtrl.hpp.

◆ m_incWs

std::vector<int> MagAOX::app::baslerCtrl::m_incWs
protected

The minimum value of the width for each X-binning.

Definition at line 120 of file baslerCtrl.hpp.

◆ m_incXs

std::vector<int> MagAOX::app::baslerCtrl::m_incXs
protected

The allowed increment in X for each X-binning.

Definition at line 117 of file baslerCtrl.hpp.

◆ m_incYs

std::vector<int> MagAOX::app::baslerCtrl::m_incYs
protected

The allowed increment in Y for each Y-binning.

Definition at line 123 of file baslerCtrl.hpp.

◆ m_indiDriver

template<bool _useINDI = true>
indiDriver<MagAOXApp>* MagAOX::app::MagAOXApp< _useINDI >::m_indiDriver {nullptr}
inherited

The INDI driver wrapper. Constructed and initialized by execute, which starts and stops communications.

Todo:
instead of making this public, provide an accessor.

Definition at line 537 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::zaberCtrl::appLogic(), MagAOX::app::streamWriter::updateINDI(), and MagAOX::app::magAOXMaths::updateVals().

◆ m_indiMutex

template<bool _useINDI = true>
std::mutex MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex
inherited

Mutex for locking INDI communications.

Definition at line 540 of file MagAOXApp.hpp.

Referenced by MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::cameraSim::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::siglentSDG::appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::trippLitePDU::appLogic(), MagAOX::app::ttmModulator::appLogic(), MagAOX::app::xt1121Ctrl::appLogic(), MagAOX::app::xt1121DCDU::appLogic(), MagAOX::app::zaberCtrl::appLogic(), MagAOX::app::zylaCtrl::appLogic(), MagAOX::app::siglentSDG::changeAmp(), MagAOX::app::siglentSDG::changeFreq(), MagAOX::app::siglentSDG::changeOfst(), MagAOX::app::siglentSDG::changeOutp(), MagAOX::app::siglentSDG::changePhse(), MagAOX::app::siglentSDG::changeSync(), MagAOX::app::siglentSDG::changeWdth(), MagAOX::app::siglentSDG::changeWvtp(), MagAOX::app::xt1121Ctrl::channelSetCallback(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::zylaCtrl::configureAcquisition(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), MagAOX::app::picoMotorCtrl::newCallBack_picopos(), MagAOX::app::picoMotorCtrl::newCallBack_presetName(), MagAOX::app::acronameUsbHub::onPowerOff(), MagAOX::app::andorCtrl::onPowerOff(), MagAOX::app::ocam2KCtrl::onPowerOff(), MagAOX::app::picamCtrl::onPowerOff(), MagAOX::app::siglentSDG::onPowerOff(), MagAOX::app::xt1121Ctrl::onPowerOff(), MagAOX::app::zylaCtrl::onPowerOff(), MagAOX::app::filterWheelCtrl::onPowerOnConnect(), MagAOX::app::ocam2KCtrl::reconfig(), MagAOX::app::zylaCtrl::reconfig(), MagAOX::app::filterWheelCtrl::stop(), MagAOX::app::trippLitePDU::turnOutletOff(), MagAOX::app::xt1121DCDU::turnOutletOff(), MagAOX::app::trippLitePDU::turnOutletOn(), MagAOX::app::xt1121DCDU::turnOutletOn(), MagAOX::app::ocam2KCtrl::whilePowerOff(), and MagAOX::app::zylaCtrl::whilePowerOff().

◆ m_indiNewCallBacks

template<bool _useINDI = true>
std::unordered_map< std::string, indiCallBack> MagAOX::app::MagAOXApp< _useINDI >::m_indiNewCallBacks
protectedinherited

Map to hold the NewProperty indiCallBacks for this App, with fast lookup by property name.

The key for these is the property name.

Definition at line 567 of file MagAOXApp.hpp.

◆ m_indiP_clearFSMAlert

template<bool _useINDI = true>
pcf::IndiProperty MagAOX::app::MagAOXApp< _useINDI >::m_indiP_clearFSMAlert
protectedinherited

indi Property to clear an FSM alert.

Definition at line 948 of file MagAOXApp.hpp.

◆ m_indiP_cropMode

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_cropMode
protectedinherited

Property used to toggle crop mode on and off.

Definition at line 442 of file stdCamera.hpp.

◆ m_indiP_emGain

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_emGain
protectedinherited

Definition at line 301 of file stdCamera.hpp.

◆ m_indiP_exptime

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_exptime
protectedinherited

Definition at line 322 of file stdCamera.hpp.

◆ m_indiP_fps

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_fps
protectedinherited

Definition at line 324 of file stdCamera.hpp.

◆ m_indiP_frameSize

pcf::IndiProperty MagAOX::app::dev::frameGrabber< baslerCtrl >::m_indiP_frameSize
protectedinherited

Property used to report the current frame size.

Definition at line 258 of file frameGrabber.hpp.

◆ m_indiP_fullROI

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_fullROI
protectedinherited

Property used to preset the full ROI dimensions.

Definition at line 421 of file stdCamera.hpp.

◆ m_indiP_mode

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_mode
protectedinherited

Property used to report the current mode.

Definition at line 347 of file stdCamera.hpp.

◆ m_indiP_powerChannel

template<bool _useINDI = true>
pcf::IndiProperty MagAOX::app::MagAOXApp< _useINDI >::m_indiP_powerChannel
protectedinherited

INDI property used to communicate power state.

Definition at line 998 of file MagAOXApp.hpp.

◆ m_indiP_readoutSpeed

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_readoutSpeed
protectedinherited

Definition at line 298 of file stdCamera.hpp.

◆ m_indiP_reconfig

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_reconfig
protectedinherited

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

Definition at line 349 of file stdCamera.hpp.

◆ m_indiP_roi_bin_x

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_bin_x
protectedinherited

Property used to set the ROI x binning.

Definition at line 418 of file stdCamera.hpp.

◆ m_indiP_roi_bin_y

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_bin_y
protectedinherited

Property used to set the ROI y binning.

Definition at line 419 of file stdCamera.hpp.

◆ m_indiP_roi_check

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_check
protectedinherited

Property used to trigger checking the target ROI.

Definition at line 423 of file stdCamera.hpp.

◆ m_indiP_roi_default

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_default
protectedinherited

Property used to trigger setting the default and startup ROI.

Definition at line 431 of file stdCamera.hpp.

◆ m_indiP_roi_full

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_full
protectedinherited

Property used to trigger setting the full ROI.

Definition at line 427 of file stdCamera.hpp.

◆ m_indiP_roi_fullbin

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_fullbin
protectedinherited

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

Definition at line 428 of file stdCamera.hpp.

◆ m_indiP_roi_h

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_h
protectedinherited

Property used to set the ROI height.

Definition at line 417 of file stdCamera.hpp.

◆ m_indiP_roi_last

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_last
protectedinherited

Property used to trigger setting the last ROI.

Definition at line 430 of file stdCamera.hpp.

◆ m_indiP_roi_loadlast

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_loadlast
protectedinherited

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

Definition at line 429 of file stdCamera.hpp.

◆ m_indiP_roi_set

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_set
protectedinherited

Property used to trigger setting the ROI.

Definition at line 425 of file stdCamera.hpp.

◆ m_indiP_roi_w

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_w
protectedinherited

Property used to set the ROI width.

Definition at line 416 of file stdCamera.hpp.

◆ m_indiP_roi_x

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_x
protectedinherited

Property used to set the ROI x center coordinate.

Definition at line 414 of file stdCamera.hpp.

◆ m_indiP_roi_y

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_roi_y
protectedinherited

Property used to set the ROI x center coordinate.

Definition at line 415 of file stdCamera.hpp.

◆ m_indiP_shmimName

pcf::IndiProperty MagAOX::app::dev::frameGrabber< baslerCtrl >::m_indiP_shmimName
protectedinherited

Property used to report the shmim buffer name.

Definition at line 256 of file frameGrabber.hpp.

◆ m_indiP_shutter

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_shutter
protectedinherited

Property used to control the shutter, a switch.

Definition at line 453 of file stdCamera.hpp.

◆ m_indiP_shutterStatus

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_shutterStatus
protectedinherited

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

Property to report shutter status

Definition at line 452 of file stdCamera.hpp.

◆ m_indiP_state

template<bool _useINDI = true>
pcf::IndiProperty MagAOX::app::MagAOXApp< _useINDI >::m_indiP_state
protectedinherited

indi Property to report the application state.

Definition at line 945 of file MagAOXApp.hpp.

◆ m_indiP_stateString

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_stateString
protectedinherited

Definition at line 461 of file stdCamera.hpp.

◆ m_indiP_synchro

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_synchro
protectedinherited

Definition at line 335 of file stdCamera.hpp.

◆ m_indiP_temp

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_temp
protectedinherited

Definition at line 269 of file stdCamera.hpp.

◆ m_indiP_tempcont

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_tempcont
protectedinherited

Definition at line 270 of file stdCamera.hpp.

◆ m_indiP_tempstat

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_tempstat
protectedinherited

Definition at line 271 of file stdCamera.hpp.

◆ m_indiP_timing

pcf::IndiProperty MagAOX::app::dev::frameGrabber< baslerCtrl >::m_indiP_timing
protectedinherited

Definition at line 260 of file frameGrabber.hpp.

◆ m_indiP_vShiftSpeed

pcf::IndiProperty MagAOX::app::dev::stdCamera< baslerCtrl >::m_indiP_vShiftSpeed
protectedinherited

Definition at line 299 of file stdCamera.hpp.

◆ m_indiSetCallBacks

template<bool _useINDI = true>
std::unordered_map< std::string, indiCallBack> MagAOX::app::MagAOXApp< _useINDI >::m_indiSetCallBacks
protectedinherited

Map to hold the SetProperty indiCallBacks for this App, with fast lookup by property name.

The key for these is device.name

Definition at line 572 of file MagAOXApp.hpp.

◆ m_lastROI

roi MagAOX::app::dev::stdCamera< baslerCtrl >::m_lastROI
protectedinherited

Definition at line 369 of file stdCamera.hpp.

◆ m_latencyCircBuffMaxLength

uint16_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_latencyCircBuffMaxLength
protectedinherited

Maximum length of the latency measurement circular buffers.

Definition at line 95 of file frameGrabber.hpp.

◆ m_latencyCircBuffMaxTime

float MagAOX::app::dev::frameGrabber< baslerCtrl >::m_latencyCircBuffMaxTime
protectedinherited

Maximum time of the latency meaurement circular buffers.

Definition at line 96 of file frameGrabber.hpp.

◆ m_log

template<bool _useINDI>
MagAOXApp< _useINDI >::logManagerT MagAOX::app::MagAOXApp< _useINDI >::m_log
staticinherited

Definition at line 242 of file MagAOXApp.hpp.

◆ m_loopPause

template<bool _useINDI = true>
unsigned long MagAOX::app::MagAOXApp< _useINDI >::m_loopPause {MAGAOX_default_loopPause}
protectedinherited

The time in nanoseconds to pause the main loop. The appLogic() function of the derived class is called every m_loopPause nanoseconds. Default is 1,000,000,000 ns. Config with loopPause=X.

Definition at line 100 of file MagAOXApp.hpp.

Referenced by MagAOX::app::trippLitePDU::trippLitePDU(), MagAOX::app::siglentSDG::appLogic(), and MagAOX::app::xt1121Ctrl::appLogic().

◆ m_maxEMGain

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxEMGain
protectedinherited

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

Definition at line 296 of file stdCamera.hpp.

◆ m_maxExpTime

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxExpTime
protectedinherited

The maximum exposure time, used for INDI attributes.

Definition at line 309 of file stdCamera.hpp.

◆ m_maxFPS

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxFPS
protectedinherited

The maximum FPS, used for INDI attributes.

Definition at line 316 of file stdCamera.hpp.

◆ m_maxHs

std::vector<int> MagAOX::app::baslerCtrl::m_maxHs
protected

The minimum value of the height for each Y-binning.

Definition at line 127 of file baslerCtrl.hpp.

◆ m_maxInterval

double MagAOX::app::dev::telemeter< baslerCtrl >::m_maxInterval
inherited

The maximum interval, in seconds, between telemetry records. Default is 10.0 seconds.

Definition at line 58 of file telemeter.hpp.

◆ m_maxROIBinning_x

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxROIBinning_x
protectedinherited

Definition at line 388 of file stdCamera.hpp.

◆ m_maxROIBinning_y

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxROIBinning_y
protectedinherited

Definition at line 392 of file stdCamera.hpp.

◆ m_maxROIHeight

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxROIHeight
protectedinherited

Definition at line 384 of file stdCamera.hpp.

◆ m_maxROIWidth

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxROIWidth
protectedinherited

Definition at line 380 of file stdCamera.hpp.

◆ m_maxROIx

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxROIx
protectedinherited

Definition at line 372 of file stdCamera.hpp.

◆ m_maxROIy

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxROIy
protectedinherited

Definition at line 376 of file stdCamera.hpp.

◆ m_maxTemp

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_maxTemp
protectedinherited

Definition at line 255 of file stdCamera.hpp.

◆ m_maxWs

std::vector<int> MagAOX::app::baslerCtrl::m_maxWs
protected

The minimum value of the width for each X-binning.

Definition at line 121 of file baslerCtrl.hpp.

◆ m_minExpTime

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_minExpTime
protectedinherited

The minimum exposure time, used for INDI attributes.

Definition at line 308 of file stdCamera.hpp.

◆ m_minFPS

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_minFPS
protectedinherited

The minimum FPS, used for INDI attributes.

Definition at line 315 of file stdCamera.hpp.

◆ m_minHs

std::vector<int> MagAOX::app::baslerCtrl::m_minHs
protected

The minimum value of the height for each Y-binning.

Definition at line 125 of file baslerCtrl.hpp.

◆ m_minROIBinning_x

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_minROIBinning_x
protectedinherited

Definition at line 387 of file stdCamera.hpp.

◆ m_minROIBinning_y

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_minROIBinning_y
protectedinherited

Definition at line 391 of file stdCamera.hpp.

◆ m_minROIHeight

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_minROIHeight
protectedinherited

Definition at line 383 of file stdCamera.hpp.

◆ m_minROIWidth

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_minROIWidth
protectedinherited

Definition at line 379 of file stdCamera.hpp.

◆ m_minROIx

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_minROIx
protectedinherited

Definition at line 371 of file stdCamera.hpp.

◆ m_minROIy

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_minROIy
protectedinherited

Definition at line 375 of file stdCamera.hpp.

◆ m_minTemp

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_minTemp
protectedinherited

Definition at line 254 of file stdCamera.hpp.

◆ m_minWs

std::vector<int> MagAOX::app::baslerCtrl::m_minWs
protected

The minimum value of the width for each X-binning.

Definition at line 119 of file baslerCtrl.hpp.

◆ m_mna

double MagAOX::app::dev::frameGrabber< baslerCtrl >::m_mna
protectedinherited

Definition at line 133 of file frameGrabber.hpp.

◆ m_mnw

double MagAOX::app::dev::frameGrabber< baslerCtrl >::m_mnw
protectedinherited

Definition at line 136 of file frameGrabber.hpp.

◆ m_mnwa

double MagAOX::app::dev::frameGrabber< baslerCtrl >::m_mnwa
protectedinherited

Definition at line 139 of file frameGrabber.hpp.

◆ m_modeName

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_modeName
protectedinherited

The current mode name.

Definition at line 343 of file stdCamera.hpp.

◆ m_nextMode

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_nextMode
protectedinherited

The mode to be set by the next reconfiguration.

Definition at line 345 of file stdCamera.hpp.

◆ m_nextROI

roi MagAOX::app::dev::stdCamera< baslerCtrl >::m_nextROI
protectedinherited

Definition at line 368 of file stdCamera.hpp.

◆ m_pid

template<bool _useINDI = true>
pid_t MagAOX::app::MagAOXApp< _useINDI >::m_pid {0}
protectedinherited

This process's PID.

Definition at line 394 of file MagAOXApp.hpp.

◆ m_powerChannel

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_powerChannel
protectedinherited

The INDI property name of the channel controlling this device's power.

Definition at line 985 of file MagAOXApp.hpp.

◆ m_powerDevice

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_powerDevice
protectedinherited

The INDI device name of the power controller.

Definition at line 984 of file MagAOXApp.hpp.

◆ m_powerElement

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_powerElement {"state"}
protectedinherited

The INDI element name to monitor for this device's power state.

Definition at line 986 of file MagAOXApp.hpp.

◆ m_powerMgtEnabled

◆ m_powerOnCounter

template<bool _useINDI = true>
int MagAOX::app::MagAOXApp< _useINDI >::m_powerOnCounter {-1}
protectedinherited

Counts numer of loops after power on, implements delay for device bootup. If -1, then device was NOT powered off on app startup.

Definition at line 992 of file MagAOXApp.hpp.

Referenced by MagAOX::app::andorCtrl::onPowerOff(), MagAOX::app::ocam2KCtrl::onPowerOff(), and MagAOX::app::zylaCtrl::onPowerOff().

◆ m_powerOnWait

template<bool _useINDI = true>
unsigned long MagAOX::app::MagAOXApp< _useINDI >::m_powerOnWait {0}
protectedinherited

Time in sec to wait for device to boot after power on.

Definition at line 989 of file MagAOXApp.hpp.

Referenced by MagAOX::app::andorCtrl::andorCtrl(), MagAOX::app::ocam2KCtrl::ocam2KCtrl(), MagAOX::app::smc100ccCtrl::smc100ccCtrl(), and MagAOX::app::zylaCtrl::zylaCtrl().

◆ m_powerState

◆ m_powerTargetElement

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetElement {"target"}
protectedinherited

The INDI element name to monitor for this device's power state.

Definition at line 987 of file MagAOXApp.hpp.

◆ m_powerTargetState

◆ m_readoutSpeedName

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_readoutSpeedName
protectedinherited

The current readout speed name.

Definition at line 282 of file stdCamera.hpp.

◆ m_readoutSpeedNameLabels

std::vector<std::string> MagAOX::app::dev::stdCamera< baslerCtrl >::m_readoutSpeedNameLabels
protectedinherited

Definition at line 280 of file stdCamera.hpp.

◆ m_readoutSpeedNames

std::vector<std::string> MagAOX::app::dev::stdCamera< baslerCtrl >::m_readoutSpeedNames
protectedinherited

Definition at line 279 of file stdCamera.hpp.

◆ m_readoutSpeedNameSet

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_readoutSpeedNameSet
protectedinherited

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

Definition at line 283 of file stdCamera.hpp.

◆ m_reconfig

bool MagAOX::app::dev::frameGrabber< baslerCtrl >::m_reconfig
protectedinherited

Flag to set if a camera reconfiguration requires a framegrabber reset.

Definition at line 116 of file frameGrabber.hpp.

◆ m_self

template<bool _useINDI>
MagAOXApp< _useINDI > * MagAOX::app::MagAOXApp< _useINDI >::m_self = nullptr
staticprivateinherited

Static pointer to this (set in constructor). Used to test whether a a MagAOXApp is already instatiated (a fatal error) and used for getting out of static signal handlers.

Definition at line 291 of file MagAOXApp.hpp.

◆ m_serialNumber

std::string MagAOX::app::baslerCtrl::m_serialNumber
protected

The camera's identifying serial number.

Definition at line 105 of file baslerCtrl.hpp.

◆ m_shmimName

std::string MagAOX::app::dev::frameGrabber< baslerCtrl >::m_shmimName
protectedinherited

The name of the shared memory image, is used in /tmp/<shmimName>.im.shm. Derived classes should set a default.

Definition at line 88 of file frameGrabber.hpp.

◆ m_shutdown

◆ m_shutterState

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_shutterState
protectedinherited

Definition at line 450 of file stdCamera.hpp.

◆ m_shutterStatus

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_shutterStatus
protectedinherited

Definition at line 449 of file stdCamera.hpp.

◆ m_startupMode

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_startupMode
protectedinherited

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

Definition at line 241 of file stdCamera.hpp.

◆ m_startupTemp

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_startupTemp
protectedinherited

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

Definition at line 243 of file stdCamera.hpp.

◆ m_state

template<bool _useINDI = true>
stateCodes::stateCodeT MagAOX::app::MagAOXApp< _useINDI >::m_state {stateCodes::UNINITIALIZED}
privateinherited

The application's state. Never ever set this directly, use state(const stateCodeT & s).

Definition at line 468 of file MagAOXApp.hpp.

◆ m_stateAlert

template<bool _useINDI = true>
bool MagAOX::app::MagAOXApp< _useINDI >::m_stateAlert {false}
privateinherited

Definition at line 470 of file MagAOXApp.hpp.

◆ m_stateLogged

template<bool _useINDI = true>
int MagAOX::app::MagAOXApp< _useINDI >::m_stateLogged {0}
privateinherited

Counter and flag for use to log errors just once. Never ever access directly, use stateLogged().

Definition at line 474 of file MagAOXApp.hpp.

◆ m_stepExpTime

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepExpTime
protectedinherited

The maximum exposure time stepsize, used for INDI attributes.

Definition at line 310 of file stdCamera.hpp.

◆ m_stepFPS

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepFPS
protectedinherited

The FPS step size, used for INDI attributes.

Definition at line 317 of file stdCamera.hpp.

◆ m_stepROIBinning_x

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepROIBinning_x
protectedinherited

Definition at line 389 of file stdCamera.hpp.

◆ m_stepROIBinning_y

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepROIBinning_y
protectedinherited

Definition at line 393 of file stdCamera.hpp.

◆ m_stepROIHeight

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepROIHeight
protectedinherited

Definition at line 385 of file stdCamera.hpp.

◆ m_stepROIWidth

int MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepROIWidth
protectedinherited

Definition at line 381 of file stdCamera.hpp.

◆ m_stepROIx

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepROIx
protectedinherited

Definition at line 373 of file stdCamera.hpp.

◆ m_stepROIy

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepROIy
protectedinherited

Definition at line 377 of file stdCamera.hpp.

◆ m_stepTemp

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_stepTemp
protectedinherited

Definition at line 256 of file stdCamera.hpp.

◆ m_suid

template<bool _useINDI = true>
uid_t MagAOX::app::MagAOXApp< _useINDI >::m_suid
privateinherited

The save-set user id of the process.

Definition at line 316 of file MagAOXApp.hpp.

◆ m_synchro

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_synchro
protectedinherited

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

Definition at line 333 of file stdCamera.hpp.

◆ m_synchroSet

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_synchroSet
protectedinherited

Target status of m_synchro.

Definition at line 331 of file stdCamera.hpp.

◆ m_tel

Definition at line 56 of file telemeter.hpp.

◆ m_tempControlOnTarget

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_tempControlOnTarget
protectedinherited

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

Definition at line 265 of file stdCamera.hpp.

◆ m_tempControlStatus

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_tempControlStatus
protectedinherited

Whether or not temperature control is active.

Definition at line 262 of file stdCamera.hpp.

◆ m_tempControlStatusSet

bool MagAOX::app::dev::stdCamera< baslerCtrl >::m_tempControlStatusSet
protectedinherited

Desired state of temperature control.

Definition at line 263 of file stdCamera.hpp.

◆ m_tempControlStatusStr

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_tempControlStatusStr
protectedinherited

Camera specific description of temperature control status.

Definition at line 267 of file stdCamera.hpp.

◆ m_typeSize

size_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_typeSize
protectedinherited

The size of the type, in bytes. Result of sizeof.

Definition at line 108 of file frameGrabber.hpp.

◆ m_useINDI

template<bool _useINDI = true>
constexpr static bool MagAOX::app::MagAOXApp< _useINDI >::m_useINDI = _useINDI
staticconstexprprotectedinherited

Flag controlling whether INDI is used. If false, then no INDI code executes.

Definition at line 532 of file MagAOXApp.hpp.

◆ m_vara

double MagAOX::app::dev::frameGrabber< baslerCtrl >::m_vara
protectedinherited

Definition at line 134 of file frameGrabber.hpp.

◆ m_varw

double MagAOX::app::dev::frameGrabber< baslerCtrl >::m_varw
protectedinherited

Definition at line 137 of file frameGrabber.hpp.

◆ m_varwa

double MagAOX::app::dev::frameGrabber< baslerCtrl >::m_varwa
protectedinherited

Definition at line 140 of file frameGrabber.hpp.

◆ m_vshiftSpeed

float MagAOX::app::dev::stdCamera< baslerCtrl >::m_vshiftSpeed
protectedinherited

Definition at line 292 of file stdCamera.hpp.

◆ m_vShiftSpeedName

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_vShiftSpeedName
protectedinherited

The current vshift speed name.

Definition at line 288 of file stdCamera.hpp.

◆ m_vShiftSpeedNameLabels

std::vector<std::string> MagAOX::app::dev::stdCamera< baslerCtrl >::m_vShiftSpeedNameLabels
protectedinherited

Definition at line 286 of file stdCamera.hpp.

◆ m_vShiftSpeedNames

std::vector<std::string> MagAOX::app::dev::stdCamera< baslerCtrl >::m_vShiftSpeedNames
protectedinherited

Definition at line 285 of file stdCamera.hpp.

◆ m_vShiftSpeedNameSet

std::string MagAOX::app::dev::stdCamera< baslerCtrl >::m_vShiftSpeedNameSet
protectedinherited

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

Definition at line 289 of file stdCamera.hpp.

◆ m_watimesD

std::vector<double> MagAOX::app::dev::frameGrabber< baslerCtrl >::m_watimesD
protectedinherited

Definition at line 127 of file frameGrabber.hpp.

◆ m_width

uint32_t MagAOX::app::dev::frameGrabber< baslerCtrl >::m_width
protectedinherited

The width of the image, once deinterlaced etc.

Definition at line 104 of file frameGrabber.hpp.

◆ m_wtimes

mx::sigproc::circularBufferIndex<timespec, cbIndexT> MagAOX::app::dev::frameGrabber< baslerCtrl >::m_wtimes
protectedinherited

Definition at line 123 of file frameGrabber.hpp.

◆ m_wtimesD

std::vector<double> MagAOX::app::dev::frameGrabber< baslerCtrl >::m_wtimesD
protectedinherited

Definition at line 126 of file frameGrabber.hpp.

◆ m_xbinning

int MagAOX::app::dev::frameGrabber< baslerCtrl >::m_xbinning
protectedinherited

The x-binning according to the framegrabber.

Definition at line 110 of file frameGrabber.hpp.

◆ m_ybinning

int MagAOX::app::dev::frameGrabber< baslerCtrl >::m_ybinning
protectedinherited

The y-binning according to the framegrabber.

Definition at line 111 of file frameGrabber.hpp.

◆ MagAOXPath

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::MagAOXPath
protectedinherited

The base path of the MagAO-X system.

Definition at line 86 of file MagAOXApp.hpp.

Referenced by MagAOX::app::streamWriter::loadConfig().

◆ pidFileName

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::pidFileName
protectedinherited

The name of the PID file.

Definition at line 392 of file MagAOXApp.hpp.

◆ ptrGrabResult

CGrabResultPtr MagAOX::app::baslerCtrl::ptrGrabResult
protected

The result of an attempt to grab an image.

Definition at line 132 of file baslerCtrl.hpp.

◆ secretsPath

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::secretsPath
protectedinherited

Path to the secrets directory, where passwords, etc, are stored.

Definition at line 98 of file MagAOXApp.hpp.

◆ sysPath

template<bool _useINDI = true>
std::string MagAOX::app::MagAOXApp< _useINDI >::sysPath
protectedinherited

The path to the system directory, for PID file, etc.

Definition at line 96 of file MagAOXApp.hpp.

Referenced by MagAOX::app::picoMotorCtrl::readChannelCounts(), and MagAOX::app::picoMotorCtrl::writeChannelCounts().


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