3. NMEA 0183 sentence의 기본 클래스(base class)
기능
NMEA 문장을 설정하면 다음의 값을 얻거나 기능을 수행함
▪ Talker ID
▪ 문장의 종류(GGA, GLL, RMC, …)
▪ Field 개수
▪ 주어진 인덱스의 field 문자열 (0-based index)
▪ Checksum 검사
▪ Parsing
▪ Parsing된 데이터를 plain text로 출력
이 클래스를 상속받아 GGA, GLL, RMC 등의 NMEA 0183 개
별 문장을 parsing하는 클래스를 구현함
4. NMEASentence 클래스를 상속 받음
NMEASentence의 virtual class인 Parse() 함수를 재정의
Parse() 함수를 실행하면 각 field를 의미있는 멤버 변수에
할당
각 멤버 변수를 읽을 수 있는 멤버 함수 제공
5. 실제로 NMEA 문장을 parsing하기 위한 관리자 클래스
Application은 본 클래스의 인스턴스를 이용하여 parsing
을 수행함
내부에 NMEASentence를 상속받은 각 GGA, GLL, RMC
등의 인스턴스를 가짐
입력된 NMEA 문장에 따라 그 문장에 적합한 parser를 이
용하여 parsing을 수행함
사용된 parser 객체를 이용하여 문장의 세부 field 값을 가
져올 수 있음
7. NMEASentence 클래스
Checksum 비교
▪ 입력 Sentence의 checksum 계산 함수 구현
▪ 입력 Sentence에 기록된 checksum 읽기
▪ 계산한 checksum과 읽은 checksum 비교
TalkerID와 Sentence Type 가져오는 함수 구현
Sentence의 field 값을 가져오는 함수
▪ string 형으로 가져오기
▪ 특정 type으로 가져오기
8. GGA, GLL 클래스
NMEASentence 클래스 상속
각 포맷에 해당하는 필드를 멤버 변수로 가짐
Parse() 함수 구현
▪ virtual 함수
▪ 각 포맷의 필드 값을 읽어옴
읽어 들인 필드 값을 가져오는 함수 구현
▪ GetLatitude(), GetLongitude() 등