bool MaxDomeII::updateProperties() { INDI::Dome::updateProperties(); if (isConnected()) { defineNumber(&HomeAzimuthNP); defineNumber(&TicksPerTurnNP); defineNumber(&ShutterOperationAzimuthNP); defineSwitch(&ShutterConflictSP); defineSwitch(&ShutterModeSP); defineSwitch(&HomeSP); defineNumber(&WatchDogNP); SetupParms(); } else { deleteProperty(HomeAzimuthNP.name); deleteProperty(TicksPerTurnNP.name); deleteProperty(ShutterOperationAzimuthNP.name); deleteProperty(ShutterConflictSP.name); deleteProperty(ShutterModeSP.name); deleteProperty(HomeSP.name); deleteProperty(WatchDogNP.name); } return true; }
bool IpFocus::updateProperties() { INDI::Focuser::updateProperties(); if (isConnected()) { defineNumber(&SeeingNP); defineNumber(&FWHMNP); defineText(&BacklashStepsP); defineText(&FocuserEndpointTP); defineText(&AlwaysApproachDirectionP); SetupParms(); } else { deleteProperty(SeeingNP.name); deleteProperty(FWHMNP.name); deleteProperty(BacklashStepsP.name); deleteProperty(FocuserEndpointTP.name); deleteProperty(AlwaysApproachDirectionP.name); } return true; }
/************************************************************************************ * * ***********************************************************************************/ bool ScopeDome::updateProperties() { INDI::Dome::updateProperties(); if (isConnected()) { defineSwitch(&FindHomeSP); defineSwitch(&DerotateSP); defineSwitch(&AutoCloseSP); defineSwitch(&PowerRelaysSP); defineSwitch(&RelaysSP); defineNumber(&DomeHomePositionNP); defineNumber(&EnvironmentSensorsNP); defineSwitch(&SensorsSP); defineSwitch(&ParkShutterSP); defineNumber(&FirmwareVersionsNP); SetupParms(); } else { deleteProperty(FindHomeSP.name); deleteProperty(DerotateSP.name); deleteProperty(PowerRelaysSP.name); deleteProperty(RelaysSP.name); deleteProperty(SensorsSP.name); deleteProperty(AutoCloseSP.name); deleteProperty(DomeHomePositionNP.name); deleteProperty(EnvironmentSensorsNP.name); deleteProperty(ParkShutterSP.name); deleteProperty(FirmwareVersionsNP.name); } return true; }
/** Determine what atoms each mask pertains to for the current parm file. */ Action::RetType Action_LIE::Setup(ActionSetup& setup) { if (setup.Top().SetupIntegerMask( Mask1_ )) return Action::ERR; if (setup.Top().SetupIntegerMask( Mask2_ )) return Action::ERR; mprintf("\tLIE: %i Ligand Atoms, %i Surrounding Atoms\n", Mask1_.Nselected(), Mask2_.Nselected()); if (setup.CoordInfo().TrajBox().Type() == Box::NOBOX) { mprinterr("Error: LIE: Must have explicit solvent system with box info\n"); return Action::ERR; } if (Mask1_.None() || Mask2_.None()) { mprintf("Warning: LIE: One or both masks have no atoms.\n"); return Action::SKIP; } if (SetupParms(setup.Top())) return Action::ERR; // Back up the parm CurrentParm_ = setup.TopAddress(); return Action::OK; }
bool RollOff::updateProperties() { INDI::Dome::updateProperties(); if (isConnected()) { SetupParms(); } return true; }
bool FocusSim::updateProperties() { INDI::Focuser::updateProperties(); if (isConnected()) { defineNumber(&SeeingNP); defineNumber(&FWHMNP); SetupParms(); } else { deleteProperty(SeeingNP.name); deleteProperty(FWHMNP.name); } return true; }
/************************************************************************************ * * ***********************************************************************************/ bool BaaderDome::updateProperties() { INDI::Dome::updateProperties(); if (isConnected()) { defineSwitch(&DomeFlapSP); defineSwitch(&CalibrateSP); SetupParms(); } else { deleteProperty(DomeFlapSP.name); deleteProperty(CalibrateSP.name); } return true; }
// Action_Spam::setup() Action::RetType Action_Spam::Setup(Topology* currentParm, Topology** parmAddress) { // We need box info if (currentParm->BoxType() == Box::NOBOX) { mprinterr("Error: SPAM: Must have explicit solvent with periodic boundaries!"); return Action::ERR; } // See if our box dimensions are too small for our cutoff... if (currentParm->ParmBox().BoxX() < doublecut_ || currentParm->ParmBox().BoxY() < doublecut_ || currentParm->ParmBox().BoxZ() < doublecut_) { mprinterr("Error: SPAM: The box appears to be too small for your cutoff!\n"); return Action::ERR; } // Set up the solvent_residues_ vector int resnum = 0; for (Topology::res_iterator res = currentParm->ResStart(); res != currentParm->ResEnd(); res++) { if (res->Name().Truncated() == solvname_) { solvent_residues_.push_back(*res); // Tabulate COM double mass = 0.0; for (int i = res->FirstAtom(); i < res->LastAtom(); i++) mass += (*currentParm)[i].Mass(); } resnum++; } // DEBUG mprintf("SPAM: Found %d solvent residues [%s]\n", solvent_residues_.size(), solvname_.c_str()); // Set up the charge array and check that we have enough info if (SetupParms(currentParm)) return Action::ERR; // Back up the parm // NOTE: This is a full copy - use reference instead? CurrentParm_ = *currentParm; return Action::OK; }
bool CCDSim::updateProperties() { INDI::CCD::updateProperties(); if (isConnected()) { SetupParms(); if(HasGuideHead) { SetGuidHeadParams(500,290,16,9.8,12.6); GuideCCD.setFrameBufferSize(GuideCCD.getXRes() * GuideCCD.getYRes() * 2); } defineNumber(&FilterSlotNP); if (FilterNameT != NULL) defineText(FilterNameTP); } return true; }
bool CCDSim::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) { // This is for our device // Now lets see if it's something we process here //IDLog("CCDSim::ISNewNumber %s\n",name); if(strcmp(name,"SIMULATOR_SETTINGS")==0) { IUUpdateNumber(SimulatorSettingsNV, values, names, n); SimulatorSettingsNV->s=IPS_OK; // Reset our parameters now SetupParms(); IDSetNumber(SimulatorSettingsNV,NULL); saveConfig(); //IDLog("Frame set to %4.0f,%4.0f %4.0f x %4.0f\n",CcdFrameN[0].value,CcdFrameN[1].value,CcdFrameN[2].value,CcdFrameN[3].value); //seeing=SimulatorSettingsN[0].value; return true; } if (strcmp(name, FilterSlotNP.name)==0) { processFilterProperties(name, values, names, n); 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); }