Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

do_best

programa que nao consegue ler

Mensagens Recomendadas

do_best


int main (int argc, const char * argv[]) 
{
 int n;
 unsigned ch = 0;
 unsigned char buf[128*1024];



 int res;
 struct timeval Timeout;
 int loop = 1;

 fd_set readfs;

// just in case of make eay stuff - wrong --> char dir = "/b1firmware.b1b";
     printf("Started out app\n");
 for (n=0; n<1; n++)
 { 
	 // open file to send
	 int fd  = open("/b1firmware.b1b",O_RDONLY );    
    if( fd < 0) 
     {       
	  printf("Can't open the file\n");       
	    
     }
	 else 
	  {
		  unsigned char chFileHeader[64];
		  printf("ficheiro aberto \n");
		  lseek(fd, 0, SEEK_SET);
		  if(read(fd, chFileHeader, sizeof(chFileHeader)) == sizeof(chFileHeader))
		  {
			  int iBytesRead =
			  read(fd, buf, sizeof(buf));
			  printf("read %d bytes into buf\n",iBytesRead);
			  // validate CRC
			  unsigned char ourcrc[4];
			  memset(ourcrc,0,sizeof(ourcrc));
			  
			  
			  // verfic if file ok no curropt
			  for (int n= 0; n < iBytesRead; n++) 
			  {
				  ourcrc[n % 4] ^= buf[n];
			  }
			  
			  if(memcmp(ourcrc, chFileHeader+0x3c,4) == 0)
			  {
				  printf("file is ok.\n");


				  
				  
				  // got some data...


				  // fd = open("/dev/tty.usbserial-A6007bC3", O_RDONLY);

				  Timeout.tv_usec = 0;  /* milliseconds */
				  Timeout.tv_sec  = 1;  /* seconds */
				  
				   FD_SET(fd, &readfs); 
				  while (loop) 
				   {
					  /* set testing for source 1 */
					/* block until input becomes available */
					  res = select(fd, &readfs, NULL, NULL, &Timeout);
					   if ( res == 0) 
					   {   
						   loop = 0;
					   }	
					   
					   
				    }
						  
					  					  					  
				  


está no tempo defenido e após acabar o tempo sai fora tudo bem

o problema é que nunca consigo receber o sinal do aparelho

alguma ideia?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.