1#ifndef app_tests_MagAOXApp_test_hpp
2#define app_tests_MagAOXApp_test_hpp
11#undef APP_XWCTEST_BASE
12#ifdef XWCTEST_NAMESPACE
13 #define APP_XWCTEST_BASE MagAOX::app::XWCTEST_NAMESPACE::MagAOXApp<true>
15 #define APP_XWCTEST_BASE MagAOX::app::MagAOXApp<true>
18#ifdef XWCTEST_NAMESPACE
29 bool appStartupFail {
false};
30 bool appLogicFail {
false};
31 bool appShutdownFail {
false};
35 config.add(
"name2",
"",
"name2", argType::Required,
"",
"",
true,
"string",
"" );
36 config.m_sources =
true;
39 void setup(
int argc,
char **argv )
41 APP_XWCTEST_BASE::setup( argc, argv );
74 return APP_XWCTEST_BASE::m_configPathGlobal;
79 return APP_XWCTEST_BASE::m_configPathUser;
84 return APP_XWCTEST_BASE::m_configPathLocal;
89 return APP_XWCTEST_BASE::invokedName;
94 return APP_XWCTEST_BASE::doHelp;
99 return APP_XWCTEST_BASE::m_configOnly;
104 m_powerMgtEnabled = pme;
119 int called_back{ 0 };
128 pcf::IndiProperty ip( pcf::IndiProperty::Switch );
129 ip.setDevice( configName() );
130 ip.setName(
"fsm_clear_alert" );
131 ip.add( pcf::IndiElement(
"request" ) );
132 ip[
"request"].setSwitchState( pcf::IndiElement::On );
134 st_newCallBack_clearFSMAlert(
this, ip );
139 return m_powerDevice;
144 return m_powerChannel;
149 return m_powerElement;
154 return m_powerTargetElement;
159 return m_powerOnWait;
164 return APP_XWCTEST_BASE::onPowerOff();
169 return APP_XWCTEST_BASE::whilePowerOff();
174 return APP_XWCTEST_BASE::powerOnWaitElapsed();
179 return APP_XWCTEST_BASE::powerState();
184 m_indiP_powerChannel = pcf::IndiProperty( pcf::IndiProperty::Text );
185 m_powerDevice = device;
186 m_indiP_powerChannel.setDevice( device );
188 m_powerChannel = channel;
189 m_indiP_powerChannel.setName( channel );
194 m_powerOnWait = powerOnWait;
195 m_powerOnCounter = powerOnCounter;
196 m_loopPause = loopPause;
201 pcf::IndiProperty ip( pcf::IndiProperty::Text );
202 ip.setDevice( m_powerDevice );
203 ip.setName( m_powerChannel );
204 ip.add( pcf::IndiElement(
"state" ) );
205 ip[
"state"].setValue( state );
207 ip.add( pcf::IndiElement(
"target" ) );
208 ip[
"target"].setValue( target );
210 return setCallBack_m_indiP_powerChannel( ip );
215 return APP_XWCTEST_BASE::setSigTermHandler();
220 APP_XWCTEST_BASE::_handlerSigTerm( signum, siginf, ucont );
225 return APP_XWCTEST_BASE::setEuidReal();
234 return APP_XWCTEST_BASE::setEuidReal();
242 return APP_XWCTEST_BASE::setEuidCalled();
247 m_euidCalled = euidc;
248 return APP_XWCTEST_BASE::setEuidCalled();
253 return APP_XWCTEST_BASE::lockPID();
258 return APP_XWCTEST_BASE::unlockPID();
262int callback(
void *app,
const pcf::IndiProperty &ipRecv )
264 static_cast<void>( ipRecv );
273#ifdef XWCTEST_NAMESPACE
#define XWCTEST_NAMESPACE
int callback(void *app, const pcf::IndiProperty &ipRecv)
Namespace for all libXWC tests.
MagAOXApp_test(bool gitmod=false)
std::string powerDevice()
void _handlerSigTerm(int signum, siginfo_t *siginf, void *ucont)
void configurePowerManagement(const std::string &device, const std::string &channel)
int setEuidReal(int euidr, bool set=true)
std::string configPathUser()
void configurePowerOnWait(unsigned long powerOnWait, int powerOnCounter, int loopPause)
std::string & invokedName()
std::string powerElement()
void setConfigBase(const std::string &cb)
int setPowerState(const std::string &state, const std::string target)
std::string configPathLocal()
bool powerOnWaitElapsed()
void setConfigName(const std::string &cn)
std::string powerTargetElement()
void setPowerMgtEnabled(bool pme)
int setEuidCalled(int euidc)
std::string configPathGlobal()
std::string powerChannel()
void setup(int argc, char **argv)
virtual int appShutdown()