void ImagerTesterBase::AssertPowered() { if (!isPowered()) { puts("ERROR: Imager is not PowerUp. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); } }
void Turret::onPowerStateChange(GameBase* generator) { if (isGhost() == false && isPowered() == false && m_fireState == Firing) { unshoot(); } Parent::onPowerStateChange(generator); }
void GeneticOperators::Initializer(GAGenome& g)//todo: better initializer { std::cout<<"calling Initializer\n"; GAListGenome<Gene>& genome = (GAListGenome<Gene>&)g; if(_seedOriginalPosition){ while(genome.head()) genome.destroy(); // destroy any pre-existing list for(std::vector<SparCraft::Unit>::const_iterator it=_buildings.begin(); it!=_buildings.end();it++){ Gene gene(it->type(),BWAPI::TilePosition((it->pos().x()-it->type().dimensionLeft())/TILE_SIZE,(it->pos().y()-it->type().dimensionUp())/TILE_SIZE)); genome.insert(gene,GAListBASE::TAIL); } if(!isLegal(genome)||!isPowered(genome)){ std::cout<<"Repairing setup from file"<<std::endl; if(!GeneticOperators::repair(genome)){ System::FatalError("Couldn't repair at initializer"); } } _seedOriginalPosition=false; }else{ do{ while(genome.head()) genome.destroy(); // destroy any pre-existing list bool needsRepair=false; for(std::vector<SparCraft::Unit>::const_iterator it=_buildings.begin(); it!=_buildings.end();it++){ BWAPI::TilePosition pos(_defendPlayer->getGoal().x()/TILE_SIZE,_defendPlayer->getGoal().y()/TILE_SIZE); Gene gene(it->type(),pos); // BWAPI::TilePosition offset(0,0); int n=placementRetries; do{ do{ // gene.undo(offset); // offset=BWAPI::TilePosition(GARandomInt(-mutDistance,mutDistance),GARandomInt(-mutDistance,mutDistance)); // gene.move(offset); gene.setPosition(BWAPI::TilePosition( GARandomInt(_baseLeft,_baseRight), GARandomInt(_baseTop,_baseBottom))); }while(!_map->canBuildHere(gene.getType(),gene.getCenterPos())); if(isLegal(genome,gene)){ if(!gene.getType().requiresPsi()||isPowered(genome,gene)){ genome.insert(gene,GAListBASE::TAIL); break; } } n--; }while(n>0); if(n==0){//if we reached the max amount of tries, add it anyway and try to repair later genome.insert(gene,GAListBASE::TAIL); needsRepair=true; std::cout<<"Max amount of retries for initial location failed, will try to repair\n"; } // std::cout<<"building added"<<std::endl; } if(needsRepair||!isLegal(genome)){ if(!GeneticOperators::repair(genome)){ System::FatalError("Couldn't repair at initializer"); } } }while(!isLegal(genome)); } // Mutator(genome,0.5,20); }
void BasicDeviceDriver::updateStateMachine(void) { switch (dequeueState()) { // Wait for activation. case SM_IDLE: break; // Begin activation sequence. case SM_ACT_BEGIN: setEntityState(IMC::EntityState::ESTA_NORMAL, Status::CODE_ACTIVATING); m_wdog.setTop(getActivationTime()); queueState(SM_ACT_POWER_ON); break; // Turn power on. case SM_ACT_POWER_ON: turnPowerOn(); queueState(SM_ACT_POWER_WAIT); break; // Wait for power to be on. case SM_ACT_POWER_WAIT: if (isPowered()) { m_power_on_timer.setTop(m_post_power_on_delay); queueState(SM_ACT_DEV_WAIT); } if (m_wdog.overflow()) { failActivation(DTR("failed to turn power on")); queueState(SM_IDLE); } break; // Connect to device. case SM_ACT_DEV_WAIT: if (m_wdog.overflow()) { failActivation(DTR("failed to connect to device")); queueState(SM_IDLE); } else if (m_power_on_timer.overflow()) { if (connect()) queueState(SM_ACT_DEV_SYNC); } break; // Synchronize with device. case SM_ACT_DEV_SYNC: if (m_wdog.overflow()) { failActivation(DTR("failed to synchronize with device")); queueState(SM_IDLE); } else { if (synchronize()) queueState(SM_ACT_LOG_REQUEST); } break; // Request log name. case SM_ACT_LOG_REQUEST: if (m_wdog.overflow()) { failActivation(DTR("failed to request current log name")); queueState(SM_IDLE); } else { closeLog(); requestLogName(); queueState(SM_ACT_LOG_WAIT); } break; // Wait for log name. case SM_ACT_LOG_WAIT: if (m_wdog.overflow()) { failActivation(DTR("failed to retrieve current log name")); queueState(SM_IDLE); } else { if (m_log_opened) queueState(SM_ACT_DONE); } break; // Activation procedure is complete. case SM_ACT_DONE: activate(); queueState(SM_ACT_SAMPLE); break; // Read samples. case SM_ACT_SAMPLE: readSample(); break; // Start deactivation procedure. case SM_DEACT_BEGIN: setEntityState(IMC::EntityState::ESTA_NORMAL, Status::CODE_DEACTIVATING); m_wdog.setTop(getDeactivationTime()); queueState(SM_DEACT_DISCONNECT); break; // Gracefully disconnect from device. case SM_DEACT_DISCONNECT: disconnect(); closeLog(); m_power_off_timer.setTop(m_power_off_delay); queueState(SM_DEACT_POWER_OFF); break; // Turn power off. case SM_DEACT_POWER_OFF: if (m_power_off_timer.overflow() || m_wdog.overflow()) { turnPowerOff(); queueState(SM_DEACT_POWER_WAIT); } break; // Wait for power to be turned off. case SM_DEACT_POWER_WAIT: if (!isPowered()) queueState(SM_DEACT_DONE); break; // Deactivation is complete. case SM_DEACT_DONE: deactivate(); queueState(SM_IDLE); break; } }