Exemple #1
0
int main(int argc, char* argv[]){
    
    Lista l1=vacia(), l2=vacia();
    FILE *in1=fopen(*(argv+1),"r"), *in2=fopen(*(argv+2),"r"), *out=fopen(*(argv+3),"w");
    char pal1[40], *pal2; 
    
    while(fscanf(in1,"%s",pal1)>0){
        pal2=(char*)malloc(40);
        strcpy(pal2,pal1); 
        l1=cons(pal2,l1);
    }

    while(fscanf(in2,"%s",pal1)>0){
        pal2=(char*)malloc(40);
        strcpy(pal2,pal1); 
        l2=cons(pal2,l2);
    }


    implista(ordena(pega(l1,l2)),out);     
    printf("%d palabras en %s.\n",numelem(pega(l1,l2)),*(argv+2));
    
    fclose(in1);
    fclose(in2);
    fclose(out); 
  
    
     return 0;   
}
Exemple #2
0
int main(){
    
     Lista l1=cons('7',cons('8',cons('9',cons('a',cons('b',cons('c',vacia()))))));
     Lista l2=cons('1',cons('2',cons('3',cons('4',cons('5',cons('6',vacia()))))));
          
     printf("La lista l1 tiene %d elementos.\n",numelem(l1));
     puts("Los elementos de la lista l1 son: \n");
     implista(l1);
     puts("------------------------");
     printf("La lista [l1|l2] tiene %d elementos.\n",numelem(pega(l1,l2)));
     puts("Los elementos de la lista [l1|l2] invertida son:\n");
     implista(invierte(pega(l1,l2)));

     printf("Esta el num 3 en la lista 2?: ");
     estaen('3',l2)?puts("Si."):puts("No."); 
     printf("Esta el num 9 en la lista 2?: "); 
     estaen('9',l2)?puts("Si."):puts("No.");
	 
	 puts("------------------------");
	 printf("Lista ordenada que resulta de pegar l1 y l2 ( [l1|l2] ) es: \n");
	 implista(ordena(pega(l1,l2)));    
     return 0;
}
Exemple #3
0
void pega_piloto(){
	//antes do piloto
	move(0,-32.29,17.93,0);
	sleep(3);
	solta();
	sleep(2);
	//pega piloto
	//move(0,-36.94,15.97,-1.09);
	move(0,-37,15.88,-4.38);

	sleep(3);
	pega();
	sleep(2);
	//acima do piloto
	move(0,-34.72,24.36,11.51);
	sleep(3);
	//acima da area de trabalho
	move(0,-26.71,20.93,6.5);
	sleep(5);
}
Exemple #4
0
void refresh(char *name, char *alvo){
  char *buf, *ptr, *ptr2, *tmp;
  FILE *target;

  if(name == NULL)
    return;

  if(alvo == NULL)
    target = stdout;
  else
    target = Fopen(alvo, "w");

  ptr = buf = pega(name);

  while(1){
    if(*ptr == '<'){
      if(++ptr == '\0')
        break;
      else
      if(ptr == strstr(ptr, "hts")){

        ptr2 = ptr + strlen("hts");
        ptr = tags(ptr2);
        if(ptr++ == NULL)
          Erro(">");

        tmp = Malloc(ptr - ptr2);
        strncpy(tmp, ptr2, ptr - ptr2 - 1);
        processa(tmp, target);
      }
      else fputc('<', target);
    }
    if(*ptr == '\0') break;
    fputc(*(ptr++), target);
  }

  if(target != stdout)
    fclose(target);
  free(buf);
}
Exemple #5
0
int main()
{
    ufrn_header();
 
     
 
    // INICIO DO PROGRAMA DEMO //
 
    printf("PROGRAMA INTOLERANTS INICIADO\n\n");
 
    serial_fd = abrir_porta();
 
    if (serial_fd == -1)
    {
        printf("Erro abrindo a porta serial /dev/ttyS0\nAbortando o programa...");
        return -1;
    }
    else
    {
        printf("Porta serial /dev/ttyS0 aberta com sucesso\n");
 
        if (configurar_porta(serial_fd) == -1)
        {
            printf("Erro inicializando a porta\n");
            close(serial_fd);
            return -1;
        }
 
        comando = (char*) malloc(sizeof(char) * BUFSIZE);
        last_comando = (char*) malloc(sizeof(char) * BUFSIZE);
 
        //////////////////////
        // PRIMEIRO COMANDO //
        //////////////////////
        printf("\nPRIMEIRO COMANDO - POSICAL INICIAL\n");
 
        sprintf(comando, "%s", STANDBY);
 
        //Escrevendo com teste de escrita
        if (enviar_comando(comando, serial_fd) != -1)
        {
            printf("Enviando de comando com teste de envio: %s\n", STANDBY);
        }
        else
        {
            printf("Problema no envio do comando\nAbortando o programa...");
            return -1;
        }
 
        printf("Pressione enter para continuar...");
        getchar();
        memset(comando, 0, BUFSIZE);
 
        sprintf(comando, "%s", HOME_POS);
 
        //Escrevendo com teste de escrita
        if (enviar_comando(comando, serial_fd) != -1)
        {
            printf("Enviando de comando com teste de envio: %s\n", HOME_POS);
        }
        else
        {
            printf("Problema no envio do comando\nAbortando o programa...");
            return -1;
        }
 
        memset(comando, 0, BUFSIZE);
 
        /////////////////////
        // SEGUNDO COMANDO //
        /////////////////////
 
 
 
        //system("rm input.txt");
        //system("cat /dev/null > input.txt");
        //system("rm pos.txt");
        //system("cat /dev/null > pos.txt");
 
        do {
 
            if(system ("clear"));
 
            t1 = angSenseBas*PI/180;
            t2 = angSenseShl*PI/180;
            t3 = angSenseElb*PI/180;
            t4 = angSenseWri*PI/180;

            X = cos(t1)*(L3*cos(t2 + t3) + L2*cos(t2) + L4*cos(t2 + t3 + t4));
 
            Y = sin(t1)*(L3*cos(t2 + t3) + L2*cos(t2) + L4*cos(t2 + t3 + t4));
 
            Z = L1 + L3*sin(t2 + t3) + L2*sin(t2) + L4*sin(t2 + t3 + t4);
            
            calc_tetas(X, Y, Z, phi);

            printf("A coordenada x do ponto : %.2f \n", X);
            printf("A coordenada y do ponto : %.2f \n", Y);
            printf("A coordenada z do ponto : %.2f \n", Z);
            printf("phi da ferramenta       : %.2f \n", angSenseShl+angSenseElb+angSenseWri);
            //printf("#0P%dS%d#1P%dS%d#2P%dS%d#3P%dS%d#4P%dS%dT%d\n", (int)sense[0], s,  (int)sense[1], s,  (int)sense[2], s,  (int)sense[3], s,  (int)sense[4], s, t);
            printf("%s\n", last_comando);
            printf("BASE     -> (Q)ESQUERDA ; (A)DIREITA  | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[0], angSenseBas, teta[0]);
            printf("OMBRO    -> (W)CIMA     ; (S)BAIXO    | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[1], angSenseShl, teta[1]);
            printf("COTOVELO -> (E)CIMA     ; (D)BAIXO    | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[2], angSenseElb, teta[2]);
            printf("PUNHO    -> (R)CIMA     ; (F)BAIXO    | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[3], angSenseWri, teta[3]);
            printf("GARRA    -> (T)FECHAR   ; (G)ABRIR    | LARGURA DO PULSO: %d \t              \n", (int)sense[4]);
            printf("Digite space para sair\n");
            if(system("/bin/stty raw"));
            c = getchar();
            if(system("/bin/stty cooked"));


            if (c == 'q') {
                sense[0] = sense[0] + 2;
                pos = sense[0];
                angSenseBas = (offsetBas - sense[0]) * gainBas;
                sprintf(comando, "#%dP%d", BAS_SERVO, trava(BAS_SERVO, pos));
            } else if (c == 'a') {
                sense[0] = sense[0] - 2;
                pos = sense[0];
                angSenseBas = (offsetBas - sense[0]) * gainBas;
                sprintf(comando, "#%dP%d", BAS_SERVO, trava(BAS_SERVO, pos));
            } else if (c == 'w') {
                sense[1] = sense[1] + 2;
                pos = sense[1];
                // angSenseShl = (sense[1] - offsetShl) * gainShl;
                angSenseShl = 762.684+7.948*sense[1];
                sprintf(comando, "#%dP%d", SHL_SERVO, pos * (pos < 1850) + 1850 * (pos >= 1850));
            } else if (c == 's') {
                sense[1] = sense[1] - 2;
                pos = sense[1];
                // angSenseShl = (sense[1] - offsetShl) * gainShl;
                angSenseShl = 762.684+7.948*sense[1];
                sprintf(comando, "#%dP%d", SHL_SERVO, pos * (pos < 1850) + 1850 * (pos >= 1850));
            } else if (c == 'e') {
                sense[2] = sense[2] - 2;
                pos = sense[2];
                // angSenseElb = (offsetElb - sense[2]) * gainElb - 180;
                angSenseElb = 854.377-9.231*sense[2];
                sprintf(comando, "#%dP%d", ELB_SERVO, pos);
            } else if (c == 'd') {
                sense[2] = sense[2] + 2;
                pos = sense[2];
                // angSenseElb = (offsetElb - sense[2]) * gainElb - 180;
                angSenseElb = 854.377-9.231*sense[2];
                sprintf(comando, "#%dP%d", ELB_SERVO, pos);
            } else if (c == 'r') {
                sense[3] = sense[3] + 2;
                pos = sense[3];
                // angSenseWri = (sense[3] - offsetWri) * gainWri - 90;
                angSenseWri = 1465.639+10.114*sense[3];
                sprintf(comando, "#%dP%d", WRI_SERVO, trava(WRI_SERVO, pos));
            } else if (c == 'f') {
                sense[3] = sense[3] - 2;
                pos = sense[3];
                // angSenseWri = (sense[3] - offsetWri) * gainWri - 90;
                angSenseWri = 1465.639+10.114*sense[3];
                sprintf(comando, "#%dP%d", WRI_SERVO, trava(WRI_SERVO, pos));
            } else if (c == 't') {
                sense[4] = sense[4] + 10;
                pos = sense[4];
                sprintf(comando, "#%dP%d", GRI_SERVO, trava(GRI_SERVO, pos));
            } else if (c == 'g') {
                sense[4] = sense[4] - 10;
                pos = sense[4];
                sprintf(comando, "#%dP%d", GRI_SERVO, trava(GRI_SERVO, pos));
            } else if (c == 'p') {
                if(system("gnome-terminal -x /home/aluno/intolerants/meta3/meta3"));
            } else if (c == '=') {
                FILE *f = fopen("input.txt", "a");
                if (f == NULL)
                {
                    printf("Error opening file!\n");
                    exit(1);
                }
 
                /* print some text */
                fprintf(f, "%d %d\n", (int)X+OFFSETX, (int)Y+OFFSETY);
                fclose(f);
                FILE *f2 = fopen("pos.txt", "a");
                if (f2 == NULL)
                {
                    printf("Error opening file!\n");
                    exit(1);
                }
 
                /* print some text */
                fprintf(f2, "#0P%uT1000#1P%uT1000#2P%uT1000#3P%uT1000#4P%uT1000\n", (unsigned int)sense[0], (unsigned int)sense[1], (unsigned int)sense[2], (unsigned int)sense[3], (unsigned int)sense[4]);
                 
                fclose(f2);
            } else if (c == 'b') {
            	int *bolas, i, n;
            	printf("\nDigite quantas bolinhas:\n");
            	scanf("%d", &n);
            	bolas = malloc(n*sizeof(int));
            	printf("\nDigite a ordem das bolinhas:\n");
            	for (i = 0; i < n; i++)
            		scanf("%d", &bolas[i]);
            		//bolas[i] = i+1;
            	desenha(bolas, n);
            } else if (c == '0') {
                // sense[0] = 1528;
                // sense[1] = 1796;
                // sense[2] = 2072;
                // sense[3] = 844;
                // sense[4] = 1870;
                // // send_command(1528,1796,2072,844,1870);
                // int delay = 2000;
                // sprintf(comando,"#0P%dT%d#1P%dT%d#2P%dT%d#3P%dT%d#4P%dT%d", sense[0], s,  sense[1], s,  sense[2], s,  sense[3], s,  sense[4], s, t);
                repouso();
            } else if (c == '1') {
            	move(2.97,-22.55,9,-5);
            	sleep(3);
            	move(6.02,-27.16,9.63,-10.38);
            	sleep(3);
            } else if (c == 'h') {
                printf("Insira s e t: ");
                if(scanf("%d", &s));
                if(scanf("%d", &t));
 
                sprintf(comando, "#0P1528S%d#1P1468S%d#2P1672S%d#3P1504S%d#4P1870S%dT%d", s, s, s, s, s, t);
            } else if (c == 'z') {
 				pega();
 				// getchar();
 			} else if (c == 'x') {
 				solta();
 				// printf("solta\n");
 				// getchar();
            } else if (c == 'm'){
                printf("\n\n");
                printf("x: ");
                if(scanf("%f", &x));
                printf("y: ");
                if(scanf("%f", &y));
                printf("z: ");
                if(scanf("%f", &z));
                printf("phi: ");
                if(scanf("%f", &phi));
                move(x,y,z,phi);
                printf("%s\n", comando);
            }
 
            if (enviar_comando(comando, serial_fd) != -1)
            {
                printf("\nEnviando de comando com teste\n");
            }
            else
            {
                printf("Problema no envio do comando\nAbortando o programa...");
                return -1;
            }
 
            // while ( (c = getchar()) != '\n');
            memset(comando, 0, BUFSIZE);
 
        } while ( c != ' ');
        
        sprintf(comando, "%s", STANDBY);
        enviar_comando(comando, serial_fd);
        memset(comando, 0, BUFSIZE);
        printf("Pressione enter para relaxar...");
        getchar();
        sprintf(comando, "%s", RELAX);
        enviar_comando(comando, serial_fd);

        // FIM DO PROGRAMA DEMO //
        fechar_porta(serial_fd);
        printf("\nAcesso a porta serial /dev/ttyS0 finalizado\n");
 
    }
 
    printf("\nPROGRAMA FINALIZADO\n\n");
 
    return 0;
}