개발자의 기록 노트 (153) 썸네일형 리스트형 [NMEA-0183] Checksum 계산 예제코드 (How to calculate checksum of NMEA-0183) 본 포스팅에서 다뤄볼 내용은 NMEA-0183 문장의 checksum 계산 방법이다.보통 GPS chip은 해석한 GPS신호를 NMEA라는 특정 형태의 프로토콜로 제공한다.NMEA 가 무엇인지에 대해서 더 자세히 알고싶다면 아래 포스팅을 참고하도록 하자. 2017/08/10 - [하드웨어 Note/GPS 이야기] - [GPS 이야기] NMEA-0183 형식, NMEA Sentence Format 위 포스팅에 나와있듯이, NMEA sentence는 $ 문자로 시작해서 * 문자로 끝난다.checksum의 계산은 $, * 의 사이에 있는 각각의 문자 하나하나를 exclusive-or (XOR) 연산 및 누적하면 된다.어떤 NMEA sentence가 주어졌을 때, "*" 뒤에 있는 16진수 두자리의 checks.. [GPS 이야기] NMEA-0183 형식, NMEA Sentence Format 만약 당신이 GNSS와 직접적으로 관련된 일을 한다면. 혹은 간접적으로 GPS등과 같은 것을 통해 얻은 위치정보등을 다뤄야 할 일이 있다면. 조만간 'NMEA' 라는 것을 마주하게 될 수도 있다. 위치정보라는것은 어떤 목적으로 활용하느냐에 따라 다뤄야 하는 데이터는 달라진다. 현재 위치에 기반하여 날씨정보를 보여주는 어플리케이션처럼 간단히 위도, 경도만 알면 되는 경우가 있는가 하면, 목적지까지 경로를 알려주는 내비게이션 어플리케이션처럼 때로는 위도, 경도 뿐만아니라 속도, 위치정확도 오차값, 방향.. 등을 알아야 하는 경우도 존재 한다. 또한 종종 등산 트래커 어플리케이션처럼 고도를 활용하는 경우도 있다. 사실 고가의 GPS가 아닌 이상, 스마트폰과 같은 저렴한 GPS칩이 주는 고도값은 부정확하다고 알.. [우분투] 우분투 16.04 런처(Launcher) 위치 바꾸기 개요우분투에는 '런처(Launcher)'라 불리는 것이 있다.MS의 윈도우 운영체제와 비교하자면, '작업표시줄' 과 비슷한 것 쯤으로 이해하면 쉽다. 그동안의 우분투 LTS 버전들에서는 이 런처의 위치가 왼쪽에 세로로 고정되어 있었다.아래 그림과 같이 말이다. 런처 위치 변경 명령어우분투 16.04 에서는 드디어 런처의 위치를 변경할 수 있게 되었다.방법은 간단하다. shell에서 명령어 한줄이면 된다. /* 런처를 왼쪽에 위치함 */ $ gsettings set com.canonical.Unity.Launcher launcher-position Left /* 런처를 아래쪽에 위치함 */ $ gsettings set com.canonical.Unity.Launcher launcher-position Bo.. jQueryScript.net - jQuery Script Plugin 예제 제공 사이트 jQuery Script Plugin 예제를 찾다 보니, 굉장히 퀄리티 높은 예제들을 제공하는 사이트인 jQueryScript.net 을 찾게 되었다. 연결 : http://www.jqueryscript.net/ 나는 ... 의 헤더 태그를 이용해서 자동으로 포스팅의 목차를 만들어주는 기능을 구현해보려고 하던 참이었다.이미 이러한 류의 javascript플러그인들이 상당 수 존재 했다. 직접 구현하기보다는, 잘 구현된 플러그인을 가져다 사용하는 방향을 택하기로 했다.이런 류의 플러그인들은 'TOC (Table Of Contents)' 플러그인 으로 통칭되고 있는것 같다. 그리고, 'TOC javascript plugin' 키워드로 검색을 하다보니, 지금 소개하는 jQuery Script.net을 찾게 되.. [리눅스/Vi] vi editor 문자열 치환(replace) 방법 개요 리눅스 환경에서 코드를 작성하다 보면, 종종 vi editor 혹은 vim editor를 사용해서 코드의 특정 단어를 다른 단어로 교체(replace) 해야 하는 상황이 종종 있다. 즉, 특정 문자열을 치환해야 하는 경우이다. 예를들면, 현재 소스코드 파일에서 'apple_result' 이라는 변수를 모두 'melon_result' 라는 변수로 바꾸어야 하는 상황 같은 것 말이다. 상황에 따라 아래와 같은 몇가지 방법이 있다.우선 ex모드로 진입해야 한다. 1. 현재 문서를 편집중인 '편집모드'라면, 키보드의 ESC 키를 눌러 편집모드에서 명령모드로 나온다.2. 콜론(:)을 눌러 ex모드로 진입한다.3. ex모드에서 아래와 같은 방법들 중, 자신의 상황에 맞는 방법을 선택해 수행하면 된다. 혹시, .. [네트워크/C] addrinfo 구조체 이 포스팅은 POSIX/리눅스에서 C 언어를 사용한 네트워크 소켓 프로그래밍과 관련된 글이다. addrinfo 구조체는 네트워크 주소정보(인터넷 주소)와 호스트이름을 표현하는데 사용되며, 이 정보는 bind( ), connect( )호출 시 입력 파라미터에 사용될 수 있다.또한 getaddrinfo( ) 함수 호출 시, hint 정보를 알리는 입력 파라미터로 사용할 수 있으며, getaddrinfo( ) 함수의 결과값을 전달하는 출력 파라미터로도 사용된다. 관련 헤더struct addrinfo를 코드에서 사용하기 위해서는 아래 헤더파일을 포함시키면 된다. #include 구조체 원형 struct addrinfo { int ai_flags; /* 추가적인 옵션을 정의 할 때 사용함. 여러 flag를 bit.. [네트워크/C] getaddrinfo 함수 개요 getaddrinfo는 domain address를 받아서 네트워크 주소 정보(IP address)를 가져오는 함수이다. 예를들면, http://www.google.co.kr라는 domain address가 있는데, 이 주소는 사람이 알아보기 쉬운 주고이긴 하지만, 컴퓨터는 이 주소를 가지고 해당되는 구글의 서버를 찾아가지 못한다. 그래서 이 domain address와 대응되는 IP주소가 무엇인지를 알아 낸 뒤에 그 IP주소로 연결을 해야한다. 즉, Domain address -> IP address 변환을 하고 싶을 때 사용하는 함수라는 뜻이다.이걸 전문용어로 DNS (Domain Name System/Service) resolving 이라고 한다. getaddrinfo 함수는 총 4개의 매개변.. [네트워크/C] sockaddr, sockaddr_in, sockaddr_un 구조체 - 소켓 주소 정보를 나타낸다 기본 지식'Socket Address Structures' 에 관해서 설명하는 글이다. 리눅스/유닉스 시스템에서는 소켓(socket)의 통신 대상을 지정하기 위해 '주소(address)'를 사용한다. 이 '주소' 라는 것을 저장하거나 표현하는데 사용하는 구조체가 바로, 본 포스팅에서 설명하고자 하는 'struct sockaddr' 이다. bind( ), connect( ) 와 같은 함수들이 2번째 매개변수로써 바로 이 'struct sockaddr' 을 받는다. 이 struct sockaddr은 기본 형태이고, 주소체계(Address family)값에 따라서 구조체를 형변환 해서 사용하면 편리하다. 즉, 일반적으로 개발을 하다보면 struct sockaddr_in, struct sockaddr_un, s.. 이전 1 2 3 4 5 6 7 ··· 20 다음