Revision:
0:d463d5c04541
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2fcs.h	Tue Aug 16 05:32:33 2011 +0000
@@ -0,0 +1,73 @@
+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());
+}