Raharja Agie
/
Mini-X
Diff: 2fcs.h
- 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()); +}