2fcs.h

Committer:
agiembed
Date:
2011-08-16
Revision:
0:d463d5c04541

File content as of revision 0:d463d5c04541:

char gud = 0, flag_com = 1, check_error = start;

void Get_GPS(char *data) //F_Mode[F_Mode_num] 
{            
     int i;
     char *pTemp = (char *) &gps; //Fligth Mode Data
  
     for(i=0;i<GPS_num;i++) *(pTemp+i) = *(data+i); //F_Mode[F_Mode_num] 
     gpscal();
}   

void Get_Mode(char *data) //F_Mode[F_Mode_num] 
{            
     int i;
     char *pTemp = (char *) &FMD; //Fligth Mode Data
  
     for(i=0;i<2;i++) *(pTemp+i) = *(data+i); //F_Mode[F_Mode_num] 
     //toGCS();
}

void GCS_data(char data) 
{  
   if(check_error == start)
   {
        if(data == head1) check_error = check1;
        else check_error = start;
   }

   else if(check_error == check1)
   {
        if(data == head2) check_error = check2;        
        else if(data == Flight_Start_bit2) check_error = check3;
        else check_error = start;
   }
  
   else if((check_error == check2)&&(data != End_bit))
   { 
      GPS[data_cnt] = data;      
      if(data_cnt<(GPS_num-1)) data_cnt++;  
      else
      {
               Get_GPS(GPS);           
               data_cnt = 0;
               check_error = start;
      }
   }   
   
   else if((check_error == check3)&&(data != End_bit))
   { 
      Mode[data_cnt] = data;      
      if(data_cnt<(2-1)) data_cnt++;  
      else
      {
               Get_Mode(Mode);           
               data_cnt = 0;
               check_error = start;
      }
   } 

   else
   {
       data_cnt = 0;    
       check_error = start;
   }           
}


void getGCS(){      
    unsigned char data;
    data = radio.getc();
    //GCS_data(data);
    radio.putc(radio.getc());
}