[Nanopb] Basic type proto sample
[Nanopb for Google protobuf] Basic type proto sample
※ 관련글
- Google Protobuf
- [Google Protobuf] For Java in Android Studio - 설치 및 proto 파일 컴파일
- [Google Protobuf] For Java in Android Studio - Gen Java 파일 Android Studio 적용
- [Google Protobuf] For Java in Android Studio - Basic example code 기본 소스 코드 사용 샘플
- [Google Protobuf] For C++ in Linux - Settings C++ 빌드 환경 만들기
- [Google Protobuf] For C++ in Linux - Basic example code 기본 소스 코드 사용 샘플
- Nanopb Basic type value example
- [Nanopb for Google protobuf] Basic type proto sample
- [Nanopb for Google protobuf] Basic type proto sample - Sample proto file
- [Nanopb for Google protobuf] Basic type proto sample - Encode sample code
- [Nanopb for Google protobuf] Basic type proto sample - Decode sample code
- Nanopb String / bytes value example
- [Nanopb for Google protobuf] String/Bytes type proto
- [Nanopb for Google protobuf] String/Bytes type proto - Sample proto file
- [Nanopb for Google protobuf] String/Bytes type proto - Encode example code 1
- [Nanopb for Google protobuf] String/Bytes type proto - Encode example code 2
- [Nanopb for Google protobuf] String/Bytes type proto - Decode example code
- Nanopb basic submsg example
- [Nanopb for Google protobuf] Sub message - Example proto file
- [Nanopb for Google protobuf] Sub message - Encode example code
- [Nanopb for Google protobuf] Sub message - Decode example code
- Nanopb array submsg value example
- [Nanopb for Google protobuf] Array Sub message - Example proto file
- [Nanopb for Google protobuf] Array Sub message - Encode example code
- [Nanopb for Google protobuf] Array Sub message - Decode example code
Nanopb for Google protobuf
32bit MCU 또는 8 bit MCU에서는 Google proto buffer를 적용하면 메모리 사이즈 증가로 사용할 수 없거나 힘듭니다.
이것을 해결하기 위한 여러가지 해결책 중 Nanopb 라는 api 가 있습니다.
Nanopb 를 사용하기 위한 샘플 자료이고 아두이노 우노로 테스트 함.
# Nanopb download site
https://jpa.kapsi.fi/nanopb/download/
* API Ref
https://jpa.kapsi.fi/nanopb/docs/reference.html
* Ref : https://techtutorialsx.com/2018/10/19/esp32-esp8266-arduino-protocol-buffers/
Nanopb 를 받은 후 압축해제한 후
# 아두이노 소스 컴파일에 필요한 소스
- pb.h
- pb_common.h
- pb_common.c
- pb_encode.h
- pb_encode.c
- pb_decode.h
- pb_decode.c
위 파일들을 lib 폴더로 복사하여 사용한다.
* 샘플 파일들 있는 위치 (압축 해제 후)
Nanopb\nanopb-0.4.0-windows-x86\tests
# *.profo 파일을 빌드 시킨다.
압축 해제된 폴더의 \generator-bin 폴더에 컴파일 시킬 수 있는 파일이 있다.
# 소스에 적용 방법.[이클립스로 아두이노 소스 빌드하는 기준으로 설명한다.]
[아래 소스는 periodicPos.proto 샘플 파일을 기준으로 설명한다. 파일 코드는 아래쪽 참조 바람]
* 라이브러리를 프로젝트에 등록한다.
이클립스의 경우 라이브러리 등록 후 nanopb 를 위한 header 파일을 include 한다.
* test.proto 파일로 빌드된 *.h 파일을 include 한다.
#include "periodicPos.pb.h"
여기까지 되었으면 일단 한번 빌드를 돌려본다. 문제가 없다면 빌드가 완료 된다.
'IT > C, C++' 카테고리의 다른 글
[Nanopb] Basic type proto sample - Encode sample code (0) | 2020.01.30 |
---|---|
[Nanopb] Basic type proto sample - Sample proto file (0) | 2020.01.30 |
[Google Protobuf] For C++ in Linux - Basic example code 기본 소스 코드 사용 샘플 (0) | 2020.01.30 |
[Google Protobuf] For C++ in Linux - Settings C++ 빌드 환경 만들기 (0) | 2020.01.30 |
[Google Protobuf] For Java in Android Studio - Basic example code 기본 소스 코드 사용 샘플 (0) | 2020.01.30 |