Ejemplo n.º 1
0
Parser::Parser() {

	try{
		Trees=YAML::LoadFile(FILE_YAML);
	}
	catch (YAML::ParserException& e){
		 LOG("NO PUEDE ABRIRSE EL ARCHIVO " FILE_YAML ", SE CARGARÁ EL ARCHIVO DE CONFIGURACIÓN POR DEFECTO");
		 escribirLog("NO PUEDE ABRIRSE EL ARCHIVO " FILE_YAML ", SE CARGARÁ EL ARCHIVO DE CONFIGURACIÓN POR DEFECTO");
		 try{
		 		Trees=YAML::LoadFile(FILE_YAML_DEFAULT);
		 	}
		 	catch (YAML::BadFile& e){
		 		LOG("NO PUDO ABRIRSE EL ARCHIVO " FILE_YAML_DEFAULT " EL PROGRAMA SE INTERRUMPIRÁ");
		 		escribirLog("NO PUDO ABRIRSE EL ARCHIVO " FILE_YAML_DEFAULT " EL PROGRAMA SE INTERRUMPIRÁ");
		 		exit (1); //acá debería hacer un exit lindo
		 	}
	}

	catch (YAML::BadFile& e){
			 LOG("NO PUEDE ABRIRSE EL ARCHIVO " FILE_YAML ", SE CARGARÁ EL ARCHIVO DE CONFIGURACIÓN POR DEFECTO");
			 escribirLog("NO PUEDE ABRIRSE EL ARCHIVO " FILE_YAML ", SE CARGARÁ EL ARCHIVO DE CONFIGURACIÓN POR DEFECTO");
			 try{
			 		Trees=YAML::LoadFile(FILE_YAML_DEFAULT);
			 	}
			 	catch (YAML::BadFile& e){
			 		LOG("NO PUDO ABRIRSE EL ARCHIVO " FILE_YAML_DEFAULT " EL PROGRAMA SE INTERRUMPIRÁ");
			 		escribirLog("NO PUDO ABRIRSE EL ARCHIVO " FILE_YAML_DEFAULT " EL PROGRAMA SE INTERRUMPIRÁ");
			 		exit (1); //acá debería hacer un exit lindo
			 	}
		}

	Inicializar(Trees);

}
Ejemplo n.º 2
0
void RX::DefCantLecturas(int cantLecturas) {
	// Define la cantidad de lecturas a promediar. Por defecto 10.
	if (cantLecturas > 0) {
		_cantLecturas = cantLecturas;
		unsigned long int _lectCh[_cantLecturas];
		Inicializar();
	}
}
Ejemplo n.º 3
0
void RX::DefLimitesRX(int minCh, int maxCh) {
	// Define los limites minimos y maximos para el canal.
	if (minCh < maxCh)
	{
		_minCh = minCh;
		_maxCh = maxCh;
		Inicializar();
	}
}
Ejemplo n.º 4
0
void RX::DefPin(int pin) {
	// Define el pin fisico donde esta conectado al arduino
	if (pin > 0)
	{
		pinMode(pin, INPUT);
		_pin = pin;
		Inicializar();
	}
}
Ejemplo n.º 5
0
int main()	// Funcao principal
{

	Processo *Pilha = (Processo *) malloc(sizeof(Processo));
	if(Pilha== NULL){
		printf("Memoria Indisponivel.\n");
		exit(1);
	}
	else{
		Inicializar(Pilha);
		Menu(Pilha);
		free(Pilha);
		return 0;
	}
}
Ejemplo n.º 6
0
int main(int argc, char const *argv[])
{
    No *arvore, *b;
    arvore = Inicializar();
    Inserir (50, &arvore);
    Inserir (40, &arvore);
    Inserir (60, &arvore);
    Inserir (30, &arvore);
    Inserir (45, &arvore);
    Inserir (35, &arvore);
    //arvore = Inserir (5, arvore);
    PreOrdem (arvore);
    printf("\n");
    Remover (40, &arvore);
    /*b = BuscaBinaria (11, arvore);
    if (b != NULL)
    	printf ("\n\nValor 11 encontrado\n");
    b = BuscaBinaria (12, arvore);
    if (b == NULL)
    	printf ("Valor 12 nao encontrado\n");
    printf("Altura = %d \n",Altura(arvore));
    printf("nos = %d \n",QuantidadeNos(arvore));
    printf("folhas = %d \n",QuantidadeFolhas(arvore));*/
    //arvore = Inserir (4, arvore);
    //arvore = Inserir (8, arvore);
    //arvore = Inserir (15, arvore);
    //arvore = Inserir (12, arvore);
    PreOrdem (arvore);

    /*b = BuscaBinaria (12, arvore);
    if (b != NULL)
    	printf ("Valor 12 encontrado\n");
    */
    Liberar(arvore);
    return 0;
}
Ejemplo n.º 7
0
int main(){
	char labelConj; // rotulo do conjunto empregado nas operacoes
	int erro;       // flag de erro na criacao dos conjuntos
	int Opcao;      // operacao escolhida pelo usuario
	Conjunto *A, *B, *C;
	elem valor, min, max;

	// conjunto A
	A = CriaConjVazio(&erro);
	if (erro){
		printf("Erro de alocacao!\n");
		exit(1);
	}

	// conjunto B
	B = CriaConjVazio(&erro);
	if (erro){
		printf("Erro de alocacao!\n");
		exit(1);
	}

	// conjunto C onde serao armazenados os resultados das operacoes
	C = CriaConjVazio(&erro);
	if (erro){
		printf("Erro de alocacao!\n");
		exit(1);
	}


	//Enquanto Opcao for diferente de SAIR.
	do {

		//Pergunta a Opcao que o usuario deseja realizar.
		scanf("%d", &Opcao);

		//Verifica qual Opcao foi escolhida.
		switch (Opcao) {

			// Opcao 1
			case INSERCAO:

				scanf("%d \n%c", &valor, &labelConj);

				if (labelConj == 'A') //insere em A
					if (Insere(valor, A) == FALSO) //se der problema
						printf(FRASE_ELEM_INVALIDO); //imprime frase
					else {
						printf("A = ");
						Imprimir(A);
					}
				else if (labelConj == 'B') // insere em B
						if (Insere(valor, B) == FALSO)
							printf(FRASE_ELEM_INVALIDO);
						else {
							printf("B = ");
							Imprimir(B);
						}
				else
					printf(FRASE_ERRO);

				break;

			// Opcao 2
			case REMOCAO:

				scanf("%d \n%c", &valor, &labelConj);

				if (labelConj == 'A') // remove de A
					if (Remove(valor, A) == FALSO) //se der problema
						printf(FRASE_ELEM_NAOENCONTRADO); //imprime frase
					else {
						printf("A = ");
						if (TestaVazio(A)) {
							printf(FRASE_CONJ_VAZIO);
						} else {
							Imprimir(A);
						}
					}

				else if (labelConj == 'B') // remove de B
					if (Remove(valor, B) == FALSO)
						printf(FRASE_ELEM_NAOENCONTRADO);
					else {
						printf("B = ");
						if (TestaVazio(B)) {
							printf(FRASE_CONJ_VAZIO);
						} else {
							Imprimir(B);
						}
					}

				else
					printf(FRASE_ERRO);

				break;

			// Opcao 3
			case MEMBRO:

				scanf("%d \n%c", &valor, &labelConj);

				if (labelConj == 'A') // procura em A
					if (Membro(valor, A) == FALSO) //se der problema
						printf(FRASE_FALSO); //imprime frase
					else
						printf(FRASE_VERDADEIRO); //imprime frase

				else if (labelConj == 'B') // procura em B
					if (Membro(valor, B) == FALSO)
						printf(FRASE_FALSO);
					else
						printf(FRASE_VERDADEIRO);
				else
					printf(FRASE_ERRO);

				break;

			// Opcao 4
			case TAMANHO:

				scanf("\n%c", &labelConj);

				if (labelConj == 'A') // verifica A
					printf("%d\n", Tamanho(A));
				else if (labelConj == 'B') // verifica B
					printf("%d\n", Tamanho(B));
				else
					printf(FRASE_ERRO);

				break;

			// Opcao 5
			case IMPRESSAO:

				printf("A = ");
				if (TestaVazio(A)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(A);
				}

				printf("B = ");
				if (TestaVazio(B)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(B);
				}

				break;

			// Opcao 6
			case MINIMO:

				scanf("\n%c", &labelConj);

				if (labelConj == 'A') { // verifica A
					min = Min(A);
					if (min == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", min); //imprime frase

				} else if (labelConj == 'B') { // verifica B
					min = Min(B);
					if (min == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", min); //imprime frase

				} else
					printf(FRASE_ERRO);

				break;

			// Opcao 7
			case MAXIMO:

				scanf("\n%c", &labelConj);

				if (labelConj == 'A') { // verifica A
					max = Max(A);
					if (max == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", max); //imprime frase

				} else if (labelConj == 'B') { // verifica B
					max = Max(B);
					if (max == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", max); //imprime frase

				} else
					printf(FRASE_ERRO);

				break;

			// Opcao 8
			case UNIAO:

				Inicializar(C);
				Uniao(A, B, C);
				if (TestaVazio(C)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(C);
				}

				break;

			// Opcao 9
			case INTERSECCAO:

				Inicializar(C);
				Interseccao(A, B, C);
				if (TestaVazio(C)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(C);
				}

				break;

			// Opcao 10
			case DIFERENCA:

				Inicializar(C);
				Diferenca(A, B, C);
				if (TestaVazio(C)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(C);
				}

				break;

			// Opcao 11
			case IGUAL:

				if (Igual(A, B) == FALSO)
					printf(FRASE_FALSO);
				else
					printf(FRASE_VERDADEIRO);

				break;

			// Opcao 12
			case COPIA:
				Copia(A, B);
				printf("A = ");
				if (TestaVazio(A)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(A);
				}

				printf("B = ");
				if (TestaVazio(B)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(B);
				}

				break;

			// Opcao 13
			case SAIR:
				Libera(A);
				Libera(B);
				Libera(C);

				break;
		}

	} while (Opcao != SAIR);

	return (0);
}
Ejemplo n.º 8
0
void Parser::Inicializar(YAML::Node Arbol){
	bool huboErrores = false;

	try{
		setField("pantalla" ,"alto", Arbol,configGame.pantalla.alto);
		setField("pantalla" ,"ancho", Arbol,configGame.pantalla.ancho);
		setField("configuracion" ,"vel_personaje", Arbol,configGame.configuracion.vel_personaje);
		setField("configuracion" ,"margen_scroll", Arbol,configGame.configuracion.margen_scroll);

		YAML::Node tiposDeObjetos= getField("tipos","", Arbol);

		map<string,ObjetoGeneral> listaDeObjetos;

		for (YAML::Node::const_iterator it = tiposDeObjetos.begin();it !=tiposDeObjetos.end(); it++){
			ObjetoGeneral unObjeto;

			setField("nombre",it,unObjeto.nombre);

			std::list<std::string> listaCampos;

			try{
				listaCampos = (camposObjetos.at(unObjeto.nombre));
			}
			catch(std::out_of_range& e){
				LOG ("SE INTENTÓ CARGAR UN OBJETO INVÁLIDO "+unObjeto.nombre);
				escribirLog("SE INTENTÓ CARGAR UN OBJETO INVÁLIDO "+unObjeto.nombre);
				break; // no cargo el elemento
			}

			if (campoValido("imagen",listaCampos))
				setField("imagen",it,unObjeto.imagen);
			if (campoValido("alto",listaCampos))
				setField("alto",it,unObjeto.alto);
			if (campoValido("ancho",listaCampos))
				setField("ancho",it,unObjeto.ancho);
			if (campoValido("delay",listaCampos))
				setField("delay",it,unObjeto.animacion.delay);
			if (campoValido("fps",listaCampos))
				setField("fps",it,unObjeto.animacion.fps);
			if (campoValido("pixel_ref_x",listaCampos))
				setField("pixel_ref_x",it,unObjeto.pixelrefx);
			if (campoValido("pixel_ref_y",listaCampos))
				setField("pixel_ref_y",it,unObjeto.pixelrefx);

			listaDeObjetos.insert(std::pair<string,ObjetoGeneral>(unObjeto.nombre,unObjeto));
		}

		configGame.objetos=listaDeObjetos;

		setField("escenario" ,"nombre", Arbol,configGame.escenario.nombre);
		setField("escenario" ,"size_x", Arbol,configGame.escenario.size_x);
		setField("escenario" ,"size_y", Arbol,configGame.escenario.size_y);

		std::vector<Entidad> listaDeEntidades;

		YAML::Node entidades= getField("escenario","entidades", Arbol);
		for (YAML::Node::const_iterator it = entidades.begin();it !=entidades.end(); it++){
			Entidad unaEntidad;

			setField("tipo",it,unaEntidad.tipo);
			try{
				(camposObjetos.at(unaEntidad.tipo));
			}
			catch(std::out_of_range& e){
				LOG ("SE INTENTÓ CARGAR UN OBJETO INVÁLIDO "+unaEntidad.tipo);
				escribirLog("SE INTENTÓ CARGAR UN OBJETO INVÁLIDO "+unaEntidad.tipo);
				break; // no cargo el elemento
			}

			setField("x",it,unaEntidad.x);
			setField("y",it,unaEntidad.y);

			listaDeEntidades.push_back(unaEntidad);
		}

		configGame.escenario.entidades=listaDeEntidades;

		setField("protagonista" ,"tipo", Arbol,configGame.protagonista.tipo);
		setField("protagonista" ,"x", Arbol,configGame.protagonista.x);
		setField("protagonista" ,"y", Arbol,configGame.protagonista.y);

	}
	catch (YAML::TypedBadConversion<int>& e){
		LOG("ERROR DE CONVERSIÓN");
		escribirLog("ERROR DE CONVERSION");
		huboErrores = true;
	}

	catch (int e){
		huboErrores = true;
	}

	if (huboErrores){
		//LOG("HUBO UN ERROR EN EL YAML USADO, SE CARGARÁ EL ARCHIVO YAML POR DEFECTO");

		escribirLog("HUBO UN ERROR EN EL YAML USADO, SE CARGARÁ EL ARCHIVO YAML POR DEFECTO ");
		Trees=YAML::LoadFile(FILE_YAML_DEFAULT);
		Inicializar(Trees);
	}
}