コード例 #1
0
bool fantasmaThread::qt_invoke( int _id, QUObject* _o )
{
    switch ( _id - staticMetaObject()->slotOffset() ) {
    case 0: comer((pacmanThread*)static_QUType_ptr.get(_o+1)); break;
    case 1: setVelocidad((int)static_QUType_int.get(_o+1)); break;
    default:
	return Fantasma::qt_invoke( _id, _o );
    }
    return TRUE;
}
コード例 #2
0
void moverDelante(float distancia)
{
	resetMotorCounters();
	int calcRevs = (int)((distancia/RUEDA)*360);
	setVelocidad(100, 100);
	int revsV = getMediumRevs();
	while(revsV < calcRevs)
	{
		revsV = getMediumRevs();
	}
	//setVelocidad(0,0);
}
コード例 #3
0
ファイル: ventana.cpp プロジェクト: digideskio/QTron
void Ventana::crearMenu() {
    Juego = menuBar()->addMenu(tr("&Juego"));
        nuevoJuego = new QAction(tr("&Empezar partida nueva"), this);
        nuevoJuego->setStatusTip(tr("Empezar partida nueva"));
        connect(nuevoJuego, SIGNAL(triggered()), this, SLOT(empezarPartida()));
        Juego->addAction(nuevoJuego);

        pausar = new QAction(tr("&Pausar partida"), this);
        pausar->setStatusTip(tr("Pausar partida"));
        connect(pausar, SIGNAL(triggered()), this, SLOT(pausarPartida()));
        Juego->addAction(pausar);

        terminar = new QAction(tr("&Finalizar Partida"), this);
        terminar->setStatusTip(tr("Finalizar Partida"));
        connect(terminar, SIGNAL(triggered()), this, SLOT(terminarPartida()));
        Juego->addAction(terminar);

        Juego->addSeparator();

        salir = new QAction(tr("&Salir"), this);
        salir->setStatusTip(tr("Salir"));
        connect(salir, SIGNAL(triggered()), this, SLOT(close()));
        Juego->addAction(salir);

    Opciones = menuBar()->addMenu(tr("&Opciones"));
        NJugadores = new QAction(tr("&Elegir número de jugadores"), this);
        NJugadores->setStatusTip(tr("Elegir número de jugadores"));
        connect(NJugadores, SIGNAL(triggered()), this, SLOT(elegirNJugadores()));
        Opciones->addAction(NJugadores);

        TamTablero = new QAction(tr("&Elegir el tamaño del tablero"), this);
        TamTablero->setStatusTip(tr("Elegir el tamaño del tablero"));
        connect(TamTablero, SIGNAL(triggered()), this, SLOT(elegirTamTablero()));
        Opciones->addAction(TamTablero);

        Velocidad = new QAction(tr("&Elegir velocidad de las motos"), this);
        Velocidad->setStatusTip(tr("Elegir velocidad de las motos"));
        connect(Velocidad, SIGNAL(triggered()), this, SLOT(setVelocidad()));
        Opciones->addAction(Velocidad);

    ModosVisualizacion = menuBar()->addMenu(tr("&Modos de Visualización"));
        Reflejos = new QAction(tr("&Activar/Desactivar reflejos"), this);
        Reflejos->setStatusTip(tr("Activar/Desactivar reflejos"));
        connect(Reflejos, SIGNAL(triggered()), this, SLOT(elegirReflejos()));
        ModosVisualizacion->addAction(Reflejos);

        Ejes = new QAction(tr("&Mostrar/Ocultar ejes"), this);
        Ejes->setStatusTip(tr("Mostrar/Ocultar ejes"));
        connect(Ejes, SIGNAL(triggered()), this, SLOT(elegirEjes()));
        ModosVisualizacion->addAction(Ejes);

        ModosVisualizacion->addSeparator();

        CamaraLibre = new QAction(tr("&Cámara Libre"), this);
        CamaraLibre->setStatusTip(tr("Cámara Libre"));
        connect(CamaraLibre, SIGNAL(triggered()), this, SLOT(setCamaraLibre()));
        ModosVisualizacion->addAction(CamaraLibre);

        ModosVisualizacion->addSeparator();

        Puntos = new QAction(tr("&Puntos"), this);
        Puntos->setStatusTip(tr("Puntos"));
        connect(Puntos, SIGNAL(triggered()), this, SLOT(modoPuntos()));
        ModosVisualizacion->addAction(Puntos);

        Lineas = new QAction(tr("&Lineas"), this);
        Lineas->setStatusTip(tr("Lineas"));
        connect(Lineas, SIGNAL(triggered()), this, SLOT(modoLineas()));
        ModosVisualizacion->addAction(Lineas);

        Solido = new QAction(tr("&Solido"), this);
        Solido->setStatusTip(tr("Solido"));
        connect(Solido, SIGNAL(triggered()), this, SLOT(modoSolido()));
        ModosVisualizacion->addAction(Solido);

        Ajedrez = new QAction(tr("&Ajedrez"), this);
        Ajedrez->setStatusTip(tr("Ajedrez"));
        connect(Ajedrez, SIGNAL(triggered()), this, SLOT(modoAjedrez()));
        ModosVisualizacion->addAction(Ajedrez);

        this->Flat = new QAction(tr("&Suavizado Flat"), this);
        this->Flat->setStatusTip(tr("Suavizado Flat"));
        connect(this->Flat, SIGNAL(triggered()), this, SLOT(modoFlat()));
        ModosVisualizacion->addAction(this->Flat);

        Smooth = new QAction(tr("&Suavizado Smooth"), this);
        Smooth->setStatusTip(tr("Suavizado Smooth"));
        connect(Smooth, SIGNAL(triggered()), this, SLOT(modoSmooth()));
        ModosVisualizacion->addAction(Smooth);

    fullScreen = menuBar()->addMenu(tr("&Pantalla"));
        pantCompleta = new QAction(tr("&Completa"), this);
        pantCompleta->setStatusTip(tr("Completa"));
        connect(pantCompleta, SIGNAL(triggered()), this, SLOT(showFullScreen()));
        fullScreen->addAction(pantCompleta);

        pantNormal = new QAction(tr("&Ventana"), this);
        pantNormal->setStatusTip(tr("Ventana"));
        connect(pantNormal, SIGNAL(triggered()), this, SLOT(showNormal()));
        fullScreen->addAction(pantNormal);

    Extra = menuBar()->addMenu(tr("&Extra"));
        Ayuda = new QAction(tr("&Ayuda"), this);
        Ayuda->setStatusTip(tr("Ayuda"));
        connect(Ayuda, SIGNAL(triggered()), this, SLOT(showAyuda()));
        Extra->addAction(Ayuda);

        Acerca = new QAction(tr("&Acerca"), this);
        Acerca->setStatusTip(tr("Acerca"));
        connect(Acerca, SIGNAL(triggered()), this, SLOT(showAcerca()));
        Extra->addAction(Acerca);

        Extra->addSeparator();

        Demo = new QAction(tr("&Demo"), this);
        Demo->setStatusTip(tr("Demo"));
        connect(Demo, SIGNAL(triggered()), this, SLOT(showDemo()));
        Extra->addAction(Demo);
}
コード例 #4
0
ファイル: main.c プロジェクト: joseayebenes/TivaFly
static portTASK_FUNCTION(HighTask,pvParameters)
{

	unsigned char frame[MAX_FRAME_SIZE];
	int num_datos;

	double altitud;
	int16_t ejes[3];
	double combustible;
	float velocidad;
	int tiempoSim;

	while(1)
	{
		vTaskDelay(configTICK_RATE_HZ); //Cada seg

		//Obtenemos las variables
		altitud=getAltitud();
		velocidad=getVelocidad();
		tiempoSim=getTiempoSim();

		if(altitud>0){ //Si la altitud es mayor que cero cambiamos la altitud

			getEjes(ejes);
			altitud += sin((ejes[PITCH]*3.14f)/180) *(velocidad*(1000/(60/tiempoSim)));

			if(altitud>99999){ //99999 es el maximo del panel QT
				altitud=99999;
			}

			//Enviamos la trama con la altitud
			setAltitud(altitud);

			num_datos=create_frame(frame, COMANDO_HIGH, &altitud, sizeof(altitud), MAX_FRAME_SIZE);
			if (num_datos>=0){
				send_frame(frame, num_datos);
			}else{

				logError(num_datos);

			}

			//Obtenemos el combustible
			combustible=getCombustible();
			if(combustible==0){//Si ya estamos sin combustible hacemos parpadear los led con la altitud
				color[BLUE]=0xFFFF;
				if(altitud<=800){
					color[RED]=0xFFFF;
					color[GREEN]=0x0;
				}
				RGBColorSet(color);
				if(altitud<2000){
					RGBBlinkRateSet((float)(1000/(altitud+1)));
				}
				tiempoSim=getTiempoSim();

				//Aumentamos la velocidad a 9,8m/s^2
				velocidad+=9.8*(60*tiempoSim)/1000;
				setVelocidad(velocidad);
				//Enviamos la nueva velocidad
				num_datos=create_frame(frame, COMANDO_SPEED, &velocidad, sizeof(velocidad), MAX_FRAME_SIZE);
				if (num_datos>=0){
					send_frame(frame, num_datos);
				}else{

					logError(num_datos);

				}
			}

		}else{ //Si la altitud es menor o igual a 0

			//Variables a cero
			velocidad=0;
			altitud=0;

			setVelocidad(velocidad);
			setAltitud(altitud);

			//Enviamos comando colision
			if(combustible!=0) ADCSequenceDisable(ADC0_BASE,0);
			num_datos=create_frame(frame, COMANDO_COLISION,NULL, 0, MAX_FRAME_SIZE);
			if (num_datos>=0){
				send_frame(frame, num_datos);
			}else{

				logError(num_datos);

			}



			//BLOQUEAMOS LA TIVA
			vTaskDelete(sensorTaskHandle);
			vTaskDelete( consumoTaskHandle );
			vTaskDelete(altitudTaskHandle);
			vTaskDelete( turbulenciasTaskHandle );
			vTaskEndScheduler(  );

			while(1);

		}




	}
}
コード例 #5
0
ファイル: main.c プロジェクト: joseayebenes/TivaFly
static portTASK_FUNCTION(PilAuto,pvParameters)
{

	unsigned char frame[MAX_FRAME_SIZE];
	int num_datos;


	//Desactivamos las lecturas del ADC
	ADCSequenceDisable(ADC0_BASE,0);


	bool pilotoAutomatico =true;
	EventBits_t bits;

	// Enviamos la trama para indicar a QT que estamos con el piloto Automatico
	num_datos=create_frame(frame, COMANDO_AUTOMATICO, &pilotoAutomatico, sizeof(pilotoAutomatico), MAX_FRAME_SIZE);
	if (num_datos>=0){
		send_frame(frame, num_datos);
	}else{

		logError(num_datos);

	}


	while(1)
	{
		vTaskDelay(configTICK_RATE_HZ); // Esperamos 1 seg

		bits=xEventGroupGetBits(xEventGroup); // Leemos los flags

		if(bits  == 0 || bits== 1){  //Si el flags de pilotoAutomatico esta a cero quitamos el pilotoAutomatico
			pilotoAutomatico=false;
			num_datos=create_frame(frame, COMANDO_AUTOMATICO, &pilotoAutomatico, sizeof(pilotoAutomatico), MAX_FRAME_SIZE);
			if (num_datos>=0){
				send_frame(frame, num_datos);

			}else{

				logError(num_datos);

			}
			ADCSequenceEnable(ADC0_BASE,0); // Habilitamos el ADC
			vTaskDelete(NULL);
			while(1){
				//Por si falla
			}
		}


		//Centramos el avion, ponemos la velocidad a 100 y lo mandamos a QT
		setEjes(0,0,0);
		setVelocidad(100.0f);
		num_datos=create_frame(frame, COMANDO_EJES, &ejes, sizeof(ejes), MAX_FRAME_SIZE);
			if (num_datos>=0){
				send_frame(frame, num_datos);
			}else{

				logError(num_datos);

			}
		num_datos=create_frame(frame, COMANDO_SPEED, &velocidad, sizeof(velocidad), MAX_FRAME_SIZE);
			if (num_datos>=0){
				send_frame(frame, num_datos);
			}else{

				logError(num_datos);

			}



	}
}