[답변] 프로토콜 관련 질문 ( 수신 )
페이지 정보
본문
CANSAT FSW 의 한바이트씩 수신 처리 함수를 참고하세요.
hyGs_RecvByte(unsigned char b) 함수 : 56 00 ... 지상국 명령을 수신하는 경우
hyImu_RecvByte(unsigned char b) 함수 : ( \n, \a ) 로 끝나는 경우
hyGps_RecvByte(unsigned char b) 함수 : $GPGGA 로 시작하는 경우
hyMsg_RecvByte(unsigned char b) 함수 : 76 00 MSG_TYPE MSG_LEN MSG 의 경우
1. UART 에서 들어오는 데이터를 N 바이트 블럭에 저장
2. 블럭의 데이터를 1바이트(b)씩 꺼내고
3. b에 대해서 상태 머신(State Machine) 을 돌림 ( 한바이트씩 처리하는 함수 )
3.0 초기화 상태, 상태값 (상태값 S00 )
3.1 원하는 첫번째 바이트를 찾으면. (상태값 ==> S01 ) 그렇지 않으면 ( 상태값 은 그대로 )
3.2 원하는 두번째 바이트를 찾으면 ( 상태값 ==> S02 ), 첫번째 바이트이면 ( 상태값 ==> S01 ), 맞지않으면, ( 상태값 ==> S00 )
3.3 원하는 nn번째 바이트를 찾으면 ( 상태값 ==> Snn ), 첫번째 바이트이면 ( 상태값 ==> S01 ), 맞지않으면, ( 상태값 ==> S00 )
3.4 원하는 마지막 바이트를 찾으면 ( 상태값 ==> S00 ) , [ 이때 원하는 처리를 하고, 상태값을 초기화 시킴 ]
첫번째 바이트이면 ( 상태값 ==> S01 ), 맞지않으면, ( 상태값 ==> S00 )
> > > 직접 지상국을 만들기 위해서 블루투스를 이용해 정보를 받아오는데 프로토콜에 있는 정보가 들어오는 것 같지 않습니다. 혹시 이 데이터를 어떻게 처리해야하는지 알 수 있을까요? 첨부파일은 받은 정보를 모두 16진수로 변환하여 저장한 데이터 입니다. > >
- 이전글프로토콜 관련 질문 19.07.10
- 다음글체험 캠프 팀원 불참 19.06.23
댓글목록
등록된 댓글이 없습니다.