void AgenteRemoto::correr() {
	while (corriendo()) {
		if (agente && agente->conectado()) {
			ConsultaAgenteServidor parConsulta;
			parConsulta.first = this;
			if (agente->recibir(parConsulta.second)) {
				cconsultas.push(parConsulta);
			} else {
				parar();
			}
		} else {
			parar();
		}
	}
}
/*bucle principal*/
void SpecificWorker::compute()
{
  
  TBaseState tbase;
  
  try
  {  
    differentialrobot_proxy->getBaseState(tbase);
    inner->updateTransformValuesS("base",tbase.x,0,tbase.z,0,tbase.alpha,0);
  }
  catch(const Ice::Exception e)
  {
      std::cout << e << std::endl;
  }
  
  switch(state)
  {
    case State::INIT:
      state = State::SEARCH;
      break;
    
    case State::SEARCH:
      search();
      break;
    
    case State::CONTROLLER:
      controller();
      break;

    case State::STOP:
      parar();
      break;
  }
  
}
Beispiel #3
0
void Queda::parar()
{
	disconnect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(parar()));
	connect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(setInfs()));
	ui.btnIniciar->setText("Iniciar");
	timer.stop();
	glWidget.parar();
}
void HiloResponderConsulta::correr() {
	while (corriendo()) {
		try {
		ConsultaClienteServidor par = cconsultas.pop2();
		Respuesta r = resolvedor.resolver(par.second);
		par.first->enviarRespuesta(r);
		} catch (BLQueueException& e) {
			parar();
		}
	}
}
Beispiel #5
0
void Queda::setInfs()
{
	disconnect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(setInfs()));
	connect(ui.btnIniciar,SIGNAL(clicked()),this,SLOT(parar()));
	ui.btnIniciar->setText("Parar");
	glWidget.setAltura(ui.edtAltura->text().toDouble());
	glWidget.setGravidade(ui.edtGravidade->text().toDouble());
	glWidget.setCoeficienteRestituicao((double) ui.slrCoeficiente->value()/100);

	timer.start(10);
	glWidget.iniciar(10);
}
Beispiel #6
0
double Grasp::ejecutar(int criterioParada) { // Ejecuta GRASP hasta que se llegue al criterio de parada y devuelve el minimo peso
    cout.precision(4);
    iteracionActual_ = 0;
    ultimaIteracionConMejora_ = 0;
    while( ! parar(criterioParada) ) {
        iteracionActual_++;
        particionActual_ = h_.resolver();
        pesoParticionActual_ = pesoParticion(particionActual_);
        busquedaLocalUnNodo();
        if (pesoParticionActual_ < pesoMejorParticion_) {
            mejorParticion_ = particionActual_;
            pesoMejorParticion_ = pesoParticionActual_;
            ultimaIteracionConMejora_ = iteracionActual_;
        }
    }
    return pesoMejorParticion_;
}
void ConsumerRespuesta::correr() {
	while (corriendo()) {
		ParRespuesta r;
		if (servidor->recibir(r.second)) {
//		    std::cout << "Recibido en el consumerRespuesta por socket: " << r.second.serializar() << std::endl << "\tID: " << r.second.devolverID() << std::endl,
            if (r.second.mensajeInterno() != Respuesta::mensajeError) {
                r.first = r.second.devolverID();
                if (cancelados.has(r.first) &&
                                    cancelados[r.first]) {
                        cancelados[r.first] = false;
                } else {
                    //std::cout << "Agregando a la cola de respuestas de ConsumerRespuesta respuesta: " << r.second.serializar() << ", de ID: ";
//                    if (r.first == r.second.devolverID())
//                        std:: cout << r.first << std::endl;
                    respuestas.push(r);
                }
            }
		} else {
			parar();
		}
	}
}
ConsumerRespuesta::~ConsumerRespuesta() {
	parar();
}
void ClienteRemoto::detener_cliente() {
	parar();
}
void AgenteRemoto::detener_agente() {
	parar();
}
HiloResponderConsulta::~HiloResponderConsulta() {
	parar();
}
void ThreadEntradaAgentes::detener_entrada() {
	parar();
	entradaAgentes->desconectar();
}