bool INDI::FilterWheel::ISNewNumber (const char * dev, const char * name, double values[], char * names[], int n) { // first check if it's for our device //IDLog("INDI::FilterWheel::ISNewNumber %s\n",name); if(strcmp(dev,getDeviceName())==0) { // This is for our device // Now lets see if it's something we process here if(strcmp(name,"FILTER_SLOT")==0) { processFilterSlot(dev, values, names); return true; } } // if we didn't process it, continue up the chain, let somebody else // give it a shot return DefaultDevice::ISNewNumber(dev,name,values,names,n); }
bool MICCD::ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) { if(strcmp(dev, getDeviceName()) == 0) { if (!strcmp(name, FilterSlotNP.name)) { processFilterSlot(getDeviceName(), values, names); return true; } if (!strcmp(name, FanNP.name)) { IUUpdateNumber(&FanNP, values, names, n); if (!isSimulation() && gxccd_set_fan(cameraHandle, FanN[0].value) < 0) { char errorStr[MAX_ERROR_LEN]; gxccd_get_last_error(cameraHandle, errorStr, sizeof(errorStr)); DEBUGF(INDI::Logger::DBG_ERROR, "Setting fan failed: %s.", errorStr); FanNP.s = IPS_ALERT; } else { FanNP.s = IPS_OK; } IDSetNumber(&FanNP, NULL); return true; } if (!strcmp(name, WindowHeatingNP.name)) { IUUpdateNumber(&WindowHeatingNP, values, names, n); if (!isSimulation() && gxccd_set_window_heating(cameraHandle, WindowHeatingN[0].value) < 0) { char errorStr[MAX_ERROR_LEN]; gxccd_get_last_error(cameraHandle, errorStr, sizeof(errorStr)); DEBUGF(INDI::Logger::DBG_ERROR, "Setting heating failed: %s.", errorStr); WindowHeatingNP.s = IPS_ALERT; } else { WindowHeatingNP.s = IPS_OK; } IDSetNumber(&WindowHeatingNP, NULL); return true; } if (!strcmp(name, TemperatureRampNP.name)) { IUUpdateNumber(&TemperatureRampNP, values, names, n); if (!isSimulation() && gxccd_set_temperature_ramp(cameraHandle, TemperatureRampN[0].value) < 0) { char errorStr[MAX_ERROR_LEN]; gxccd_get_last_error(cameraHandle, errorStr, sizeof(errorStr)); DEBUGF(INDI::Logger::DBG_ERROR, "Setting temp. ramp failed: %s.", errorStr); TemperatureRampNP.s = IPS_ALERT; } else { TemperatureRampNP.s = IPS_OK; } IDSetNumber(&TemperatureRampNP, NULL); return true; } } return INDI::CCD::ISNewNumber(dev, name, values, names, n); }
bool QHYCCD::ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n) { // first check if it's for our device //IDLog("INDI::CCD::ISNewNumber %s\n",name); if(strcmp(dev,getDeviceName())==0) { if (strcmp(name,FilterSlotNP.name)==0) { processFilterSlot(getDeviceName(), values, names); return true; } if(strcmp(name,GainNP.name) == 0) { IUUpdateNumber(&GainNP, values, names, n); SetQHYCCDParam(camhandle,CONTROL_GAIN,GainN[0].value); DEBUGF(INDI::Logger::DBG_SESSION, "Current %s value %f",GainNP.name,GainN[0].value); GainNP.s = IPS_OK; IDSetNumber(&GainNP, NULL); //saveConfig(); return true; } if(strcmp(name,OffsetNP.name) == 0) { IUUpdateNumber(&OffsetNP, values, names, n); SetQHYCCDParam(camhandle,CONTROL_OFFSET,OffsetN[0].value); DEBUGF(INDI::Logger::DBG_SESSION, "Current %s value %f",OffsetNP.name,OffsetN[0].value); OffsetNP.s = IPS_OK; IDSetNumber(&OffsetNP, NULL); saveConfig(); return true; } if(strcmp(name,SpeedNP.name) == 0) { IUUpdateNumber(&SpeedNP, values, names, n); SetQHYCCDParam(camhandle,CONTROL_SPEED,SpeedN[0].value); DEBUGF(INDI::Logger::DBG_SESSION, "Current %s value %f",SpeedNP.name,SpeedN[0].value); SpeedNP.s = IPS_OK; IDSetNumber(&SpeedNP, NULL); saveConfig(); return true; } if(strcmp(name,USBTrafficNP.name) == 0) { IUUpdateNumber(&USBTrafficNP, values, names, n); SetQHYCCDParam(camhandle,CONTROL_USBTRAFFIC,USBTrafficN[0].value); DEBUGF(INDI::Logger::DBG_SESSION, "Current %s value %f",USBTrafficNP.name,USBTrafficN[0].value); USBTrafficNP.s = IPS_OK; IDSetNumber(&USBTrafficNP, NULL); saveConfig(); return true; } } // if we didn't process it, continue up the chain, let somebody else // give it a shot return INDI::CCD::ISNewNumber(dev,name,values,names,n); }