1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

While Vs Return in C++

Discussão em 'Programação' iniciada por nyd, 13 de Fevereiro de 2007. (Respostas: 5; Visualizações: 869)

  1. nyd

    nyd Power Member

    Viva!

    Estou a fazer um device driver para um projecto do 5º ano de um device serial.

    Basicamente tenho:

    Código:
    void Begin(void)
    {
    	TrackitInterface a;
    
    	a.connect("COM4");
    
    	a.Start();
    
    }
    
    unsigned short **dados Retrieving(void)
    {
    	while(1)
    	{
    		unsigned short *data = NULL;
    		a.WaitForData(&data,4);
    		for (int i=0;i<32;i++)
    		{
    			dados[i]=data[i];
    		}
    		
    		.....
    	}
    }
    
    Em que atraves do Begin inicializo a comunicação e quero fazer a passagem dos dados através da Retrieving().
    Implemento através desta forma, porque é para integrar com o Simulink.

    Ok, em relação à duvida, eu quero que no while, no fim do for me envie uma matriz 32x8 (WaitforData devolve pacotes de 8), mas que se mantenha no While,ou seja sem recorrer ao Return... isto deve ser bastante elementar... mas estou com uma branca... :D

    Abraço e obrigado pelas respostas
     
  2. inginheiiro

    inginheiiro Power Member

    wile (true) return :)

    :lol:



    Código:
    void processaMatriz(unsigned short *data){
    ...
    }
    
    unsigned short **dados Retrieving(void)
    {
    	while(1)
    	{
    		unsigned short *data = NULL;
    		a.WaitForData(&data,4);
    		for (int i=0;i<32;i++)
    		{
    			dados[i]=data[i];
    		}
    		
    		.....
                 processaMatriz(&dados);
    	}
    }
     
  3. nyd

    nyd Power Member


    Mas como é que esta função processaMatriz(&dados) me devolve para a saída,ao fim do for,a matriz 32x8 voltando a calcular outro pacote de seguida no for, isto é, sem sair do while ?
     
  4. inginheiiro

    inginheiiro Power Member

    o teu while(1) terá que ser a rotina principal do teu driver.
    outra opção será o uso de (threads), que não te aconselho se estiveres a desenvolver um driver.
     
  5. nyd

    nyd Power Member

    A questão é que eu tenho de estruturar o driver em funções devido ao simulink ir fazer o callback sucessivo delas... ou seja o meu objectivo seria que ao chegar a esta função, fica-se continuamente nela a ler os valores, ou seja no while(1), devolvendo periodicamente os pacotes para a saída da mesma...
     
  6. inginheiiro

    inginheiiro Power Member

    Última edição: 13 de Fevereiro de 2007

Partilhar esta Página