void INDI::BaseClientQt::setDriverConnection(bool status, const char * deviceName) { INDI::BaseDevice * drv = getDevice(deviceName); ISwitchVectorProperty * drv_connection = NULL; if (drv == NULL) { IDLog("INDI::BaseClientQt: Error. Unable to find driver %s\n", deviceName); return; } drv_connection = drv->getSwitch("CONNECTION"); if (drv_connection == NULL) return; // If we need to connect if (status) { // If there is no need to do anything, i.e. already connected. if (drv_connection->sp[0].s == ISS_ON) return; IUResetSwitch(drv_connection); drv_connection->s = IPS_BUSY; drv_connection->sp[0].s = ISS_ON; drv_connection->sp[1].s = ISS_OFF; sendNewSwitch(drv_connection); } else { // If there is no need to do anything, i.e. already disconnected. if (drv_connection->sp[1].s == ISS_ON) return; IUResetSwitch(drv_connection); drv_connection->s = IPS_BUSY; drv_connection->sp[0].s = ISS_OFF; drv_connection->sp[1].s = ISS_ON; sendNewSwitch(drv_connection); } }
void INDI::BaseClientQt::sendNewSwitch (const char * deviceName, const char * propertyName, const char * elementName) { INDI::BaseDevice * drv = getDevice(deviceName); if (drv == NULL) return; ISwitchVectorProperty * svp = drv->getSwitch(propertyName); if (svp == NULL) return; ISwitch * sp = IUFindSwitch(svp, elementName); if (sp == NULL) return; sp->s = ISS_ON; sendNewSwitch(svp); }