bool Weather::updateProperties() { DefaultDevice::updateProperties(); if (isConnected()) { WI::updateProperties(); updateTimerID = -1; defineSwitch(&RefreshSP); defineNumber(&UpdatePeriodNP); defineNumber(&LocationNP); defineText(&ActiveDeviceTP); DEBUG(Logger::DBG_SESSION, "Weather update is in progress..."); TimerHit(); } else { WI::updateProperties(); deleteProperty(RefreshSP.name); deleteProperty(UpdatePeriodNP.name); deleteProperty(LocationNP.name); deleteProperty(ActiveDeviceTP.name); } return true; }
bool Weather::ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) { if (dev != nullptr && strcmp(dev, getDeviceName()) == 0) { if (!strcmp(name, RefreshSP.name)) { RefreshS[0].s = ISS_OFF; RefreshSP.s = IPS_OK; IDSetSwitch(&RefreshSP, nullptr); TimerHit(); } } return DefaultDevice::ISNewSwitch(dev, name, states, names, n); }
bool DomeScript::updateProperties() { INDI::Dome::updateProperties(); if (isConnected()) { if (InitPark()) { SetAxis1ParkDefault(0); } else { SetAxis1Park(0); SetAxis1ParkDefault(0); } TimerHit(); } return true; }
bool Weather::ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) { if (dev != nullptr && strcmp(dev, getDeviceName()) == 0) { // Refresh if (!strcmp(name, RefreshSP.name)) { RefreshS[0].s = ISS_OFF; RefreshSP.s = IPS_OK; IDSetSwitch(&RefreshSP, nullptr); TimerHit(); } // Override if (!strcmp(name, OverrideSP.name)) { IUUpdateSwitch(&OverrideSP, states, names, n); if (OverrideS[0].s == ISS_ON) { LOG_WARN("Weather override is enabled. Observatory is not safe. Turn off override as soon as possible."); OverrideSP.s = IPS_BUSY; critialParametersLP.s = IPS_OK; IDSetLight(&critialParametersLP, nullptr); } else { LOG_INFO("Weather override is disabled"); OverrideSP.s = IPS_IDLE; syncCriticalParameters(); } IDSetSwitch(&OverrideSP, nullptr); return true; } } return DefaultDevice::ISNewSwitch(dev, name, states, names, n); }