#include <siglentSDG.hpp>


Public Types | |
| typedef XWC_DEFAULT_VERBOSITY | verboseT |
| typedef logger::logManager< MagAOXApp< _useINDI >, logFileRaw< verboseT > > | logManagerT |
| The log manager type. | |
| typedef XWC_DEFAULT_VERBOSITY | verboseT |
| typedef logger::logManager< siglentSDG, logFileRaw< verboseT > > | logManagerT |
| The log manager type. | |
Public Member Functions | |
| siglentSDG () | |
| Default c'tor. | |
| ~siglentSDG () noexcept | |
| D'tor, declared and defined for noexcept. | |
| virtual void | setupConfig () |
| Setup the configuration system (called by MagAOXApp::setup()) | |
| virtual void | loadConfig () |
| load the configuration system results (called by MagAOXApp::setup()) | |
| virtual int | appStartup () |
| Startup functions. | |
| virtual int | appLogic () |
| Implementation of the FSM for the Siglent SDG. | |
| virtual int | onPowerOff () |
| Implementation of the on-power-off FSM logic. | |
| virtual int | whilePowerOff () |
| Implementation of the while-powered-off FSM. | |
| virtual int | appShutdown () |
| Do any needed shutdown tasks. Currently nothing in this app. | |
| int | writeRead (std::string &strRead, const std::string &command) |
| Write a command to the device and get the response. Not mutex-ed. | |
| int | writeCommand (const std::string &commmand) |
| Write a command to the device. | |
| int | queryMDWV (std::string &state, int channel) |
| Send the MDWV? query and get the response state. | |
| int | querySWWV (std::string &state, int channel) |
| Send the SWWV? query and get the response state. | |
| int | queryBTWV (std::string &state, int channel) |
| Send the BTWV? query and get the response state. | |
| int | queryARWV (int &index, int channel) |
| Send the ARWV? query and get the response index. | |
| int | queryBSWV (int channel) |
| Send the BSWV? query for a channel. | |
| int | querySYNC (bool &sync, int channel) |
| Send the SYNC? query for a channel. | |
| int | checkSetup () |
| Check the setup is correct and safe for PI TTM control. | |
| int | normalizeSetup () |
| Normalize the setup, called during connection if checkSetup shows a problem, or on power-up. | |
| int | queryOUTP (int channel) |
| Send the OUTP? query for a channel. | |
| int | changeOutp (int channel, const std::string &newOutp) |
| Change the output status (on/off) of one channel. | |
| int | changeOutp (int channel, const pcf::IndiProperty &ipRecv) |
| Change the output status (on/off) of one channel in response to an INDI property. This locks the mutex. | |
| int | changeFreq (int channel, double newFreq) |
| Send a change frequency command to the device. | |
| int | changeFreq (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change frequency command to the device in response to an INDI property. This locks the mutex. | |
| int | changeAmp (int channel, double newAmp) |
| Send a change amplitude command to the device. | |
| int | changeAmp (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change amplitude command to the device in response to an INDI property. | |
| int | changeOfst (int channel, double newOfst) |
| Send a change offset command to the device. | |
| int | changeOfst (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change offset command to the device in response to an INDI property. | |
| int | changePhse (int channel, double newPhse) |
| Send a change phase command to the device. | |
| int | changePhse (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change phase command to the device in response to an INDI property. | |
| int | changeWdth (int channel, double newWdth) |
| Send a width command to the device. | |
| int | changeWdth (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change phase command to the device in response to an INDI property. | |
| int | changeWvtp (int channel, const std::string &newWvtp) |
| Send a change wavetype command to the device. | |
| int | changeWvtp (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change wavetype command to the device in response to an INDI property. | |
| int | changeSync (int channel, bool newSync) |
| Send a change sync command to the device. | |
| int | changeSync (int channel, const pcf::IndiProperty &ipRecv) |
| Send a change sync command to the device in response to an INDI property. | |
| virtual void | setDefaults (int argc, char **argv) |
| Set the paths for config files. | |
| virtual void | setupBasicConfig () |
| The basic MagAO-X configuration setup method. Should not normally be overridden. | |
| virtual void | loadBasicConfig () |
| The basic MagAO-X configuration processing method. Should not normally be overridden. | |
| virtual void | checkConfig () |
| Check for unused and unrecognized config options and settings. | |
| virtual int | execute () |
| The execute method implementing the standard main loop. Should not normally be overridden. | |
| int | telem (const typename telT::messageT &msg) |
| Make a telemetry recording. | |
| int | setupConfig (appConfigurator &config) |
| Setup an application configurator for the device section. | |
| int | loadConfig (appConfigurator &config) |
| Load the device section from an application configurator. | |
| int | checkRecordTimes (const telT &tel, telTs... tels) |
| Check the time of the last record for each telemetry type and make an entry if needed. | |
| int | checkRecordTimes (timespec &ts, const telT &tel, telTs... tels) |
| Worker function to actually perform the record time checking logic. | |
| int | checkRecordTimes (timespec &ts) |
| Empty function called at the end of the template list. | |
Telemeter Interface | |
| int | checkRecordTimes () |
| int | recordTelem (const telem_fxngen *) |
| int | recordParams (bool force=false) |
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. | |
Member Accessors | |
| std::string | basePath () |
| Get the. | |
| std::string | configName () |
| Get the config name. | |
| std::string | configDir () |
| Get the config directory. | |
| std::string | configBase () |
| Get the config base file. | |
| std::string | calibDir () |
| Get the calibration directory. | |
| std::string | sysPath () |
| Get the system path. | |
| std::string | secretsPath () |
| Get the secrets path. | |
| std::string | cpusetPath () |
| Get the cpuset path. | |
| unsigned long | loopPause () |
| Get the loop pause time. | |
| int | shutdown () |
| Get the value of the shutdown flag. | |
| std::string | driverInName () |
| Get the INDI input FIFO file name. | |
| std::string | driverOutName () |
| Get the INDI output FIFO file name. | |
| std::string | driverCtrlName () |
| Get the INDI control FIFO file name. | |
Public Attributes | |
| logManagerT | m_tel |
| double | m_maxInterval |
| The maximum interval, in seconds, between telemetry records. Default is 10.0 seconds. | |
Protected Attributes | |
| tty::telnetConn | m_telnetConn |
| The telnet connection manager. | |
| std::string | m_waveform |
| uint8_t | m_C1outp {0} |
| std::string m_clock; ///<INTernal or EXTernal | |
| double | m_C1frequency {0} |
| The output frequency of channel 1. | |
| double | m_C1vpp {0} |
| The peak-2-peak voltage of channel 1. | |
| double | m_C1vppDefault {0} |
| default value for vpp of channel 1 | |
| double | m_C1ofst {0} |
| The offset voltage of channel 1. | |
| double | m_C1phse {0} |
| The phase of channel 1 (SINE only) | |
| double | m_C1wdth {0} |
| The width of channel 1 (PULSE only) | |
| std::string | m_C1wvtp |
| The wave type of channel 1. | |
| double | m_C1ampMax {10.0} |
| The maximum voltage output for channel 1. | |
| uint8_t | m_C2outp {0} |
| The output status channel 2. | |
| double | m_C2frequency {0} |
| The output frequency of channel 2. | |
| double | m_C2vpp {0} |
| The peak-2-peak voltage of channel 2. | |
| double | m_C2vppDefault {0} |
| default value for vpp of channel 2 | |
| double | m_C2ofst {0} |
| The offset voltage of channel 2. | |
| double | m_C2phse {0} |
| The phase of channel 2 (SINE only) | |
| double | m_C2wdth {0} |
| The width of channel 2 (PULSE only) | |
| std::string | m_C2wvtp |
| The wave type of channel 2. | |
| double | m_C2ampMax {10.0} |
| The maximum voltage output for channel 2. | |
| double | m_C1frequency_tgt {-1} |
| double | m_C1vpp_tgt {-1} |
| double | m_C2frequency_tgt {-1} |
| double | m_C2vpp_tgt {-1} |
| bool | m_C1sync {false} |
| bool | m_C2sync {false} |
| std::string | m_basePath |
| The base path of the MagAO-X system. | |
| std::string | m_configName |
| The name of the configuration file (minus .conf). | |
| std::string | m_configDir |
| The path to configuration files for MagAOX. | |
| std::string | m_configBase |
| The name of a base config class for this app (minus .conf). | |
| std::string | m_calibDir |
| The path to calibration files for MagAOX. | |
| std::string | m_sysPath |
| The path to the system directory, for PID file, etc. | |
| std::string | m_secretsPath |
| Path to the secrets directory, where passwords, etc, are stored. | |
| std::string | m_cpusetPath { MAGAOX_cpusetPath } |
| Path to the cpusets mount. | |
| unsigned long | m_loopPause { MAGAOX_default_loopPause } |
| int | m_shutdown { 0 } |
| Flag to signal it's time to shutdown. When not 0, the main loop exits. | |
Configurable Parameters | |
| std::string | m_deviceAddr |
| The device address. | |
| std::string | m_devicePort |
| The device port. | |
| double | m_bootDelay {10} |
| Time in seconds it takes the device to boot. | |
| int | m_writeTimeOut {10000} |
| The timeout for writing to the device [msec]. | |
| int | m_readTimeOut {10000} |
| The timeout for reading from the device [msec]. | |
| double | m_C1setVoltage {5.0} |
| the set position voltage of Ch. 1. | |
| double | m_C2setVoltage {5.0} |
| the set position voltage of Ch. 2. | |
| bool | m_C1outpOn {false} |
| bool | m_C2outpOn {false} |
Private Member Functions | |
| int | clearFSMAlert () |
| Clear the FSM alert state. | |
| siglentSDG & | derived () |
| Access the derived class. | |
Private Attributes | |
| std::vector< double > | m_ampMax = {1.2801, 1.2801, 1.0201} |
| std::vector< double > | m_maxFreq = {0.0, 2000, 3000} |
| bool | m_poweredOn {false} |
| double | m_powerOnCounter {0} |
| Counts the number of loops since power-on, used to control logging of connect failures. | |
Static Private Attributes | |
| static constexpr double | cs_MaxOfst = 10.0 |
| static constexpr double | cs_MaxVolts = 10.0 |
Friends | |
| class | siglentSDG_test |
| class | dev::telemeter< siglentSDG > |
Signal Handling | |
| static MagAOXApp * | m_self = nullptr |
| int | setSigTermHandler () |
| Sets the handler for SIGTERM, SIGQUIT, and SIGINT. | |
| void | handlerSigTerm (int signum, siginfo_t *siginf, void *ucont) |
| Handles SIGTERM, SIGQUIT, and SIGINT. Sets m_shutdown to 1 and logs the signal. | |
| 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. | |
Privilege Management | |
| uid_t | m_euidReal |
| The real user id of the proces (i.e. the lower privileged id of the user) | |
| uid_t | m_euidCalled |
| uid_t | m_suid |
| The save-set user id of the process. | |
| int | setEuidCalled () |
| Set the effective user ID to the called value, i.e. the highest possible. | |
| int | setEuidReal () |
| Set the effective user ID to the real value, i.e. the file owner. | |
Application State | |
| stateCodes::stateCodeT | m_state { stateCodes::UNINITIALIZED } |
| bool | m_stateAlert { false } |
| bool | m_gitAlert { false } |
| int | m_stateLogged { 0 } |
| stateCodes::stateCodeT | state () |
| Get the current state code. | |
| void | state (const stateCodes::stateCodeT &s, bool stateAlert=false) |
| Set the current state code. | |
| bool | stateAlert () |
| Get the value of the state alert flag. | |
| bool | gitAlert () |
| Get the value of the git alert flag. | |
| int | stateLogged () |
| Updates and returns the value of m_stateLogged. Will be 0 on first call after a state change, >0 afterwards. | |
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. | |
| pid_t | m_pid { 0 } |
| This process's PID. | |
| int | lockPID () |
| int | unlockPID () |
| Remove the PID file. | |
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, indiCallBack > | m_indiNewCallBacks |
| Map to hold the NewProperty indiCallBacks for this App, with fast lookup by property name. | |
| std::unordered_map< std::string, indiCallBack > | m_indiSetCallBacks |
| Map to hold the SetProperty indiCallBacks for this App, with fast lookup by property name. | |
| bool | m_allDefsReceived { false } |
| Flag indicating that all registered Set properties have been updated since last Get. | |
| std::string | m_driverInName |
| Full path name of the INDI driver input FIFO. | |
| std::string | m_driverOutName |
| Full path name of the INDI driver output FIFO. | |
| std::string | m_driverCtrlName |
| Full path name of the INDI driver control FIFO. | |
| pcf::IndiProperty | m_indiP_state |
| indi Property to report the application state. | |
| pcf::IndiProperty | m_indiP_clearFSMAlert |
| indi Property to clear an FSM alert. | |
| 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. | |
| 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. | |
| 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. | |
| int | createROIndiNumber (pcf::IndiProperty &prop, const std::string &propName, const std::string &propLabel="", const std::string &propGroup="") |
| Create a ReadOnly INDI Number property. | |
| 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. | |
| 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. | |
| 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. | |
| int | createStandardIndiSelectionSw (pcf::IndiProperty &prop, const std::string &name, const std::vector< std::string > &elements, const std::string &label="", const std::string &group="") |
| int | registerIndiPropertyReadOnly (pcf::IndiProperty &prop) |
| Register an INDI property which is read only. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| void | resetIndiSetPropertyRetry (indiCallBack &callBack) |
| Reset retry tracking for a monitored INDI Set-property subscription. | |
| bool | indiSetPropertyShouldRequest (const indiCallBack &callBack, bool all, const std::chrono::steady_clock::time_point &now) const |
| Determine whether an unresolved Set-property subscription should be requested now. | |
| void | noteIndiSetPropertyRequested (indiCallBack &callBack, const std::chrono::steady_clock::time_point &now) |
| Update retry tracking after sending a GetProperties request for a monitored Set-property. | |
| void | sendGetPropertySetList (bool all=false) |
| void | handleDefProperty (const pcf::IndiProperty &ipRecv) |
| Handler for the DEF INDI properties notification. | |
| void | handleGetProperties (const pcf::IndiProperty &ipRecv) |
| Handler for the get INDI properties request. | |
| void | handleNewProperty (const pcf::IndiProperty &ipRecv) |
| Handler for the new INDI property request. | |
| void | handleSetProperty (const pcf::IndiProperty &ipRecv) |
| Handler for the set INDI property request. | |
| typedef std::pair< std::string, indiCallBack > | callBackValueType |
| Value type of the indiCallBack map. | |
| typedef std::unordered_map< std::string, indiCallBack >::iterator | callBackIterator |
| Iterator type of the indiCallBack map. | |
| typedef std::pair< callBackIterator, bool > | callBackInsertResult |
| Return type of insert on the indiCallBack map. | |
| static constexpr bool | m_useINDI = _useINDI |
| Flag controlling whether INDI is used. If false, then no INDI code executes. | |
| indiDriver< MagAOXApp > * | m_indiDriver { nullptr } |
| The INDI driver wrapper. Constructed and initialized by execute, which starts and stops communications. | |
| std::mutex | m_indiMutex |
| Mutex for locking INDI communications. | |
| std::mutex | m_indiCallBackMutex |
| Mutex for locking INDI callback maps and per-entry callback state. | |
| 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. | |
| int | createINDIFIFOS () |
| Create the INDI FIFOs. | |
| int | startINDI () |
| Start INDI Communications. | |
| 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. | |
| 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. | |
| 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. | |
| template<typename T > | |
| void | updateIfChanged (pcf::IndiProperty &p, const std::vector< std::string > &els, const std::vector< T > &newVals, pcf::IndiProperty::PropertyStateType newState=pcf::IndiProperty::Ok) |
| Update an INDI property if values have changed. | |
| 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. | |
| template<typename T > | |
| void | updatesIfChanged (pcf::IndiProperty &p, const std::vector< const char * > &els, const std::vector< T > &newVals, pcf::IndiProperty::PropertyStateType newState=pcf::IndiProperty::Ok) |
| 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. | |
| 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) | |
| int | sendNewProperty (const pcf::IndiProperty &ipSend) |
| Send a newProperty command to another device (using the INDI Client interface) | |
| int | sendNewStandardIndiToggle (const std::string &device, const std::string &property, bool onoff) |
| Send a new property commmand for a standard toggle switch. | |
| int | newCallBack_clearFSMAlert (const pcf::IndiProperty &ipRecv) |
| The callback called by the static version, to actually process the FSM Alert Clear request. | |
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 } |
| std::string | m_powerDevice |
| The INDI device name of the power controller. | |
| std::string | m_powerChannel |
| The INDI property name of the channel controlling this device's power. | |
| std::string | m_powerElement { "state" } |
| The INDI element name to monitor for this device's power state. | |
| std::string | m_powerTargetElement { "target" } |
| The INDI element name to monitor for this device's power state. | |
| unsigned long | m_powerOnWait { 55 } |
| Default time in sec to wait for device to boot after power on. | |
| int | m_powerState { -1 } |
| Current power state, 1=On, 0=Off, -1=Unk. | |
| int | m_powerTargetState { -1 } |
| Current target power state, 1=On, 0=Off, -1=Unk. | |
| pcf::IndiProperty | m_indiP_powerChannel |
| INDI property used to communicate power state. | |
| int | powerState () |
| Returns the current power state. | |
| int | powerStateTarget () |
| Returns the target power state. | |
| INDI_SETCALLBACK_DECL (MagAOXApp, m_indiP_powerChannel) | |
| bool | powerOnWaitElapsed () |
| This method tests whether the power on wait time has elapsed. | |
Logging | |
| void | logMessage (bufferPtrT &b) |
| Handle a log message from the logging system. | |
| static logManagerT | m_log |
| template<typename logT , int retval = 0> | |
| static int | log (const typename logT::messageT &msg, logPrioT level=logPrio::LOG_DEFAULT) |
| Make a log entry. | |
| template<typename logT , int retval = 0> | |
| static int | log (logPrioT level=logPrio::LOG_DEFAULT) |
| Make a log entry. | |
| static void | configLog (const std::string &name, const int &code, const std::string &value, const std::string &source) |
| Callback for config system logging. | |
MagAO-X application to control a Siglent SDG series function generator
need to recognize signals in tty polls and not return errors, etc.
need to implement an onDisconnect() to update values to unknown indicators.
need a frequency-dependent max amp facility.
convert to ioDevice
need telnet device, with optional username/password.
Definition at line 26 of file siglentSDG.hpp.
|
inherited |
Return type of insert on the indiCallBack map.
Definition at line 701 of file MagAOXApp.hpp.
|
inherited |
Iterator type of the indiCallBack map.
Definition at line 698 of file MagAOXApp.hpp.
|
inherited |
Value type of the indiCallBack map.
Definition at line 695 of file MagAOXApp.hpp.
|
inherited |
The log manager type.
Definition at line 79 of file telemeter.hpp.
|
inherited |
The log manager type.
Definition at line 185 of file MagAOXApp.hpp.
|
inherited |
Definition at line 76 of file telemeter.hpp.
|
inherited |
Definition at line 182 of file MagAOXApp.hpp.
|
inline |
Default c'tor.
Definition at line 447 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::m_powerMgtEnabled, MagAOX::tty::telnetConn::m_prompt, and m_telnetConn.
|
inlinenoexcept |
D'tor, declared and defined for noexcept.
Definition at line 111 of file siglentSDG.hpp.
|
staticprivateinherited |
The handler called when SIGTERM, SIGQUIT, or SIGINT is received. Just a wrapper for handlerSigTerm.
| [in] | signum | specifies the signal. |
| [in] | siginf | ignored by MagAOXApp |
| [in] | ucont | ignored by MagAOXApp |
Definition at line 2219 of file MagAOXApp.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::handlerSigTerm().
|
inlinevirtual |
Implementation of the FSM for the Siglent SDG.
Implements MagAOX::app::MagAOXApp< _useINDI >.
Definition at line 639 of file siglentSDG.hpp.
References checkSetup(), MagAOX::app::stateCodes::codeText(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::tty::telnetConn::connect(), MagAOX::app::stateCodes::CONNECTED, MagAOX::app::stateCodes::ERROR, INDI_IDLE, INDI_OK, MagAOX::app::lock(), MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_CRITICAL, flatlogs::logPrio::LOG_NOTICE, m_bootDelay, m_C1outp, m_C1sync, m_C2outp, m_C2sync, m_deviceAddr, m_devicePort, MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, m_indiP_C1sync, m_indiP_C2sync, MagAOX::app::MagAOXApp< _useINDI >::m_loopPause, m_poweredOn, m_powerOnCounter, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_readTimeOut, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::tty::telnetConn::m_strRead, m_telnetConn, m_writeTimeOut, MagAOX::tty::telnetConn::noLogin(), normalizeSetup(), MagAOX::app::stateCodes::NOTCONNECTED, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::POWERON, queryBSWV(), queryOUTP(), MagAOX::tty::telnetConn::read(), MagAOX::app::stateCodes::READY, recordParams(), SDG_PARSEERR_WVTP, MagAOX::app::MagAOXApp< _useINDI >::state(), MagAOX::app::MagAOXApp< _useINDI >::stateLogged(), MagAOX::app::MagAOXApp< _useINDI >::updateSwitchIfChanged(), and MagAOX::tty::telnetConn::write().
|
inlinevirtual |
Do any needed shutdown tasks. Currently nothing in this app.
Implements MagAOX::app::MagAOXApp< _useINDI >.
Definition at line 1014 of file siglentSDG.hpp.
References MagAOX::app::dev::telemeter< derivedT >::appShutdown().
|
inlinevirtual |
Startup functions.
Setsup the INDI vars.
Implements MagAOX::app::MagAOXApp< _useINDI >.
Definition at line 507 of file siglentSDG.hpp.
References CREATE_REG_INDI_NEW_NUMBERF, MagAOX::app::MagAOXApp< _useINDI >::createStandardIndiToggleSw(), MagAOX::app::MagAOXApp< _useINDI >::log(), m_indiP_C1amp, m_indiP_C1ampvrms, m_indiP_C1freq, m_indiP_C1hlev, m_indiP_C1llev, m_indiP_C1ofst, m_indiP_C1outp, m_indiP_C1peri, m_indiP_C1phse, m_indiP_C1sync, m_indiP_C1wdth, m_indiP_C1wvtp, m_indiP_C2amp, m_indiP_C2ampvrms, m_indiP_C2freq, m_indiP_C2hlev, m_indiP_C2llev, m_indiP_C2ofst, m_indiP_C2outp, m_indiP_C2peri, m_indiP_C2phse, m_indiP_C2sync, m_indiP_C2wdth, m_indiP_C2wvtp, m_indiP_status, m_waveform, REG_INDI_NEWPROP, REG_INDI_NEWPROP_NOCB, and MagAOX::app::MagAOXApp< _useINDI >::registerIndiPropertyNew().
|
inherited |
Get the.
Definition at line 3976 of file MagAOXApp.hpp.
Referenced by MagAOX::app::streamWriter::loadConfig().
|
inherited |
Get the calibration directory.
Definition at line 4000 of file MagAOXApp.hpp.
Send a change amplitude command to the device in response to an INDI property.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new amplitude [V p2p] |
Definition at line 2035 of file siglentSDG.hpp.
References changeAmp(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a change amplitude command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newAmp | The requested new amplitude [V p2p] |
Definition at line 1942 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, flatlogs::logPrio::LOG_WARNING, m_ampMax, m_C1ampMax, m_C1frequency_tgt, m_C1ofst, m_C1vpp_tgt, m_C2ampMax, m_C2frequency_tgt, m_C2ofst, m_C2vpp_tgt, m_maxFreq, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_waveform, MagAOX::app::makeCommand(), recordParams(), and writeCommand().
Referenced by changeAmp(), and normalizeSetup().
Send a change frequency command to the device in response to an INDI property. This locks the mutex.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new frequency [Hz] |
Definition at line 1909 of file siglentSDG.hpp.
References changeFreq(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a change frequency command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newFreq | The requested new frequency [Hz] |
Definition at line 1819 of file siglentSDG.hpp.
References MagAOX::app::autoPulseWidthFromFrequency(), changeWdth(), MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, flatlogs::logPrio::LOG_WARNING, m_ampMax, m_C1frequency_tgt, m_C1vpp_tgt, m_C2frequency_tgt, m_C2vpp_tgt, m_maxFreq, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_waveform, MagAOX::app::makeCommand(), recordParams(), and writeCommand().
Referenced by changeFreq(), and normalizeSetup().
Send a change offset command to the device in response to an INDI property.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new offset [V p2p] |
Definition at line 2123 of file siglentSDG.hpp.
References changeOfst(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a change offset command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newOfst | The requested new offset [V p2p] |
Definition at line 2069 of file siglentSDG.hpp.
References cs_MaxOfst, MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, flatlogs::logPrio::LOG_WARNING, m_C1ampMax, m_C1vpp, m_C2ampMax, m_C2vpp, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::makeCommand(), and writeCommand().
Referenced by changeOfst(), and normalizeSetup().
Change the output status (on/off) of one channel in response to an INDI property. This locks the mutex.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested output state [On/Off] |
Definition at line 1785 of file siglentSDG.hpp.
References changeOutp(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Change the output status (on/off) of one channel.
| [in] | channel | the channel to send the command to. |
| [in] | newOutp | The requested output state [On/Off] |
Definition at line 1742 of file siglentSDG.hpp.
References changeSync(), MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::makeCommand(), recordParams(), and writeCommand().
Referenced by changeOutp(), and normalizeSetup().
Send a change phase command to the device in response to an INDI property.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new phase [deg] |
Definition at line 2185 of file siglentSDG.hpp.
References changePhse(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a change phase command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newPhse | The requested new phase [deg] |
Definition at line 2157 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, flatlogs::logPrio::LOG_WARNING, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_waveform, MagAOX::app::makeCommand(), and writeCommand().
Referenced by changePhse(), and normalizeSetup().
Send a change sync command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newSync | The requested new sync state |
Definition at line 2339 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::makeCommand(), recordParams(), and writeCommand().
Referenced by changeOutp(), and changeSync().
Send a change sync command to the device in response to an INDI property.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new sync state |
Definition at line 2368 of file siglentSDG.hpp.
References changeSync(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a change phase command to the device in response to an INDI property.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new width [s] |
Definition at line 2247 of file siglentSDG.hpp.
References changeWdth(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a width command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newWdth | The requested new width [s] |
Definition at line 2219 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, flatlogs::logPrio::LOG_WARNING, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_waveform, MagAOX::app::makeCommand(), and writeCommand().
Referenced by changeFreq(), changeWdth(), and normalizeSetup().
Send a change wavetype command to the device in response to an INDI property.
| [in] | channel | the channel to send the command to. |
| [in] | ipRecv | INDI property containing the requested new wavetype |
Definition at line 2305 of file siglentSDG.hpp.
References changeWvtp(), MagAOX::app::stateCodes::CONFIGURING, MagAOX::app::ipRecv, MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, MagAOX::app::stateCodes::OPERATING, MagAOX::app::stateCodes::READY, and MagAOX::app::MagAOXApp< _useINDI >::state().
Send a change wavetype command to the device.
| [in] | channel | the channel to send the command to. |
| [in] | newWvtp | The requested new wavetype |
Definition at line 2282 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_NOTICE, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::makeCommand(), and writeCommand().
Referenced by changeWvtp(), and normalizeSetup().
|
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 1658 of file MagAOXApp.hpp.
References MagAOX::app::it, flatlogs::logPrio::LOG_CRITICAL, flatlogs::logPrio::LOG_WARNING, and MagAOX::app::msg.
|
inline |
Definition at line 2522 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log().
|
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.
| [in] | tel | [unused] object of the telemetry type to record |
| [in] | tels | [unused] objects of the additional telemetry types to record |
Definition at line 156 of file telemeter.hpp.
|
inherited |
Empty function called at the end of the template list.
| [in] | ts | [unused] the timestamp that records are compared to |
Definition at line 177 of file telemeter.hpp.
|
inherited |
Worker function to actually perform the record time checking logic.
Recursively calls itself until the variadic template list is exhausted.
| [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 167 of file telemeter.hpp.
|
inline |
Check the setup is correct and safe for PI TTM control.
Definition at line 1508 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), m_C1sync, m_C2sync, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, queryARWV(), queryBTWV(), queryMDWV(), querySWWV(), querySYNC(), and MagAOX::app::MagAOXApp< _useINDI >::state().
Referenced by appLogic().
|
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 2692 of file MagAOXApp.hpp.
References INDI_ALERT, INDI_BUSY, INDI_IDLE, INDI_OK, and flatlogs::logPrio::LOG_WARNING.
|
inherited |
Get the config base file.
Definition at line 3994 of file MagAOXApp.hpp.
|
inherited |
Get the config directory.
Definition at line 3988 of file MagAOXApp.hpp.
Referenced by libXWCTest::xInstGraphTest::TEST_CASE().
|
staticprotectedinherited |
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.
| [in] | name | The name of the config value |
| [in] | code | numeric code specifying the type |
| [in] | value | the value read by the config system |
| [in] | source | the source of the value. |
Definition at line 2139 of file MagAOXApp.hpp.
|
inherited |
Get the config name.
Definition at line 3982 of file MagAOXApp.hpp.
Referenced by MagAOX::app::andorCtrl::loadConfig(), MagAOX::app::cred2Ctrl::loadConfigImpl(), libXWCTest::appTest::MagAOXAppTest::SCENARIO(), TEST_CASE(), and MagAOX::app::andorCtrl::writeConfig().
|
inherited |
Get the cpuset path.
Definition at line 4018 of file MagAOXApp.hpp.
|
protectedinherited |
Create the INDI FIFOs.
Changes permissions to max available and creates the FIFOs at the configured path.
Definition at line 3229 of file MagAOXApp.hpp.
References flatlogs::logPrio::LOG_CRITICAL, and MAGAOX_driverFIFORelPath.
|
inherited |
Create a ReadOnly INDI Number property.
| [out] | prop | the property to create and setup |
| [in] | propName | the 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 2847 of file MagAOXApp.hpp.
Referenced by MagAOX::app::cred2Ctrl::appStartup(), MagAOX::app::picamCtrl::appStartup(), and MagAOX::app::zaberCtrl::appStartup().
|
inherited |
Create a standard ReadOnly INDI Text property, with at least one element.
| [out] | prop | the property to create and setup |
| [in] | propName | the name of the property |
| [in] | elName | the 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 2764 of file MagAOXApp.hpp.
|
inherited |
Create a standard R/W INDI Number property with target and current elements.
| [out] | prop | the property to create and setup |
| [in] | name | the name of the property |
| [in] | min | the minimum value for the elements, applied to both target and current |
| [in] | max | the minimum value for the elements, applied to both target and current |
| [in] | step | the step size for the elements, applied to both target and current |
| [in] | format | the _ 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 2800 of file MagAOXApp.hpp.
Referenced by MagAOX::app::picoMotorCtrl::appStartup().
|
inherited |
Create a standard R/W INDI switch with a single request element.
This switch is intended to function like a momentary switch.
| [out] | prop | the property to create and setup |
| [in] | name | the 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 2903 of file MagAOXApp.hpp.
Referenced by MagAOX::app::ocam2KCtrl::appStartup().
|
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.
| [out] | prop | the property to create and setup |
| [in] | name | the name of the property, |
| [in] | elements | the 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 2978 of file MagAOXApp.hpp.
|
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.
| [out] | prop | the property to create and setup |
| [in] | name | the name of the property, |
| [in] | elements | the element names to give to the switches |
| [in] | elementLabels | the 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 2933 of file MagAOXApp.hpp.
Referenced by MagAOX::app::picoMotorCtrl::appStartup().
|
inherited |
Create a standard R/W INDI Text property with target and current elements.
| [out] | prop | the property to create and setup |
| [in] | propName | the 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 2736 of file MagAOXApp.hpp.
|
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.
| [out] | prop | the property to create and setup |
| [in] | name | the 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 2873 of file MagAOXApp.hpp.
Referenced by appStartup(), MagAOX::app::streamWriter::appStartup(), and MagAOX::app::sysMonitor::appStartup().
|
inlineprivateinherited |
Access the derived class.
Definition at line 181 of file telemeter.hpp.
|
inherited |
Get the INDI control FIFO file name.
Definition at line 4048 of file MagAOXApp.hpp.
|
inherited |
Get the INDI input FIFO file name.
Definition at line 4036 of file MagAOXApp.hpp.
|
inherited |
Get the INDI output FIFO file name.
Definition at line 4042 of file MagAOXApp.hpp.
|
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:
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.
Definition at line 1725 of file MagAOXApp.hpp.
References flatlogs::logPrio::LOG_CRITICAL.
|
inherited |
Get the value of the git alert flag.
Definition at line 2671 of file MagAOXApp.hpp.
|
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.
| [in] | ipRecv | The property being sent. |
Definition at line 3437 of file MagAOXApp.hpp.
References MagAOX::app::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.
| [in] | ipRecv | The property being requested. |
Definition at line 3443 of file MagAOXApp.hpp.
References MagAOX::app::ipRecv, MagAOX::app::it, and MagAOX::app::lock().
|
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.
| [in] | ipRecv | The property being changed. |
Definition at line 3530 of file MagAOXApp.hpp.
References MagAOX::app::ipRecv, MagAOX::app::it, and MagAOX::app::lock().
Referenced by libXWCTest::appTest::MagAOXAppTest::SCENARIO().
|
privateinherited |
Handles SIGTERM, SIGQUIT, and SIGINT. Sets m_shutdown to 1 and logs the signal.
| [in] | signum | specifies the signal. |
| [in] | siginf | ignored by MagAOXApp |
| [in] | ucont | ignored by MagAOXApp |
Definition at line 2225 of file MagAOXApp.hpp.
Referenced by MagAOX::app::MagAOXApp< _useINDI >::_handlerSigTerm().
|
inherited |
Handler for the set INDI property request.
This is called by m_indiDriver's indiDriver::handleSetProperties.
| [in] | ipRecv | The property being changed. |
Definition at line 3562 of file MagAOXApp.hpp.
References MagAOX::app::ipRecv, MagAOX::app::it, and MagAOX::app::lock().
Referenced by MagAOX::app::xInstGraph::igHandleSetProperty().
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1amp | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1freq | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1ofst | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1outp | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1phse | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1sync | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1wdth | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C1wvtp | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2amp | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2freq | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2ofst | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2outp | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2phse | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2sync | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2wdth | |||
| ) |
| MagAOX::app::siglentSDG::INDI_NEWCALLBACK_DECL | ( | siglentSDG | , |
| m_indiP_C2wvtp | |||
| ) |
|
inherited |
|
inlineinherited |
Determine whether an unresolved Set-property subscription should be requested now.
| [in] | callBack | the subscription retry state to evaluate |
| [in] | all | if true, force an immediate refresh regardless of retry timing |
| [in] | now | the current monotonic time for scheduling |
Definition at line 3182 of file MagAOXApp.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_defReceived, and MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_nextRetry.
|
protectedinherited |
Get the target element value from an new property.
| [out] | localProperty | The local property to update |
| [out] | localTarget | The local value to update |
| [in] | remoteProperty | the new property received |
| [in] | setBusy | [optional] set property to busy if true |
Definition at line 3707 of file MagAOXApp.hpp.
References INDI_BUSY, and flatlogs::logPrio::LOG_ERROR.
Referenced by MagAOX::app::picoMotorCtrl::newCallBack_picopos().
|
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 1595 of file MagAOXApp.hpp.
References INDI_SETCALLBACK, flatlogs::logPrio::LOG_CRITICAL, and flatlogs::logPrio::LOG_ERROR.
|
inlinevirtual |
load the configuration system results (called by MagAOXApp::setup())
config(m_clock, "fxngen.clock");
Definition at line 481 of file siglentSDG.hpp.
References MagAOX::app::dev::telemeter< derivedT >::loadConfig(), m_C1ampMax, m_C1ofst, m_C1outpOn, m_C1vppDefault, m_C2ampMax, m_C2ofst, m_C2outpOn, m_C2vppDefault, m_deviceAddr, m_devicePort, m_readTimeOut, m_waveform, and m_writeTimeOut.
|
inherited |
Load the device section from an application configurator.
| [in] | config | an application configuration from which to load values |
Definition at line 120 of file telemeter.hpp.
|
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
Definition at line 2296 of file MagAOXApp.hpp.
|
staticinherited |
Make a log entry.
Wrapper for logManager::log
| logT | the log entry type |
| retval | the value returned by this method. |
| [in] | msg | the message to log |
| [in] | level | [optional] the log level. The default is used if not specified. |
Definition at line 2081 of file MagAOXApp.hpp.
References MagAOX::app::msg.
Referenced by MagAOX::app::picoMotorCtrl::motorChannel::motorChannel(), MagAOX::app::zylaCtrl::zylaCtrl(), MagAOX::app::picamCtrl::~picamCtrl(), MagAOX::app::streamWriter::~streamWriter(), MagAOX::app::zylaCtrl::~zylaCtrl(), dbIngest.dbIngest::_ensure_connected(), visxCtrl.core.visxCtrl::_gather_metadata(), MagAOX::app::streamWriter::_handlerSigSegv(), visxCtrl.core.visxCtrl::_init_properties(), MagAOX::app::qhyCtrl::AbortAcquisition(), MagAOX::app::andorCtrl::acquireAndCheckValid(), MagAOX::app::baslerCtrl::acquireAndCheckValid(), MagAOX::app::cameraSim::acquireAndCheckValid(), MagAOX::app::cred2Ctrl::acquireAndCheckValid(), MagAOX::app::ocam2KCtrl::acquireAndCheckValid(), MagAOX::app::picamCtrl::acquireAndCheckValid(), MagAOX::app::zylaCtrl::acquireAndCheckValid(), MagAOX::app::streamWriter::allocate_circbufs(), MagAOX::app::streamWriter::allocate_xrif(), MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::baslerCtrl::appLogic(), MagAOX::app::cameraSim::appLogic(), MagAOX::app::cred2Ctrl::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::mzmqClient::appLogic(), MagAOX::app::mzmqServer::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::qhyCtrl::appLogic(), appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::streamWriter::appLogic(), MagAOX::app::sysMonitor::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::andorCtrl::appShutdown(), MagAOX::app::baslerCtrl::appShutdown(), MagAOX::app::hsfwCtrl::appShutdown(), MagAOX::app::mzmqClient::appShutdown(), MagAOX::app::mzmqServer::appShutdown(), MagAOX::app::picamCtrl::appShutdown(), MagAOX::app::picoMotorCtrl::appShutdown(), MagAOX::app::qhyCtrl::appShutdown(), MagAOX::app::streamWriter::appShutdown(), MagAOX::app::zylaCtrl::appShutdown(), MagAOX::app::acronameUsbHub::appStartup(), MagAOX::app::andorCtrl::appStartup(), MagAOX::app::baslerCtrl::appStartup(), MagAOX::app::cameraSim::appStartup(), MagAOX::app::cred2Ctrl::appStartup(), MagAOX::app::filterWheelCtrl::appStartup(), MagAOX::app::hsfwCtrl::appStartup(), MagAOX::app::magAOXMaths::appStartup(), MagAOX::app::mzmqClient::appStartup(), MagAOX::app::mzmqServer::appStartup(), MagAOX::app::ocam2KCtrl::appStartup(), MagAOX::app::picamCtrl::appStartup(), MagAOX::app::picoMotorCtrl::appStartup(), MagAOX::app::qhyCtrl::appStartup(), 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::ttmModulator::calcState(), MagAOX::app::andorCtrl::cameraSelect(), MagAOX::app::zylaCtrl::cameraSelect(), visxCtrl.core.visxCtrl::cancel_exposure(), MagAOX::app::picamCtrl::capExpTime(), changeAmp(), changeAmp(), changeFreq(), changeFreq(), changeOfst(), changeOfst(), changeOutp(), changeOutp(), changePhse(), changePhse(), changeSync(), changeSync(), changeWdth(), changeWdth(), changeWvtp(), changeWvtp(), MagAOX::app::xt1121Ctrl::channelSetCallback(), MagAOX::app::picoMotorCtrl::channelThreadExec(), MagAOX::app::picoMotorCtrl::channelThreadStart(), MagAOX::app::baslerCtrl::checkNextROI(), MagAOX::app::cred2Ctrl::checkNextROI(), MagAOX::app::andorCtrl::checkRecordTimes(), MagAOX::app::baslerCtrl::checkRecordTimes(), MagAOX::app::cameraSim::checkRecordTimes(), MagAOX::app::cred2Ctrl::checkRecordTimes(), MagAOX::app::ocam2KCtrl::checkRecordTimes(), MagAOX::app::picamCtrl::checkRecordTimes(), MagAOX::app::qhyCtrl::checkRecordTimes(), checkRecordTimes(), MagAOX::app::smc100ccCtrl::checkRecordTimes(), MagAOX::app::sysMonitor::checkRecordTimes(), MagAOX::app::zaberCtrl::checkRecordTimes(), MagAOX::app::zylaCtrl::checkRecordTimes(), checkSetup(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::baslerCtrl::configureAcquisition(), MagAOX::app::cameraSim::configureAcquisition(), MagAOX::app::cred2Ctrl::configureAcquisition(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::zylaCtrl::configureAcquisition(), MagAOX::app::baslerCtrl::connect(), MagAOX::app::picamCtrl::connect(), MagAOX::app::qhyCtrl::connect(), pupilCorAlign.pupilCorAlign::control_position(), MagAOX::app::sysMonitor::criticalCoreTemperature(), MagAOX::app::sysMonitor::criticalDiskTemperature(), MagAOX::app::ocam2KCtrl::destroySyncStream(), MagAOX::app::trippLitePDU::devConnect(), MagAOX::app::trippLitePDU::devLogin(), MagAOX::app::trippLitePDU::devPostLogin(), MagAOX::app::trippLitePDU::devStatus(), MagAOX::app::streamWriter::doEncode(), MagAOX::app::ocam2KCtrl::ensureSyncStream(), MagAOX::app::streamWriter::fgThreadExec(), MagAOX::app::streamWriter::fgThreadStart(), visxCtrl.core.visxCtrl::finalize_exposure(), MagAOX::app::sysMonitor::findChronyStatus(), MagAOX::app::sysMonitor::findCPULoads(), MagAOX::app::sysMonitor::findCPUTemperatures(), MagAOX::app::sysMonitor::findDiskTemperature(), MagAOX::app::sysMonitor::findDiskUsage(), MagAOX::app::sysMonitor::findRamUsage(), camtipSR.core.camtipSR::fit_SR_EE(), camtipSR.core.camtipSR::fit_SR_gauss(), MagAOX::app::ocam2KCtrl::frameGrabberPostPublish(), pupilCorAlign.pupilCorAlign::get_current_state(), MagAOX::app::picamCtrl::getAcquisitionState(), MagAOX::app::cred2Ctrl::getAnalogGain(), MagAOX::app::streamWriter::getCircBuffLengths(), MagAOX::app::smc100ccCtrl::getCtrlState(), MagAOX::app::andorCtrl::getEMGain(), MagAOX::app::ocam2KCtrl::getEMGain(), MagAOX::app::baslerCtrl::getExpTime(), MagAOX::app::qhyCtrl::getExpTime(), MagAOX::app::cred2Ctrl::getFanSpeed(), MagAOX::app::picamCtrl::getFanSpeed(), MagAOX::app::andorCtrl::getFPS(), MagAOX::app::cred2Ctrl::getFPS(), MagAOX::app::ocam2KCtrl::getFPS(), MagAOX::app::smc100ccCtrl::getLastError(), MagAOX::app::cred2Ctrl::getLEDState(), MagAOX::app::filterWheelCtrl::getMoving(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::filterWheelCtrl::getPos(), MagAOX::app::smc100ccCtrl::getPosition(), MagAOX::app::xt1121Ctrl::getState(), MagAOX::app::filterWheelCtrl::getSwitch(), MagAOX::app::andorCtrl::getTemp(), MagAOX::app::baslerCtrl::getTemp(), MagAOX::app::qhyCtrl::getTemp(), MagAOX::app::zylaCtrl::getTemp(), MagAOX::app::cred2Ctrl::getTemps(), MagAOX::app::ocam2KCtrl::getTemps(), MagAOX::app::picamCtrl::getTemps(), camtipSR.core.camtipSR::grab_img(), camtipSR.core.camtipSR::grab_stack(), pupilCorAlign.pupilCorAlign::handle_centroid_ref(), corAlign.corAlign::handle_closed_loop(), adcCtrl.app.adcCtrl::handle_ctrl_mtx(), visxCtrl.core.visxCtrl::handle_expose(), visxCtrl.core.visxCtrl::handle_exptime(), pupilCorAlign.pupilCorAlign::handle_fwlyot(), pupilCorAlign.pupilCorAlign::handle_fwlyot_ref(), pupilCorAlign.pupilCorAlign::handle_fwpupil(), pupilCorAlign.pupilCorAlign::handle_fwpupil_ref(), adcCtrl.app.adcCtrl::handle_gain(), pupilCorAlign.pupilCorAlign::handle_gain(), visxCtrl.core.visxCtrl::handle_gain(), adcCtrl.app.adcCtrl::handle_knife_edge(), adcCtrl.app.adcCtrl::handle_knife_edge_findzero(), adcCtrl.app.adcCtrl::handle_labmode(), adcCtrl.app.adcCtrl::handle_n_avg(), camtipSR.core.camtipSR::handle_n_avg(), corAlign.corAlign::handle_n_avg(), camtipSR.core.camtipSR::handle_n_jitter(), adcCtrl.app.adcCtrl::handle_no_measurements(), pupilCorAlign.pupilCorAlign::handle_nstack(), adcCtrl.app.adcCtrl::handle_offset(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), corAlign.corAlign::handle_ref_x(), corAlign.corAlign::handle_ref_y(), adcCtrl.app.adcCtrl::handle_reset(), xapp.aoSim.aoSim::handle_reset(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), adcCtrl.app.adcCtrl::handle_state(), corAlign.corAlign::handle_state(), visxCtrl.core.visxCtrl::handle_temp_ccd(), MagAOX::app::streamWriter::handlerSigSegv(), MagAOX::app::filterWheelCtrl::home(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), dbIngest.dbIngest::ingest_line(), MagAOX::app::streamWriter::initialize_xrif(), MagAOX::app::cred2Ctrl::issueCommand(), dbIngest.dbIngest::launch_followers(), audibleAlerts.core.AudibleAlerts::load_personality(), MagAOX::app::andorCtrl::loadConfig(), MagAOX::app::baslerCtrl::loadConfig(), MagAOX::app::cred2Ctrl::loadConfig(), MagAOX::app::filterWheelCtrl::loadConfig(), MagAOX::app::hsfwCtrl::loadConfig(), MagAOX::app::mzmqClient::loadConfig(), MagAOX::app::mzmqServer::loadConfig(), MagAOX::app::ocam2KCtrl::loadConfig(), MagAOX::app::picoMotorCtrl::loadConfig(), MagAOX::app::qhyCtrl::loadConfig(), MagAOX::app::smc100ccCtrl::loadConfig(), MagAOX::app::streamWriter::loadConfig(), MagAOX::app::sysMonitor::loadConfig(), MagAOX::app::xt1121Ctrl::loadConfig(), MagAOX::app::baslerCtrl::loadConfigImpl(), MagAOX::app::picoMotorCtrl::loadConfigImpl(), MagAOX::app::zaberCtrl::loadConfigImpl(), MagAOX::app::cameraSim::loadConfigImpl(), MagAOX::app::cred2Ctrl::loadConfigImpl(), MagAOX::app::andorCtrl::loadImageIntoStream(), MagAOX::app::baslerCtrl::loadImageIntoStream(), MagAOX::app::cameraSim::loadImageIntoStream(), MagAOX::app::cred2Ctrl::loadImageIntoStream(), MagAOX::app::ocam2KCtrl::loadImageIntoStream(), MagAOX::app::picamCtrl::loadImageIntoStream(), MagAOX::app::qhyCtrl::loadImageIntoStream(), MagAOX::app::zylaCtrl::loadImageIntoStream(), adcCtrl.app.adcCtrl::loop(), audibleAlerts.core.AudibleAlerts::loop(), corAlign.corAlign::loop(), dbIngest.dbIngest::loop(), pupilCorAlign.pupilCorAlign::loop(), visxCtrl.core.visxCtrl::loop(), MagAOX::app::smc100ccCtrl::makeCom(), corAlign.corAlign::measure_fpm_mask_shift(), MagAOX::app::ttmModulator::modTTM(), MagAOX::app::filterWheelCtrl::moveTo(), MagAOX::app::hsfwCtrl::moveTo(), MagAOX::app::zaberCtrl::moveTo(), MagAOX::app::smc100ccCtrl::moveTo(), MagAOX::app::filterWheelCtrl::moveToRaw(), MagAOX::app::filterWheelCtrl::moveToRawRelative(), MagAOX::app::picoMotorCtrl::newCallBack_picopos(), MagAOX::app::picoMotorCtrl::newCallBack_presetName(), normalizeSetup(), MagAOX::app::ttmModulator::offset12(), MagAOX::app::ttmModulator::offsetXY(), MagAOX::app::acronameUsbHub::onPowerOff(), MagAOX::app::andorCtrl::onPowerOff(), MagAOX::app::cred2Ctrl::onPowerOff(), MagAOX::app::filterWheelCtrl::onPowerOff(), MagAOX::app::hsfwCtrl::onPowerOff(), MagAOX::app::ocam2KCtrl::onPowerOff(), MagAOX::app::picamCtrl::onPowerOff(), MagAOX::app::zylaCtrl::onPowerOff(), MagAOX::app::filterWheelCtrl::onPowerOnConnect(), MagAOX::app::sysMonitor::parseCPULoads(), MagAOX::app::sysMonitor::parseCPUTemperatures(), MagAOX::app::sysMonitor::parseCPUTemperaturesAMD(), MagAOX::app::sysMonitor::parseCPUTemperaturesIntel(), MagAOX::app::sysMonitor::parseDiskTemperature(), MagAOX::app::sysMonitor::parseDiskUsage(), MagAOX::app::trippLitePDU::parsePDUStatus(), MagAOX::app::sysMonitor::parseRamUsage(), MagAOX::app::zylaCtrl::powerOnDefaults(), audibleAlerts.core.AudibleAlerts::preprocess(), MagAOX::app::filterWheelCtrl::presetNumber(), MagAOX::app::smc100ccCtrl::presetNumber(), MagAOX::app::zaberCtrl::presetNumber(), queryARWV(), queryBSWV(), queryBTWV(), queryMDWV(), queryOUTP(), querySWWV(), querySYNC(), audibleAlerts.core.AudibleAlerts::reaction_handler(), MagAOX::app::picoMotorCtrl::readChannelCounts(), MagAOX::app::andorCtrl::reconfig(), MagAOX::app::cred2Ctrl::reconfig(), MagAOX::app::ocam2KCtrl::reconfig(), MagAOX::app::picamCtrl::reconfig(), MagAOX::app::zylaCtrl::reconfig(), MagAOX::app::sysMonitor::recordChronyStatus(), MagAOX::app::sysMonitor::recordCoreLoads(), MagAOX::app::sysMonitor::recordCoreTemps(), MagAOX::app::sysMonitor::recordDriveTemps(), recordParams(), MagAOX::app::streamWriter::recordSavingState(), MagAOX::app::streamWriter::recordSavingStats(), MagAOX::app::filterWheelCtrl::recordStage(), MagAOX::app::smc100ccCtrl::recordStage(), MagAOX::app::zaberCtrl::recordTelem(), MagAOX::app::sysMonitor::recordUsage(), MagAOX::app::zaberCtrl::recordZaber(), dbIngest.dbIngest::refresh_properties(), visxCtrl.core.visxCtrl::refresh_properties(), MagAOX::app::streamWriter::release_circbufs(), MagAOX::app::mzmqClient::reportError(), MagAOX::app::mzmqServer::reportError(), MagAOX::app::mzmqClient::reportInfo(), MagAOX::app::mzmqServer::reportInfo(), MagAOX::app::mzmqClient::reportNotice(), MagAOX::app::mzmqServer::reportNotice(), MagAOX::app::mzmqClient::reportWarning(), MagAOX::app::mzmqServer::reportWarning(), MagAOX::app::ocam2KCtrl::resetEMProtection(), MagAOX::app::ttmModulator::restTTM(), adcCtrl.app.adcCtrl::send_command(), MagAOX::app::cred2Ctrl::sendCommand(), MagAOX::app::cred2Ctrl::setAnalogGain(), MagAOX::app::andorCtrl::setCropMode(), MagAOX::app::andorCtrl::setEMGain(), MagAOX::app::ocam2KCtrl::setEMGain(), MagAOX::app::picamCtrl::setEMGain(), MagAOX::app::andorCtrl::setExpTime(), MagAOX::app::baslerCtrl::setExpTime(), MagAOX::app::cameraSim::setExpTime(), MagAOX::app::picamCtrl::setExpTime(), MagAOX::app::qhyCtrl::setExpTime(), MagAOX::app::cred2Ctrl::setFanSpeed(), MagAOX::app::baslerCtrl::setFPS(), MagAOX::app::cameraSim::setFPS(), MagAOX::app::cred2Ctrl::setFPS(), MagAOX::app::ocam2KCtrl::setFPS(), MagAOX::app::sysMonitor::setlatThreadExec(), MagAOX::app::sysMonitor::setlatThreadStart(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::andorCtrl::setReadoutSpeed(), MagAOX::app::cred2Ctrl::setSerialBaud(), MagAOX::app::ocam2KCtrl::setShutter(), MagAOX::app::picamCtrl::setShutter(), MagAOX::app::zylaCtrl::setShutter(), MagAOX::app::cameraSim::setShutter(), MagAOX::app::andorCtrl::setShutter(), MagAOX::app::streamWriter::setSigSegvHandler(), MagAOX::app::ocam2KCtrl::setSynchro(), MagAOX::app::andorCtrl::setTempControl(), MagAOX::app::cred2Ctrl::setTempControl(), MagAOX::app::ocam2KCtrl::setTempControl(), MagAOX::app::zylaCtrl::setTempControl(), MagAOX::app::andorCtrl::setTempSetPt(), MagAOX::app::cred2Ctrl::setTempSetPt(), MagAOX::app::ocam2KCtrl::setTempSetPt(), MagAOX::app::ttmModulator::setTTM(), adcCtrl.app.adcCtrl::setup(), camtipSR.core.camtipSR::setup(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), pupilCorAlign.pupilCorAlign::setup(), sparkleTracker.sparkleTracker::setup(), MagAOX::app::andorCtrl::setVShiftSpeed(), MagAOX::app::smc100ccCtrl::splitResponse(), pupilCorAlign.pupilCorAlign::stages_are_ready(), MagAOX::app::andorCtrl::startAcquisition(), MagAOX::app::baslerCtrl::startAcquisition(), MagAOX::app::cred2Ctrl::startAcquisition(), MagAOX::app::ocam2KCtrl::startAcquisition(), MagAOX::app::zylaCtrl::startAcquisition(), MagAOX::app::hsfwCtrl::startHoming(), MagAOX::app::smc100ccCtrl::startHoming(), MagAOX::app::zaberCtrl::startHoming(), MagAOX::app::baslerCtrl::stateString(), MagAOX::app::ocam2KCtrl::stateString(), MagAOX::app::filterWheelCtrl::stop(), MagAOX::app::smc100ccCtrl::stop(), MagAOX::app::zaberCtrl::stop(), visxCtrl.core.visxCtrl::subscribe_to_other_devices(), MagAOX::app::streamWriter::swThreadExec(), MagAOX::app::streamWriter::swThreadStart(), MagAOX::app::zaberCtrl::syncPowerOffStageTelemetry(), MagAOX::app::cred2Ctrl::syncROIFromCamera(), MagAOX::app::smc100ccCtrl::testConnection(), adcCtrl.app.adcCtrl::transition_to_idle(), camtipSR.core.camtipSR::transition_to_idle(), corAlign.corAlign::transition_to_idle(), MagAOX::app::acronameUsbHub::turnOutletOff(), MagAOX::app::trippLitePDU::turnOutletOff(), MagAOX::app::xt1121DCDU::turnOutletOff(), MagAOX::app::acronameUsbHub::turnOutletOn(), MagAOX::app::trippLitePDU::turnOutletOn(), MagAOX::app::xt1121DCDU::turnOutletOn(), pupilCorAlign.pupilCorAlign::update_properties(), adcCtrl.app.adcCtrl::update_wavelength(), MagAOX::app::trippLitePDU::updateAlarmsAndWarnings(), MagAOX::app::cred2Ctrl::updateFPSLimits(), MagAOX::app::acronameUsbHub::updateOutletState(), MagAOX::app::trippLitePDU::updateOutletState(), MagAOX::app::xt1121DCDU::updateOutletState(), MagAOX::app::trippLitePDU::updateOutletStates(), MagAOX::app::magAOXMaths::updateVals(), MagAOX::app::sysMonitor::updateVals(), MagAOX::app::streamWriter::waitForWriteCompletion(), audibleAlerts.core.AudibleAlerts::walkup_handler(), MagAOX::app::andorCtrl::whilePowerOff(), MagAOX::app::cred2Ctrl::whilePowerOff(), MagAOX::app::filterWheelCtrl::whilePowerOff(), MagAOX::app::hsfwCtrl::whilePowerOff(), MagAOX::app::ocam2KCtrl::whilePowerOff(), MagAOX::app::picamCtrl::whilePowerOff(), MagAOX::app::zylaCtrl::whilePowerOff(), MagAOX::app::picoMotorCtrl::writeChannelCounts(), writeCommand(), MagAOX::app::andorCtrl::writeConfig(), MagAOX::app::cred2Ctrl::writeConfig(), writeRead(), MagAOX::app::xt1121DCDU::xtChannelName(), and MagAOX::app::xt1121DCDU::xtChannelProperty().
|
staticinherited |
Make a log entry.
Wrapper for logManager::log
| logT | the log entry type |
| retval | the value returned by this method. |
| [in] | level | [optional] the log level. The default is used if not specified. |
Definition at line 2089 of file MagAOXApp.hpp.
Referenced by dbIngest.dbIngest::_ensure_connected(), visxCtrl.core.visxCtrl::_gather_metadata(), visxCtrl.core.visxCtrl::_init_properties(), visxCtrl.core.visxCtrl::cancel_exposure(), pupilCorAlign.pupilCorAlign::control_position(), visxCtrl.core.visxCtrl::finalize_exposure(), camtipSR.core.camtipSR::fit_SR_EE(), camtipSR.core.camtipSR::fit_SR_gauss(), pupilCorAlign.pupilCorAlign::get_current_state(), camtipSR.core.camtipSR::grab_img(), camtipSR.core.camtipSR::grab_stack(), pupilCorAlign.pupilCorAlign::handle_centroid_ref(), corAlign.corAlign::handle_closed_loop(), adcCtrl.app.adcCtrl::handle_ctrl_mtx(), visxCtrl.core.visxCtrl::handle_expose(), visxCtrl.core.visxCtrl::handle_exptime(), pupilCorAlign.pupilCorAlign::handle_fwlyot(), pupilCorAlign.pupilCorAlign::handle_fwlyot_ref(), pupilCorAlign.pupilCorAlign::handle_fwpupil(), pupilCorAlign.pupilCorAlign::handle_fwpupil_ref(), adcCtrl.app.adcCtrl::handle_gain(), pupilCorAlign.pupilCorAlign::handle_gain(), visxCtrl.core.visxCtrl::handle_gain(), adcCtrl.app.adcCtrl::handle_knife_edge(), adcCtrl.app.adcCtrl::handle_knife_edge_findzero(), adcCtrl.app.adcCtrl::handle_labmode(), adcCtrl.app.adcCtrl::handle_n_avg(), camtipSR.core.camtipSR::handle_n_avg(), corAlign.corAlign::handle_n_avg(), camtipSR.core.camtipSR::handle_n_jitter(), adcCtrl.app.adcCtrl::handle_no_measurements(), pupilCorAlign.pupilCorAlign::handle_nstack(), adcCtrl.app.adcCtrl::handle_offset(), audibleAlerts.core.AudibleAlerts::handle_personality_switch(), corAlign.corAlign::handle_ref_x(), corAlign.corAlign::handle_ref_y(), adcCtrl.app.adcCtrl::handle_reset(), xapp.aoSim.aoSim::handle_reset(), audibleAlerts.core.AudibleAlerts::handle_soundboard_switch(), audibleAlerts.core.AudibleAlerts::handle_speech_request(), audibleAlerts.core.AudibleAlerts::handle_speech_text(), adcCtrl.app.adcCtrl::handle_state(), corAlign.corAlign::handle_state(), visxCtrl.core.visxCtrl::handle_temp_ccd(), dbIngest.dbIngest::ingest_line(), dbIngest.dbIngest::launch_followers(), audibleAlerts.core.AudibleAlerts::load_personality(), adcCtrl.app.adcCtrl::loop(), audibleAlerts.core.AudibleAlerts::loop(), corAlign.corAlign::loop(), dbIngest.dbIngest::loop(), pupilCorAlign.pupilCorAlign::loop(), visxCtrl.core.visxCtrl::loop(), corAlign.corAlign::measure_fpm_mask_shift(), audibleAlerts.core.AudibleAlerts::preprocess(), audibleAlerts.core.AudibleAlerts::reaction_handler(), dbIngest.dbIngest::refresh_properties(), visxCtrl.core.visxCtrl::refresh_properties(), adcCtrl.app.adcCtrl::send_command(), adcCtrl.app.adcCtrl::setup(), camtipSR.core.camtipSR::setup(), corAlign.corAlign::setup(), efcControl.efcControl::setup(), pupilCorAlign.pupilCorAlign::setup(), sparkleTracker.sparkleTracker::setup(), pupilCorAlign.pupilCorAlign::stages_are_ready(), visxCtrl.core.visxCtrl::subscribe_to_other_devices(), adcCtrl.app.adcCtrl::transition_to_idle(), camtipSR.core.camtipSR::transition_to_idle(), corAlign.corAlign::transition_to_idle(), pupilCorAlign.pupilCorAlign::update_properties(), adcCtrl.app.adcCtrl::update_wavelength(), and audibleAlerts.core.AudibleAlerts::walkup_handler().
|
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 2096 of file MagAOXApp.hpp.
References b(), flatlogs::logPrio::LOG_ERROR, flatlogs::logPrio::LOG_NOTICE, flatlogs::logHeader::logLevel(), MagAOX::logger::logMinStdFormat(), MagAOX::logger::logStdFormat(), MagAOX::app::msg, flatlogs::timespecX::time_ns, flatlogs::timespecX::time_s, and flatlogs::logHeader::timespec().
|
inherited |
Get the loop pause time.
Definition at line 4024 of file MagAOXApp.hpp.
|
protectedinherited |
The callback called by the static version, to actually process the FSM Alert Clear request.
| [in] | ipRecv | the INDI property sent with the new property request. |
Definition at line 3858 of file MagAOXApp.hpp.
References INDI_IDLE, and MagAOX::app::ipRecv.
|
inline |
Normalize the setup, called during connection if checkSetup shows a problem, or on power-up.
Definition at line 1647 of file siglentSDG.hpp.
References changeAmp(), changeFreq(), changeOfst(), changeOutp(), changePhse(), changeWdth(), changeWvtp(), MagAOX::app::MagAOXApp< _useINDI >::log(), m_C1ofst, m_C1outpOn, m_C1vppDefault, m_C2ofst, m_C2outpOn, m_C2vppDefault, m_waveform, MagAOX::app::makeCommand(), recordParams(), and writeCommand().
Referenced by appLogic().
|
inlineinherited |
Update retry tracking after sending a GetProperties request for a monitored Set-property.
| callBack | [in/out] the subscription retry state to update | |
| [in] | now | the current monotonic time for scheduling |
Definition at line 3200 of file MagAOXApp.hpp.
References flatlogs::logPrio::LOG_NOTICE, MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_missingLogged, MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_nextRetry, MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_retryCount, MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_retryDelay, and MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::property.
|
inlinevirtual |
Implementation of the on-power-off FSM logic.
Reimplemented from MagAOX::app::MagAOXApp< _useINDI >.
Definition at line 943 of file siglentSDG.hpp.
References INDI_IDLE, MagAOX::app::lock(), m_C1frequency, m_C1frequency_tgt, m_C1ofst, m_C1outp, m_C1vpp, m_C1vpp_tgt, m_C1wvtp, m_C2frequency, m_C2frequency_tgt, m_C2ofst, m_C2outp, m_C2vpp, m_C2vpp_tgt, m_C2wvtp, MagAOX::app::MagAOXApp< _useINDI >::m_indiMutex, m_indiP_C1amp, m_indiP_C1ampvrms, m_indiP_C1freq, m_indiP_C1hlev, m_indiP_C1llev, m_indiP_C1ofst, m_indiP_C1outp, m_indiP_C1peri, m_indiP_C1phse, m_indiP_C1sync, m_indiP_C1wdth, m_indiP_C1wvtp, m_indiP_C2amp, m_indiP_C2ampvrms, m_indiP_C2freq, m_indiP_C2hlev, m_indiP_C2llev, m_indiP_C2ofst, m_indiP_C2peri, m_indiP_C2phse, m_indiP_C2sync, m_indiP_C2wdth, m_indiP_C2wvtp, m_waveform, MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged(), and MagAOX::app::MagAOXApp< _useINDI >::updateSwitchIfChanged().
Referenced by whilePowerOff().
|
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.
Definition at line 3891 of file MagAOXApp.hpp.
Referenced by MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), and MagAOX::app::xt1121Ctrl::appLogic().
|
inherited |
Returns the current power state.
If power management is not enabled, this always returns 1=On.
Definition at line 3910 of file MagAOXApp.hpp.
Referenced by MagAOX::app::ocam2KCtrl::acquireAndCheckValid(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::cred2Ctrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::picamCtrl::capExpTime(), MagAOX::app::picoMotorCtrl::channelThreadExec(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::picamCtrl::connect(), MagAOX::app::picamCtrl::getAcquisitionState(), MagAOX::app::ocam2KCtrl::getEMGain(), MagAOX::app::picamCtrl::getFanSpeed(), MagAOX::app::ocam2KCtrl::getFPS(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::ocam2KCtrl::getTemps(), MagAOX::app::picamCtrl::getTemps(), MagAOX::app::hsfwCtrl::moveTo(), MagAOX::app::ocam2KCtrl::resetEMProtection(), MagAOX::app::cred2Ctrl::sendCommand(), MagAOX::app::ocam2KCtrl::setEMGain(), MagAOX::app::picamCtrl::setEMGain(), MagAOX::app::picamCtrl::setExpTime(), MagAOX::app::ocam2KCtrl::setFPS(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::ocam2KCtrl::setSynchro(), MagAOX::app::ocam2KCtrl::setTempControl(), MagAOX::app::ocam2KCtrl::setTempSetPt(), and MagAOX::app::hsfwCtrl::startHoming().
|
inherited |
Returns the target power state.
If power management is not enabled, this always returns 1=On.
Definition at line 3921 of file MagAOXApp.hpp.
Referenced by MagAOX::app::ocam2KCtrl::acquireAndCheckValid(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::cred2Ctrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), MagAOX::app::picamCtrl::capExpTime(), MagAOX::app::picoMotorCtrl::channelThreadExec(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::picamCtrl::connect(), MagAOX::app::picamCtrl::getAcquisitionState(), MagAOX::app::ocam2KCtrl::getEMGain(), MagAOX::app::picamCtrl::getFanSpeed(), MagAOX::app::ocam2KCtrl::getFPS(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::ocam2KCtrl::getTemps(), MagAOX::app::picamCtrl::getTemps(), MagAOX::app::hsfwCtrl::moveTo(), MagAOX::app::ocam2KCtrl::resetEMProtection(), MagAOX::app::cred2Ctrl::sendCommand(), MagAOX::app::ocam2KCtrl::setEMGain(), MagAOX::app::picamCtrl::setEMGain(), MagAOX::app::picamCtrl::setExpTime(), MagAOX::app::ocam2KCtrl::setFPS(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameter(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::picamCtrl::setPicamParameterOnline(), MagAOX::app::ocam2KCtrl::setSynchro(), MagAOX::app::ocam2KCtrl::setTempControl(), MagAOX::app::ocam2KCtrl::setTempSetPt(), and MagAOX::app::hsfwCtrl::startHoming().
Send the ARWV? query and get the response index.
This does not update internal state.
| [out] | index | the ARWV index |
| [in] | channel | the channel to query |
Definition at line 1263 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::app::makeCommand(), MagAOX::app::parseARWV(), and writeRead().
Referenced by checkSetup().
Send the BSWV? query for a channel.
This updates member variables and INDI.
| channel | < [in] the channel to query |
Definition at line 1308 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, m_C1frequency, m_C1frequency_tgt, m_C1ofst, m_C1phse, m_C1vpp, m_C1vpp_tgt, m_C1wdth, m_C1wvtp, m_C2frequency, m_C2frequency_tgt, m_C2ofst, m_C2phse, m_C2vpp, m_C2vpp_tgt, m_C2wdth, m_C2wvtp, m_indiP_C1amp, m_indiP_C1ampvrms, m_indiP_C1freq, m_indiP_C1hlev, m_indiP_C1llev, m_indiP_C1ofst, m_indiP_C1peri, m_indiP_C1phse, m_indiP_C1wdth, m_indiP_C1wvtp, m_indiP_C2amp, m_indiP_C2ampvrms, m_indiP_C2freq, m_indiP_C2hlev, m_indiP_C2llev, m_indiP_C2ofst, m_indiP_C2peri, m_indiP_C2phse, m_indiP_C2wdth, m_indiP_C2wvtp, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, m_waveform, MagAOX::app::makeCommand(), MagAOX::app::parseBSWV(), recordParams(), MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged(), and writeRead().
Referenced by appLogic().
Send the BTWV? query and get the response state.
This does not update internal state.
| [out] | state | the BTWV state, ON or OFF |
| [in] | channel | the channel to query |
Definition at line 1218 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::app::makeCommand(), MagAOX::app::parseBTWV(), MagAOX::app::MagAOXApp< _useINDI >::state(), and writeRead().
Referenced by checkSetup().
Send the MDWV? query and get the response state.
This does not update internal state.
| [out] | state | the MDWV state, ON or OFF |
| [in] | channel | the channel to query |
Definition at line 1128 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::app::makeCommand(), MagAOX::app::parseMDWV(), MagAOX::app::MagAOXApp< _useINDI >::state(), and writeRead().
Referenced by checkSetup().
Send the OUTP? query for a channel.
| [in] | channel | the channel to query |
Definition at line 1448 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, m_C1outp, m_C2outp, m_indiP_C1outp, m_indiP_C2outp, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::app::makeCommand(), MagAOX::app::parseOUTP(), recordParams(), MagAOX::app::MagAOXApp< _useINDI >::updateIfChanged(), and writeRead().
Referenced by appLogic().
Send the SWWV? query and get the response state.
This does not update internal state.
| [out] | state | the SWWV state, ON or OFF |
| [in] | channel | the channel to query |
Definition at line 1173 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::app::makeCommand(), MagAOX::app::parseSWWV(), MagAOX::app::MagAOXApp< _useINDI >::state(), and writeRead().
Referenced by checkSetup().
Send the SYNC? query for a channel.
This updates member variables and INDI.
| channel | < [in] the sync state for this channel < [in] the channel to query |
Definition at line 1403 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), flatlogs::logPrio::LOG_ERROR, MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::app::makeCommand(), MagAOX::app::parseSYNC(), and writeRead().
Referenced by checkSetup().
Definition at line 2534 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), m_C1frequency, m_C1ofst, m_C1outp, m_C1phse, m_C1sync, m_C1vpp, m_C1wdth, m_C1wvtp, m_C2frequency, m_C2ofst, m_C2outp, m_C2phse, m_C2sync, m_C2vpp, m_C2wdth, m_C2wvtp, TELEM_FXNGEN_WVTP_DC, TELEM_FXNGEN_WVTP_PULSE, and TELEM_FXNGEN_WVTP_SINE.
Referenced by appLogic(), changeAmp(), changeFreq(), changeOutp(), changeSync(), normalizeSetup(), queryBSWV(), queryOUTP(), and recordTelem().
|
inline |
Definition at line 2528 of file siglentSDG.hpp.
References recordParams().
|
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.
| [out] | prop | the property to register |
| [in] | propName | the name of the property |
| [in] | propType | the type of the property |
| [in] | propPerm | the permissions of the property |
| [in] | propState | the state of the property |
| [in] | propRule | the switch rule type |
|
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.
| [out] | prop | the property to register |
| [in] | propName | the name of the property |
| [in] | propType | the type of the property |
| [in] | propPerm | the permissions of the property |
| [in] | propState | the state of the property |
|
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.
| [in] | prop | the 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(), appStartup(), MagAOX::app::streamWriter::appStartup(), MagAOX::app::sysMonitor::appStartup(), MagAOX::app::zaberCtrl::appStartup(), and libXWCTest::appTest::MagAOXAppTest::SCENARIO().
|
inherited |
Register an INDI property which is read only.
This version requires the property be fully set up.
| [in] | prop | the property to register, must be completely setup |
Definition at line 2988 of file MagAOXApp.hpp.
References MagAOX::app::lock().
Referenced by MagAOX::app::cred2Ctrl::appStartup(), MagAOX::app::picamCtrl::appStartup(), and MagAOX::app::zaberCtrl::appStartup().
|
inherited |
Register an INDI property which is read only.
This verison sets up the INDI property according to the arguments.
| [out] | prop | the property to register, will be configured |
| [in] | propName | the name of the property |
| [in] | propType | the type of the property |
| [in] | propPerm | the permissions of the property |
| [in] | propState | the state of the property |
Definition at line 3020 of file MagAOXApp.hpp.
References MagAOX::app::lock().
|
inherited |
Register an INDI property which is monitored for updates from others.
| [out] | prop | the property to register |
| [in] | devName | the device which owns this property |
| [in] | propName | the name of the property |
Definition at line 3135 of file MagAOXApp.hpp.
References MagAOX::app::lock().
|
inlineinherited |
Reset retry tracking for a monitored INDI Set-property subscription.
| callBack | [in/out] the subscription retry state to reset |
Definition at line 3173 of file MagAOXApp.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_missingLogged, MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_nextRetry, MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_retryCount, and MagAOX::app::MagAOXApp< _useINDI >::indiCallBack::m_retryDelay.
|
inherited |
Get the secrets path.
Definition at line 4012 of file MagAOXApp.hpp.
|
inherited |
Definition at line 3352 of file MagAOXApp.hpp.
References MagAOX::app::it, and MagAOX::app::lock().
|
protectedinherited |
Send a newProperty command to another device (using the INDI Client interface)
| [in] | ipSend | The property to send a "new" INDI command for |
Definition at line 3794 of file MagAOXApp.hpp.
|
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.
| [in] | ipSend | The property to send a "new" INDI command for |
| [in] | el | The element of the property to change |
| [in] | newVal | The value to request for the element. |
Definition at line 3758 of file MagAOXApp.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::sendNewProperty().
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::picamCtrl::setExpTime(), MagAOX::app::ocam2KCtrl::setFPS(), MagAOX::app::picamCtrl::setSynchro(), MagAOX::app::ttmModulator::setTTM(), MagAOX::app::zaberCtrl::startHoming(), MagAOX::app::zaberCtrl::stop(), MagAOX::app::xt1121DCDU::turnOutletOff(), MagAOX::app::xt1121DCDU::turnOutletOn(), and MagAOX::app::picamCtrl::updateFxnGenSync().
|
protectedinherited |
Send a new property commmand for a standard toggle switch.
| [in] | device | The device name |
| [in] | property | The property name |
| [in] | onoff | Switch state to send: true = on, false = off |
Definition at line 3815 of file MagAOXApp.hpp.
|
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.
| [in] | argc | standard command line result specifying number of arguments in argv |
| [in] | argv | standard command line result containing the arguments. |
Definition at line 1381 of file MagAOXApp.hpp.
References MAGAOX_calibRelPath, MAGAOX_configRelPath, MAGAOX_env_calib, MAGAOX_env_config, MAGAOX_env_cpuset, MAGAOX_env_log, MAGAOX_env_path, MAGAOX_env_secrets, MAGAOX_env_sys, MAGAOX_logRelPath, MAGAOX_path, MAGAOX_secretsRelPath, and MAGAOX_sysRelPath.
|
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
Definition at line 2259 of file MagAOXApp.hpp.
Referenced by MagAOX::app::MagAOXApp< _useINDI >::elevatedPrivileges::elevate().
|
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
Definition at line 2277 of file MagAOXApp.hpp.
Referenced by MagAOX::app::MagAOXApp< _useINDI >::elevatedPrivileges::restore().
|
privateinherited |
Sets the handler for SIGTERM, SIGQUIT, and SIGINT.
Definition at line 2148 of file MagAOXApp.hpp.
References flatlogs::logPrio::LOG_DEBUG.
|
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 1498 of file MagAOXApp.hpp.
|
inlinevirtual |
Setup the configuration system (called by MagAOXApp::setup())
Definition at line 455 of file siglentSDG.hpp.
References MagAOX::app::dev::telemeter< derivedT >::setupConfig().
|
inherited |
Setup an application configurator for the device section.
| [in] | config | an application configuration to setup |
Definition at line 112 of file telemeter.hpp.
|
inherited |
Get the value of the shutdown flag.
Definition at line 4030 of file MagAOXApp.hpp.
Referenced by MagAOX::app::xt1121Ctrl::channelSetCallback(), MagAOX::app::xt1121Ctrl::getState(), MagAOX::app::streamWriter::swThreadExec(), and libXWCTest::xInstGraphTest::TEST_CASE().
|
staticprotectedinherited |
The static callback function to be registered for requesting to clear the FSM alert.
| [in] | app | a pointer to this, will be static_cast-ed to MagAOXApp. |
| [in] | ipRecv | the INDI property sent with the new property request. |
Definition at line 3852 of file MagAOXApp.hpp.
References MagAOX::app::ipRecv.
|
protectedinherited |
Start INDI Communications.
Definition at line 3295 of file MagAOXApp.hpp.
|
inherited |
Get the current state code.
Definition at line 2601 of file MagAOXApp.hpp.
Referenced by MagAOX::app::baslerCtrl::acquireAndCheckValid(), MagAOX::app::picamCtrl::acquireAndCheckValid(), MagAOX::app::qhyCtrl::acquireAndCheckValid(), MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::baslerCtrl::appLogic(), MagAOX::app::cameraSim::appLogic(), MagAOX::app::cred2Ctrl::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), 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::baslerCtrl::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(), changeAmp(), changeFreq(), changeOfst(), changeOutp(), changePhse(), changeSync(), changeWdth(), changeWvtp(), MagAOX::app::picoMotorCtrl::channelThreadExec(), checkSetup(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::baslerCtrl::configureAcquisition(), MagAOX::app::cameraSim::configureAcquisition(), MagAOX::app::cred2Ctrl::configureAcquisition(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::baslerCtrl::connect(), MagAOX::app::picamCtrl::connect(), MagAOX::app::qhyCtrl::connect(), MagAOX::app::picamCtrl::getAcquisitionState(), MagAOX::app::smc100ccCtrl::getCtrlState(), MagAOX::app::baslerCtrl::getExpTime(), MagAOX::app::qhyCtrl::getExpTime(), MagAOX::app::picamCtrl::getFanSpeed(), MagAOX::app::baslerCtrl::getFPS(), MagAOX::app::baslerCtrl::getTemp(), MagAOX::app::qhyCtrl::getTemp(), MagAOX::app::picamCtrl::getTemps(), MagAOX::app::filterWheelCtrl::home(), MagAOX::app::baslerCtrl::loadImageIntoStream(), MagAOX::app::qhyCtrl::loadImageIntoStream(), MagAOX::app::hsfwCtrl::moveTo(), MagAOX::app::smc100ccCtrl::moveTo(), queryBTWV(), queryMDWV(), querySWWV(), MagAOX::app::andorCtrl::reconfig(), MagAOX::app::cred2Ctrl::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::cred2Ctrl::setNextROI(), MagAOX::app::qhyCtrl::setNextROI(), MagAOX::app::andorCtrl::setReadoutSpeed(), MagAOX::app::andorCtrl::setShutter(), MagAOX::app::andorCtrl::setVShiftSpeed(), MagAOX::app::andorCtrl::startAcquisition(), MagAOX::app::baslerCtrl::startAcquisition(), MagAOX::app::cameraSim::startAcquisition(), MagAOX::app::cred2Ctrl::startAcquisition(), MagAOX::app::qhyCtrl::startAcquisition(), MagAOX::app::hsfwCtrl::startHoming(), MagAOX::app::ocam2KCtrl::stateStringValid(), MagAOX::app::streamWriter::swThreadExec(), libXWCTest::flowRPMTest::TEST_CASE(), MagAOX::app::acronameUsbHub::updateOutletState(), MagAOX::app::trippLitePDU::updateOutletStates(), and writeRead().
|
inherited |
Set the current state code.
| [in] | s | The new application state |
| [in] | stateAlert | [optional] flag to set the alert state of the FSM property. |
Definition at line 2607 of file MagAOXApp.hpp.
References INDI_ALERT, INDI_BUSY, INDI_IDLE, INDI_OK, MagAOX::app::lock(), flatlogs::logPrio::LOG_CRITICAL, flatlogs::logPrio::LOG_ERROR, flatlogs::logPrio::LOG_INFO, and flatlogs::logPrio::LOG_WARNING.
|
inherited |
Get the value of the state alert flag.
Definition at line 2665 of file MagAOXApp.hpp.
|
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:
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.
Definition at line 2677 of file MagAOXApp.hpp.
Referenced by MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::trippLitePDU::appLogic(), MagAOX::app::ttmModulator::appLogic(), MagAOX::app::xt1121Ctrl::appLogic(), MagAOX::app::andorCtrl::cameraSelect(), MagAOX::app::baslerCtrl::connect(), MagAOX::app::picamCtrl::connect(), and MagAOX::app::qhyCtrl::connect().
|
inherited |
|
inherited |
Make a telemetry recording.
Wrapper for logManager::log, which updates telT::lastRecord.
| logT | the log entry type |
| retval | the value returned by this method. |
| [in] | msg | the data to log |
Definition at line 95 of file telemeter.hpp.
|
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:
where impl is the derived class, and mThreadStart and myThreadExec are members of impl.
| [out] | thrd | The 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] | thrdPrio | The r/t priority to set for this thread |
| [in] | cpuset | the cpuset to place this thread on. Ignored if "". |
| [in] | thrdName | The name of the thread (just for logging) |
| [in] | thrdThis | The this pointer to pass to the thread starter function |
| [in] | thrdStart | The thread starting function, a static function taking a this pointer as argument. |
Definition at line 2461 of file MagAOXApp.hpp.
References flatlogs::logPrio::LOG_NOTICE, and MAGAOX_RT_SCHED_POLICY.
Referenced by MagAOX::app::picoMotorCtrl::appStartup(), MagAOX::app::streamWriter::appStartup(), and MagAOX::app::sysMonitor::appStartup().
|
protectedinherited |
Remove the PID file.
Definition at line 2435 of file MagAOXApp.hpp.
|
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.
| p | [in/out] The property containing the element to possibly update | |
| [in] | el | The element name |
| [in] | newVal | the new value |
Definition at line 3625 of file MagAOXApp.hpp.
|
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.
| p | [in/out] The property containing the element to possibly update | |
| [in] | el | Beginning of each element name |
| [in] | newVals | the new values |
| [in] | ipState | [optional] the new state |
Definition at line 3650 of file MagAOXApp.hpp.
|
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.
| p | [in/out] The property containing the element to possibly update | |
| [in] | el | The element name |
| [in] | newVal | the new value |
Definition at line 3606 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::baslerCtrl::checkNextROI(), MagAOX::app::cameraSim::checkNextROI(), MagAOX::app::cred2Ctrl::checkNextROI(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::baslerCtrl::configureAcquisition(), MagAOX::app::cred2Ctrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::zylaCtrl::configureAcquisition(), MagAOX::app::ocam2KCtrl::getEMGain(), MagAOX::app::xt1121Ctrl::getState(), MagAOX::app::cred2Ctrl::getTemps(), MagAOX::app::ocam2KCtrl::getTemps(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), MagAOX::app::smc100ccCtrl::moveTo(), MagAOX::app::filterWheelCtrl::moveToRaw(), MagAOX::app::acronameUsbHub::onPowerOff(), MagAOX::app::cred2Ctrl::onPowerOff(), MagAOX::app::ocam2KCtrl::onPowerOff(), onPowerOff(), MagAOX::app::xt1121Ctrl::onPowerOff(), queryBSWV(), queryOUTP(), MagAOX::app::ocam2KCtrl::resetEMProtection(), MagAOX::app::picamCtrl::setExpTime(), MagAOX::app::cred2Ctrl::syncROIFromCamera(), MagAOX::app::cred2Ctrl::updateFPSLimits(), MagAOX::app::trippLitePDU::updateOutletStates(), MagAOX::app::magAOXMaths::updateVals(), and MagAOX::app::sysMonitor::updateVals().
|
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.
| p | [in/out] The property containing the element to possibly update | |
| [in] | els | String vector of element names |
| [in] | newVals | the new values |
| [in] | newState | [optional] The state of the property |
Definition at line 3671 of file MagAOXApp.hpp.
|
protectedinherited |
| p | [in/out] The property containing the element to possibly update | |
| [in] | els | String vector of element names |
| [in] | newVals | the new values |
| [in] | newState | [optional] The state of the property |
Definition at line 3687 of file MagAOXApp.hpp.
|
protectedinherited |
Update an INDI switch element value if it has changed.
Will only peform a SetProperty if the new element switch state has changed, or the propery state has changed.
| p | [in/out] The property containing the element to possibly update | |
| [in] | el | The element name |
| [in] | newVal | the new value |
Definition at line 3634 of file MagAOXApp.hpp.
Referenced by appLogic(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), onPowerOff(), MagAOX::app::andorCtrl::setNextROI(), MagAOX::app::baslerCtrl::setNextROI(), MagAOX::app::cameraSim::setNextROI(), MagAOX::app::cred2Ctrl::setNextROI(), MagAOX::app::picamCtrl::setNextROI(), MagAOX::app::qhyCtrl::setNextROI(), MagAOX::app::zylaCtrl::setNextROI(), MagAOX::app::ocam2KCtrl::setSynchro(), MagAOX::app::picamCtrl::setTempControl(), MagAOX::app::filterWheelCtrl::startHoming(), MagAOX::app::hsfwCtrl::startHoming(), MagAOX::app::smc100ccCtrl::startHoming(), MagAOX::app::zaberCtrl::startHoming(), MagAOX::app::filterWheelCtrl::stop(), MagAOX::app::hsfwCtrl::stop(), MagAOX::app::smc100ccCtrl::stop(), MagAOX::app::zaberCtrl::stop(), and MagAOX::app::sysMonitor::updateVals().
|
inlinevirtual |
Implementation of the while-powered-off FSM.
Reimplemented from MagAOX::app::MagAOXApp< _useINDI >.
Definition at line 1008 of file siglentSDG.hpp.
References onPowerOff().
Write a command to the device.
| [in] | commmand | the complete command string to send to the device |
Definition at line 1058 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_readTimeOut, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, m_telnetConn, m_writeTimeOut, MagAOX::tty::telnetConn::read(), MagAOX::tty::ttyErrorString(), and MagAOX::tty::telnetConn::write().
Referenced by changeAmp(), changeFreq(), changeOfst(), changeOutp(), changePhse(), changeSync(), changeWdth(), changeWvtp(), and normalizeSetup().
|
inline |
Write a command to the device and get the response. Not mutex-ed.
We assume this is called after the m_indiMutex is locked.
| [out] | strRead | The string responseread in |
| [in] | command | The command to send. |
Definition at line 1022 of file siglentSDG.hpp.
References MagAOX::app::MagAOXApp< _useINDI >::log(), MagAOX::app::MagAOXApp< _useINDI >::m_powerState, MagAOX::app::MagAOXApp< _useINDI >::m_powerTargetState, m_readTimeOut, MagAOX::app::MagAOXApp< _useINDI >::m_shutdown, MagAOX::tty::telnetConn::m_strRead, m_telnetConn, m_writeTimeOut, MagAOX::app::stateCodes::NOTCONNECTED, MagAOX::tty::telnetConn::read(), MagAOX::app::MagAOXApp< _useINDI >::state(), MagAOX::tty::ttyErrorString(), MagAOX::tty::telnetConn::write(), and MagAOX::tty::telnetConn::writeRead().
Referenced by queryARWV(), queryBSWV(), queryBTWV(), queryMDWV(), queryOUTP(), querySWWV(), and querySYNC().
|
friend |
Definition at line 29 of file siglentSDG.hpp.
Definition at line 29 of file siglentSDG.hpp.
Definition at line 34 of file siglentSDG.hpp.
Referenced by changeOfst().
Definition at line 35 of file siglentSDG.hpp.
|
protectedinherited |
Flag indicating that all registered Set properties have been updated since last Get.
Definition at line 716 of file MagAOXApp.hpp.
|
private |
Definition at line 39 of file siglentSDG.hpp.
Referenced by changeAmp(), and changeFreq().
|
protectedinherited |
The base path of the MagAO-X system.
Definition at line 188 of file MagAOXApp.hpp.
|
protected |
Time in seconds it takes the device to boot.
Definition at line 51 of file siglentSDG.hpp.
Referenced by appLogic().
|
protected |
The maximum voltage output for channel 1.
Definition at line 78 of file siglentSDG.hpp.
Referenced by changeAmp(), changeOfst(), and loadConfig().
|
protected |
The output frequency of channel 1.
Definition at line 71 of file siglentSDG.hpp.
Referenced by onPowerOff(), queryBSWV(), and recordParams().
|
protected |
Definition at line 90 of file siglentSDG.hpp.
Referenced by changeAmp(), changeFreq(), onPowerOff(), and queryBSWV().
|
protected |
The offset voltage of channel 1.
Definition at line 74 of file siglentSDG.hpp.
Referenced by changeAmp(), loadConfig(), normalizeSetup(), onPowerOff(), queryBSWV(), and recordParams().
|
protected |
std::string m_clock; ///<INTernal or EXTernal
The output status channel 1
Definition at line 70 of file siglentSDG.hpp.
Referenced by appLogic(), onPowerOff(), queryOUTP(), and recordParams().
Flag controlling if C1 output is on after normalization.
Definition at line 59 of file siglentSDG.hpp.
Referenced by loadConfig(), and normalizeSetup().
|
protected |
The phase of channel 1 (SINE only)
Definition at line 75 of file siglentSDG.hpp.
Referenced by queryBSWV(), and recordParams().
|
protected |
the set position voltage of Ch. 1.
Definition at line 56 of file siglentSDG.hpp.
Definition at line 96 of file siglentSDG.hpp.
Referenced by appLogic(), checkSetup(), and recordParams().
|
protected |
The peak-2-peak voltage of channel 1.
Definition at line 72 of file siglentSDG.hpp.
Referenced by changeOfst(), onPowerOff(), queryBSWV(), and recordParams().
|
protected |
Definition at line 91 of file siglentSDG.hpp.
Referenced by changeAmp(), changeFreq(), onPowerOff(), and queryBSWV().
|
protected |
default value for vpp of channel 1
Definition at line 73 of file siglentSDG.hpp.
Referenced by loadConfig(), and normalizeSetup().
|
protected |
The width of channel 1 (PULSE only)
Definition at line 76 of file siglentSDG.hpp.
Referenced by queryBSWV(), and recordParams().
|
protected |
The wave type of channel 1.
Definition at line 77 of file siglentSDG.hpp.
Referenced by onPowerOff(), queryBSWV(), and recordParams().
|
protected |
The maximum voltage output for channel 2.
Definition at line 88 of file siglentSDG.hpp.
Referenced by changeAmp(), changeOfst(), and loadConfig().
|
protected |
The output frequency of channel 2.
Definition at line 81 of file siglentSDG.hpp.
Referenced by onPowerOff(), queryBSWV(), and recordParams().
|
protected |
Definition at line 93 of file siglentSDG.hpp.
Referenced by changeAmp(), changeFreq(), onPowerOff(), and queryBSWV().
|
protected |
The offset voltage of channel 2.
Definition at line 84 of file siglentSDG.hpp.
Referenced by changeAmp(), loadConfig(), normalizeSetup(), onPowerOff(), queryBSWV(), and recordParams().
|
protected |
The output status channel 2.
Definition at line 80 of file siglentSDG.hpp.
Referenced by appLogic(), onPowerOff(), queryOUTP(), and recordParams().
Flag controlling if C2 output is on after normalization. This will only have an effect if m_C1wvtp is "pulse"
Definition at line 60 of file siglentSDG.hpp.
Referenced by loadConfig(), and normalizeSetup().
|
protected |
The phase of channel 2 (SINE only)
Definition at line 85 of file siglentSDG.hpp.
Referenced by queryBSWV(), and recordParams().
|
protected |
the set position voltage of Ch. 2.
Definition at line 57 of file siglentSDG.hpp.
Definition at line 97 of file siglentSDG.hpp.
Referenced by appLogic(), checkSetup(), and recordParams().
|
protected |
The peak-2-peak voltage of channel 2.
Definition at line 82 of file siglentSDG.hpp.
Referenced by changeOfst(), onPowerOff(), queryBSWV(), and recordParams().
|
protected |
Definition at line 94 of file siglentSDG.hpp.
Referenced by changeAmp(), changeFreq(), onPowerOff(), and queryBSWV().
|
protected |
default value for vpp of channel 2
Definition at line 83 of file siglentSDG.hpp.
Referenced by loadConfig(), and normalizeSetup().
|
protected |
The width of channel 2 (PULSE only)
Definition at line 86 of file siglentSDG.hpp.
Referenced by queryBSWV(), and recordParams().
|
protected |
The wave type of channel 2.
Definition at line 87 of file siglentSDG.hpp.
Referenced by onPowerOff(), queryBSWV(), and recordParams().
|
protectedinherited |
The path to calibration files for MagAOX.
Definition at line 196 of file MagAOXApp.hpp.
|
protectedinherited |
The name of a base config class for this app (minus .conf).
Definition at line 194 of file MagAOXApp.hpp.
|
protectedinherited |
The path to configuration files for MagAOX.
Definition at line 192 of file MagAOXApp.hpp.
Referenced by MagAOX::app::ocam2KCtrl::configureAcquisition().
|
protectedinherited |
The name of the configuration file (minus .conf).
Definition at line 190 of file MagAOXApp.hpp.
Referenced by MagAOX::app::mzmqClient::loadConfig(), MagAOX::app::mzmqServer::loadConfig(), MagAOX::app::zaberCtrl::loadConfigImpl(), MagAOX::app::picoMotorCtrl::readChannelCounts(), and MagAOX::app::picoMotorCtrl::writeChannelCounts().
|
protectedinherited |
Path to the cpusets mount.
The path to the cpusets mount is configured by the environment variable defined by MAGOX_env_cpuset in environment.hpp. This environment variable is normally named "CGROUPS1_CPUSET_MOUNTPOINT". If the environment variable is not set, the default defined by MAGAOX_cpusetPath in paths.hpp is used.
Definition at line 207 of file MagAOXApp.hpp.
|
protected |
The device address.
Definition at line 48 of file siglentSDG.hpp.
Referenced by appLogic(), and loadConfig().
|
protected |
The device port.
Definition at line 49 of file siglentSDG.hpp.
Referenced by appLogic(), and loadConfig().
|
protectedinherited |
Full path name of the INDI driver control FIFO.
This is currently only used to signal restarts.
Definition at line 727 of file MagAOXApp.hpp.
|
protectedinherited |
Full path name of the INDI driver input FIFO.
Definition at line 719 of file MagAOXApp.hpp.
|
protectedinherited |
Full path name of the INDI driver output FIFO.
Definition at line 722 of file MagAOXApp.hpp.
|
privateinherited |
The user id of the process as called (i.e. the higher privileged id of the owner, root if setuid).
Definition at line 422 of file MagAOXApp.hpp.
|
privateinherited |
The real user id of the proces (i.e. the lower privileged id of the user)
Definition at line 421 of file MagAOXApp.hpp.
|
privateinherited |
Definition at line 582 of file MagAOXApp.hpp.
|
inherited |
Mutex for locking INDI callback maps and per-entry callback state.
Lock ordering policy: 1) Prefer never holding both m_indiMutex and m_indiCallBackMutex at the same time. 2) If both are required in future code, always acquire m_indiMutex before m_indiCallBackMutex.
Definition at line 669 of file MagAOXApp.hpp.
|
inherited |
The INDI driver wrapper. Constructed and initialized by execute, which starts and stops communications.
Definition at line 659 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().
|
inherited |
Mutex for locking INDI communications.
Definition at line 662 of file MagAOXApp.hpp.
Referenced by MagAOX::app::acronameUsbHub::appLogic(), MagAOX::app::andorCtrl::appLogic(), MagAOX::app::baslerCtrl::appLogic(), MagAOX::app::cameraSim::appLogic(), MagAOX::app::cred2Ctrl::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::hsfwCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), MagAOX::app::picamCtrl::appLogic(), MagAOX::app::picoMotorCtrl::appLogic(), appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::trippLitePDU::appLogic(), MagAOX::app::ttmModulator::appLogic(), MagAOX::app::xt1121DCDU::appLogic(), MagAOX::app::zaberCtrl::appLogic(), MagAOX::app::zylaCtrl::appLogic(), changeAmp(), changeFreq(), changeOfst(), changeOutp(), changePhse(), changeSync(), changeWdth(), changeWvtp(), MagAOX::app::xt1121Ctrl::channelSetCallback(), MagAOX::app::andorCtrl::configureAcquisition(), MagAOX::app::cred2Ctrl::configureAcquisition(), MagAOX::app::ocam2KCtrl::configureAcquisition(), MagAOX::app::picamCtrl::configureAcquisition(), MagAOX::app::qhyCtrl::configureAcquisition(), MagAOX::app::zylaCtrl::configureAcquisition(), MagAOX::app::xt1121Ctrl::getState(), 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::cred2Ctrl::onPowerOff(), MagAOX::app::ocam2KCtrl::onPowerOff(), MagAOX::app::picamCtrl::onPowerOff(), onPowerOff(), MagAOX::app::xt1121Ctrl::onPowerOff(), MagAOX::app::zylaCtrl::onPowerOff(), MagAOX::app::filterWheelCtrl::onPowerOnConnect(), 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::cred2Ctrl::whilePowerOff(), MagAOX::app::ocam2KCtrl::whilePowerOff(), and MagAOX::app::zylaCtrl::whilePowerOff().
|
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 707 of file MagAOXApp.hpp.
|
protected |
Definition at line 388 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 389 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 386 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 391 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 392 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 390 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 384 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryOUTP().
|
protected |
Definition at line 387 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 393 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 395 of file siglentSDG.hpp.
Referenced by appLogic(), appStartup(), and onPowerOff().
|
protected |
Definition at line 394 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 385 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 401 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 402 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 399 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 404 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 405 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 403 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 397 of file siglentSDG.hpp.
Referenced by appStartup(), and queryOUTP().
|
protected |
Definition at line 400 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 406 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 408 of file siglentSDG.hpp.
Referenced by appLogic(), appStartup(), and onPowerOff().
|
protected |
Definition at line 407 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protected |
Definition at line 398 of file siglentSDG.hpp.
Referenced by appStartup(), onPowerOff(), and queryBSWV().
|
protectedinherited |
indi Property to clear an FSM alert.
Definition at line 1137 of file MagAOXApp.hpp.
|
protectedinherited |
INDI property used to communicate power state.
Definition at line 1193 of file MagAOXApp.hpp.
|
protectedinherited |
indi Property to report the application state.
Definition at line 1134 of file MagAOXApp.hpp.
|
protected |
Definition at line 382 of file siglentSDG.hpp.
Referenced by appStartup().
|
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 712 of file MagAOXApp.hpp.
|
staticinherited |
Definition at line 345 of file MagAOXApp.hpp.
|
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 209 of file MagAOXApp.hpp.
Referenced by MagAOX::app::trippLitePDU::trippLitePDU(), and appLogic().
|
private |
Definition at line 40 of file siglentSDG.hpp.
Referenced by changeAmp(), and changeFreq().
|
inherited |
The maximum interval, in seconds, between telemetry records. Default is 10.0 seconds.
Definition at line 83 of file telemeter.hpp.
|
protectedinherited |
This process's PID.
Definition at line 506 of file MagAOXApp.hpp.
|
protectedinherited |
The INDI property name of the channel controlling this device's power.
Definition at line 1179 of file MagAOXApp.hpp.
|
protectedinherited |
The INDI device name of the power controller.
Definition at line 1178 of file MagAOXApp.hpp.
Definition at line 101 of file siglentSDG.hpp.
Referenced by appLogic().
|
protectedinherited |
The INDI element name to monitor for this device's power state.
Definition at line 1180 of file MagAOXApp.hpp.
|
protectedinherited |
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.
Definition at line 1173 of file MagAOXApp.hpp.
Referenced by MagAOX::app::acronameUsbHub::acronameUsbHub(), MagAOX::app::andorCtrl::andorCtrl(), MagAOX::app::baslerCtrl::baslerCtrl(), MagAOX::app::cameraSim::cameraSim(), MagAOX::app::cred2Ctrl::cred2Ctrl(), MagAOX::app::filterWheelCtrl::filterWheelCtrl(), MagAOX::app::hsfwCtrl::hsfwCtrl(), MagAOX::app::mzmqClient::mzmqClient(), MagAOX::app::mzmqServer::mzmqServer(), MagAOX::app::ocam2KCtrl::ocam2KCtrl(), MagAOX::app::picamCtrl::picamCtrl(), MagAOX::app::picoMotorCtrl::picoMotorCtrl(), MagAOX::app::qhyCtrl::qhyCtrl(), siglentSDG(), MagAOX::app::smc100ccCtrl::smc100ccCtrl(), MagAOX::app::streamWriter::streamWriter(), MagAOX::app::ttmModulator::ttmModulator(), MagAOX::app::xt1121Ctrl::xt1121Ctrl(), MagAOX::app::xt1121DCDU::xt1121DCDU(), and MagAOX::app::zylaCtrl::zylaCtrl().
|
private |
Counts the number of loops since power-on, used to control logging of connect failures.
Definition at line 103 of file siglentSDG.hpp.
Referenced by appLogic().
|
protectedinherited |
Default time in sec to wait for device to boot after power on.
Definition at line 1183 of file MagAOXApp.hpp.
Referenced by MagAOX::app::andorCtrl::andorCtrl(), MagAOX::app::ocam2KCtrl::ocam2KCtrl(), MagAOX::app::smc100ccCtrl::smc100ccCtrl(), MagAOX::app::xt1121Ctrl::xt1121Ctrl(), and MagAOX::app::zylaCtrl::zylaCtrl().
|
protectedinherited |
Current power state, 1=On, 0=Off, -1=Unk.
Definition at line 1190 of file MagAOXApp.hpp.
Referenced by MagAOX::app::andorCtrl::appLogic(), MagAOX::app::filterWheelCtrl::appLogic(), MagAOX::app::ocam2KCtrl::appLogic(), appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), MagAOX::app::xt1121Ctrl::appLogic(), MagAOX::app::zylaCtrl::appLogic(), changeAmp(), changeFreq(), changeOfst(), changeOutp(), changePhse(), changeSync(), changeWdth(), changeWvtp(), MagAOX::app::xt1121Ctrl::channelSetCallback(), checkSetup(), MagAOX::app::picamCtrl::getAcquisitionState(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::picamCtrl::getPicamParameter(), MagAOX::app::xt1121Ctrl::getState(), MagAOX::app::INDI_NEWCALLBACK_DEFN(), queryARWV(), queryBSWV(), queryBTWV(), queryMDWV(), queryOUTP(), querySWWV(), querySYNC(), MagAOX::app::picamCtrl::reconfig(), libXWCTest::ocam2KCtrlTest::TEST_CASE(), writeCommand(), and writeRead().
|
protectedinherited |
The INDI element name to monitor for this device's power state.
Definition at line 1181 of file MagAOXApp.hpp.
|
protectedinherited |
Current target power state, 1=On, 0=Off, -1=Unk.
Definition at line 1191 of file MagAOXApp.hpp.
Referenced by appLogic(), MagAOX::app::smc100ccCtrl::appLogic(), changeAmp(), changeFreq(), changeOfst(), changeOutp(), changePhse(), changeSync(), changeWdth(), changeWvtp(), checkSetup(), MagAOX::app::smc100ccCtrl::getCtrlState(), MagAOX::app::smc100ccCtrl::getLastError(), MagAOX::app::smc100ccCtrl::getPosition(), MagAOX::app::smc100ccCtrl::moveTo(), queryARWV(), queryBSWV(), queryBTWV(), queryMDWV(), queryOUTP(), querySWWV(), querySYNC(), MagAOX::app::smc100ccCtrl::startHoming(), MagAOX::app::smc100ccCtrl::stop(), libXWCTest::ocam2KCtrlTest::TEST_CASE(), MagAOX::app::smc100ccCtrl::testConnection(), writeCommand(), and writeRead().
|
protected |
The timeout for reading from the device [msec].
Definition at line 54 of file siglentSDG.hpp.
Referenced by appLogic(), loadConfig(), writeCommand(), and writeRead().
|
protectedinherited |
Path to the secrets directory, where passwords, etc, are stored.
Definition at line 200 of file MagAOXApp.hpp.
|
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 397 of file MagAOXApp.hpp.
|
protectedinherited |
Flag to signal it's time to shutdown. When not 0, the main loop exits.
Definition at line 214 of file MagAOXApp.hpp.
Referenced by appLogic(), MagAOX::app::smc100ccCtrl::appStartup(), MagAOX::app::picoMotorCtrl::channelThreadExec(), checkSetup(), MagAOX::app::streamWriter::fgThreadExec(), MagAOX::app::andorCtrl::loadConfig(), MagAOX::app::baslerCtrl::loadConfig(), MagAOX::app::cameraSim::loadConfig(), MagAOX::app::cred2Ctrl::loadConfig(), MagAOX::app::picoMotorCtrl::loadConfig(), MagAOX::app::smc100ccCtrl::loadConfig(), MagAOX::app::streamWriter::loadConfig(), MagAOX::app::sysMonitor::loadConfig(), queryARWV(), queryBSWV(), queryBTWV(), queryMDWV(), queryOUTP(), querySWWV(), querySYNC(), MagAOX::app::sysMonitor::setlatThreadExec(), MagAOX::app::streamWriter::swThreadExec(), libXWCTest::flowRPMTest::TEST_CASE(), libXWCTest::flowRPMTest::TEST_CASE(), writeCommand(), and writeRead().
|
privateinherited |
The application's state. Never ever set this directly, use state(const stateCodeT & s).
Definition at line 576 of file MagAOXApp.hpp.
|
privateinherited |
Definition at line 579 of file MagAOXApp.hpp.
|
privateinherited |
Counter and flag for use to log errors just once. Never ever access directly, use stateLogged().
Definition at line 584 of file MagAOXApp.hpp.
|
privateinherited |
The save-set user id of the process.
Definition at line 424 of file MagAOXApp.hpp.
|
protectedinherited |
The path to the system directory, for PID file, etc.
Definition at line 198 of file MagAOXApp.hpp.
Referenced by MagAOX::app::picoMotorCtrl::readChannelCounts(), and MagAOX::app::picoMotorCtrl::writeChannelCounts().
|
inherited |
Definition at line 81 of file telemeter.hpp.
|
protected |
The telnet connection manager.
Definition at line 65 of file siglentSDG.hpp.
Referenced by siglentSDG(), appLogic(), writeCommand(), and writeRead().
|
staticconstexprprotectedinherited |
Flag controlling whether INDI is used. If false, then no INDI code executes.
Definition at line 654 of file MagAOXApp.hpp.
|
protected |
The chosen funciton to generate
Definition at line 67 of file siglentSDG.hpp.
Referenced by appStartup(), changeAmp(), changeFreq(), changePhse(), changeWdth(), loadConfig(), normalizeSetup(), onPowerOff(), and queryBSWV().
|
protected |
The timeout for writing to the device [msec].
Definition at line 53 of file siglentSDG.hpp.
Referenced by appLogic(), loadConfig(), writeCommand(), and writeRead().
|
protectedinherited |
The name of the PID file.
Definition at line 504 of file MagAOXApp.hpp.