SlideShare a Scribd company logo
1 of 2
NMEA-0183 Parser 실습 과제
1. 구현내용
1) GGA, GLL, RMC sentence를 parsing하여 각 필드의 내용을 텍스트 파일로 저장하는 기능을 구현
한다. 각 sentence 형식은 수업내용 4강을 참조한다.
각 문장의 예는 아래와 같다.
$GPGGA,004952,3723.8259,N,12655.3071,E,1,04,04.7,00046.9,M,018.1,M,,*4F
$GPGLL,4717.115,N,00833.912,E,130305.0,A,*32
$GPRMC,004952,A,3723.8259,N,12655.3071,E,000.0,088.7,291107,,,A*72
2) 정규화된 형식의 파일을 읽어 RMC sentence를 생성하는 기능을 구현한다.
정규화된 파일의 형식은 다음과 같다.
RMC|{날짜/시간}|{데이터품질}|{위도}|{경도}|{속도}|{경로}|{보정편차}|{Mode}
ㄱ. 각 필드는 ‘|’ 기호로 구분된다.
ㄴ. 필드 값이 없을 경우에는 ‘NULL’로 표기한다.
ㄷ. {날짜/시간} 필드는 “YYYY-MM-DD HH:MM:SS” 형식의 Local Time(UTC+9)이다.
ㄹ. {데이터품질} 필드는 ‘A’ 혹은 ‘V’로 표시된다.
ㅁ. {위도}는 “도(degree) 분(minute) 초(second) {N/S}” 형식이다.
34? 12’ 34.5678” N
ㅂ. {경도}는 “도(degree) 분(minute) 초(second) {E/W}” 형식이다.
128? 09’ 01.3452” E
ㅅ. 속도는 실수(double)형 값이다.
ㅇ. 경도는 실수(double)형 값이다.
ㅈ. 보정편차는 실수(double)형 값이다.
단, 양수 값은 보정편차 방향이 E, 음수 값은 보정편차 방향이 W임
ㅊ. Mode는 항상 ‘A’로 한다.
<데이터 샘플>
3) 결과 프로그램은 아래와 같이 동작해야 한다. (실행파일이 NMEAParser.exe로 가정함)
ㄱ. NMEA sentence를 parsing하는 기능
[형식] NMEAParser.exe–p {입력데이터} –o {출력파일명}
[실제사용] NMEAParser.exe –p nmea_sample.txt –o output.txt
RMC|2013-09-30 09:30:24|A|34? 12’ 34.5678” N|128? 09’ 01.3452” E|5.6|80.3|NULL|A
RMC|2013-09-30 09:31:54|A|34? 23’04.3678” N|129? 09’ 04.4582” E|3.6|123.3|0.1|A
ㄴ. NMEA sentence를 생성하는 기능
[형식] NMEAParser.exe–m {입력데이터} –o {출력파일명}
[실제사용] NMEAParser.exe –m making_data.txt –o output.txt
ㄷ. 단, ‘-o’ 옵션이 지정되지 않으면 화면에 출력한다.
2. 준수사항
1) 개발 언어는 C/C++로 한다. (표준 C/C++ 이외의 외부 라이브러리 사용은 안됨)
2) 정규표현식(Regular Expression)을 사용하지 않는다.
3) 구현내용에 기술된 모든 기능이 구현되어야 한다.
단, 일부분만 구현한 경우에는 부분 점수 부여함
4) Sentence parsing 후 각 필드의 데이터는 해당 데이터 타입에 맞게 저장하고 있어야 한다.
ㄱ. 위, 경도: double 형
ㄴ. 날짜, 시간 : 년, 월, 일, 시, 분, 초를 각각 int 형
ㄷ. 속도, 경로, 높이 : double 형
ㄹ. 그 외 : 적절한 데이터 타입 지정
3. 제출내용 (timothy97@gmail.com)
1) 프로그램 소스 코드 (C/C++, 컴파일이 가능한 형태)
ㄱ. 결과물은 zip 혹은 7z 파일로 압축할 것.
파일명은 “학번_이름_NMEAParser”으로 할 것
ㄴ.솔루션 폴더 내의 Debug, Release 폴더와 *.sdf 파일은 포함하지 말 것.
ㄷ. 제출한 코드가 컴파일이 되지 않으면 감점 처리함. (단순히 VS 설정에 관한 문제는 상관없음)
2) 소스 코드 내에 특이한 사항이나 아이디어가 있는 경우에는 별도의 문서를 파일(MS-Word)로 제
출할 수 있음

More Related Content

Viewers also liked

09. 조선산업 특강 (현대중공업 하수 상무)
09. 조선산업 특강 (현대중공업 하수 상무)09. 조선산업 특강 (현대중공업 하수 상무)
09. 조선산업 특강 (현대중공업 하수 상무)University of Ulsan
 
제1장 정보검색소개
제1장 정보검색소개제1장 정보검색소개
제1장 정보검색소개Chang-yong Jung
 
제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일Chang-yong Jung
 
제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리Chang-yong Jung
 
제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비Chang-yong Jung
 
제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급Chang-yong Jung
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Viewers also liked (8)

09. 조선산업 특강 (현대중공업 하수 상무)
09. 조선산업 특강 (현대중공업 하수 상무)09. 조선산업 특강 (현대중공업 하수 상무)
09. 조선산업 특강 (현대중공업 하수 상무)
 
제1장 정보검색소개
제1장 정보검색소개제1장 정보검색소개
제1장 정보검색소개
 
제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일제2장 정보의 특성과 문헌파일
제2장 정보의 특성과 문헌파일
 
제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리
 
제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비제3장 GMDSS 및 항해보조장비
제3장 GMDSS 및 항해보조장비
 
제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급제2장 IMO / IHO / SOLAS 규약 / 선급
제2장 IMO / IHO / SOLAS 규약 / 선급
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to NMEA0183 Parser 실습과제

어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법Daniel Kim
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예zupet
 
변수 이름의 효과
변수 이름의 효과변수 이름의 효과
변수 이름의 효과민욱 이
 
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작DACON AI 데이콘
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍Seungbeom Shim
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel ProgrammingUNIST
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
구글Fin
구글Fin구글Fin
구글Finzerk87
 
Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSGruter
 
weather-data-processing-using-python
weather-data-processing-using-pythonweather-data-processing-using-python
weather-data-processing-using-pythonmarc_kth
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01seonhyung
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013Esun Kim
 
Petra보고서 개발 open자료
Petra보고서 개발 open자료Petra보고서 개발 open자료
Petra보고서 개발 open자료cho hyun jong
 
Google Protocol buffer
Google Protocol bufferGoogle Protocol buffer
Google Protocol bufferknight1128
 
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)Amazon Web Services Korea
 
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기Daegi Kim
 
금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014Seung-June Lee
 

Similar to NMEA0183 Parser 실습과제 (20)

어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예
 
2012 Ds 01
2012 Ds 012012 Ds 01
2012 Ds 01
 
Mylab
MylabMylab
Mylab
 
변수 이름의 효과
변수 이름의 효과변수 이름의 효과
변수 이름의 효과
 
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
 
R project_pt1
R project_pt1R project_pt1
R project_pt1
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programming
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
구글Fin
구글Fin구글Fin
구글Fin
 
Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWS
 
weather-data-processing-using-python
weather-data-processing-using-pythonweather-data-processing-using-python
weather-data-processing-using-python
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
 
Petra보고서 개발 open자료
Petra보고서 개발 open자료Petra보고서 개발 open자료
Petra보고서 개발 open자료
 
Google Protocol buffer
Google Protocol bufferGoogle Protocol buffer
Google Protocol buffer
 
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
 
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
 
금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014
 

NMEA0183 Parser 실습과제

  • 1. NMEA-0183 Parser 실습 과제 1. 구현내용 1) GGA, GLL, RMC sentence를 parsing하여 각 필드의 내용을 텍스트 파일로 저장하는 기능을 구현 한다. 각 sentence 형식은 수업내용 4강을 참조한다. 각 문장의 예는 아래와 같다. $GPGGA,004952,3723.8259,N,12655.3071,E,1,04,04.7,00046.9,M,018.1,M,,*4F $GPGLL,4717.115,N,00833.912,E,130305.0,A,*32 $GPRMC,004952,A,3723.8259,N,12655.3071,E,000.0,088.7,291107,,,A*72 2) 정규화된 형식의 파일을 읽어 RMC sentence를 생성하는 기능을 구현한다. 정규화된 파일의 형식은 다음과 같다. RMC|{날짜/시간}|{데이터품질}|{위도}|{경도}|{속도}|{경로}|{보정편차}|{Mode} ㄱ. 각 필드는 ‘|’ 기호로 구분된다. ㄴ. 필드 값이 없을 경우에는 ‘NULL’로 표기한다. ㄷ. {날짜/시간} 필드는 “YYYY-MM-DD HH:MM:SS” 형식의 Local Time(UTC+9)이다. ㄹ. {데이터품질} 필드는 ‘A’ 혹은 ‘V’로 표시된다. ㅁ. {위도}는 “도(degree) 분(minute) 초(second) {N/S}” 형식이다. 34? 12’ 34.5678” N ㅂ. {경도}는 “도(degree) 분(minute) 초(second) {E/W}” 형식이다. 128? 09’ 01.3452” E ㅅ. 속도는 실수(double)형 값이다. ㅇ. 경도는 실수(double)형 값이다. ㅈ. 보정편차는 실수(double)형 값이다. 단, 양수 값은 보정편차 방향이 E, 음수 값은 보정편차 방향이 W임 ㅊ. Mode는 항상 ‘A’로 한다. <데이터 샘플> 3) 결과 프로그램은 아래와 같이 동작해야 한다. (실행파일이 NMEAParser.exe로 가정함) ㄱ. NMEA sentence를 parsing하는 기능 [형식] NMEAParser.exe–p {입력데이터} –o {출력파일명} [실제사용] NMEAParser.exe –p nmea_sample.txt –o output.txt RMC|2013-09-30 09:30:24|A|34? 12’ 34.5678” N|128? 09’ 01.3452” E|5.6|80.3|NULL|A RMC|2013-09-30 09:31:54|A|34? 23’04.3678” N|129? 09’ 04.4582” E|3.6|123.3|0.1|A
  • 2. ㄴ. NMEA sentence를 생성하는 기능 [형식] NMEAParser.exe–m {입력데이터} –o {출력파일명} [실제사용] NMEAParser.exe –m making_data.txt –o output.txt ㄷ. 단, ‘-o’ 옵션이 지정되지 않으면 화면에 출력한다. 2. 준수사항 1) 개발 언어는 C/C++로 한다. (표준 C/C++ 이외의 외부 라이브러리 사용은 안됨) 2) 정규표현식(Regular Expression)을 사용하지 않는다. 3) 구현내용에 기술된 모든 기능이 구현되어야 한다. 단, 일부분만 구현한 경우에는 부분 점수 부여함 4) Sentence parsing 후 각 필드의 데이터는 해당 데이터 타입에 맞게 저장하고 있어야 한다. ㄱ. 위, 경도: double 형 ㄴ. 날짜, 시간 : 년, 월, 일, 시, 분, 초를 각각 int 형 ㄷ. 속도, 경로, 높이 : double 형 ㄹ. 그 외 : 적절한 데이터 타입 지정 3. 제출내용 (timothy97@gmail.com) 1) 프로그램 소스 코드 (C/C++, 컴파일이 가능한 형태) ㄱ. 결과물은 zip 혹은 7z 파일로 압축할 것. 파일명은 “학번_이름_NMEAParser”으로 할 것 ㄴ.솔루션 폴더 내의 Debug, Release 폴더와 *.sdf 파일은 포함하지 말 것. ㄷ. 제출한 코드가 컴파일이 되지 않으면 감점 처리함. (단순히 VS 설정에 관한 문제는 상관없음) 2) 소스 코드 내에 특이한 사항이나 아이디어가 있는 경우에는 별도의 문서를 파일(MS-Word)로 제 출할 수 있음