[Nanopb] Basic type proto sample - Decode sample code
반응형
[Nanopb for Google protobuf] Basic type proto sample - Decode sample code
※ 관련글
- 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
Decode sample code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
void testDecode(int encodeSize, uint8_t* buffer) {
//Decode 시키기 위한 inStream 생성
pb_istream_t stream;
/* Construct a pb_istream_t for reading from the buffer */
stream = pb_istream_from_buffer(buffer, encodeSize);
/* Uses _init_default to just make sure that the macro works. */
TestBasicTypes msg = TestBasicTypes_init_default;
/* [Optional] Fill with garbage to better detect initialization errors */
memset(&msg, 0xAA, sizeof(msg));
// pb decode 함수를 사용하여 bytes 를 객체화 시킨다. 실패 시 false 가 출력.
if (!pb_decode(&stream, TestBasicTypes_fields, &msg)) {
Serial.print("TestBasicTypes Decoding failed: ");
Serial.print(PB_GET_ERROR(&stream));
Serial.println("");
return;
} else {
//Decode 된 메시지 를 출력시켜 확인한다.
Serial.print("TestBasicTypes Decoding OK");
Serial.print(" testInt32:");
Serial.print(msg.testInt32);
Serial.println("");
Serial.print(" testInt64:");
Serial.print((long) (msg.testInt64));
Serial.println("");
Serial.print(" testFloat:");
Serial.print(msg.testFloat);
Serial.println("");
Serial.print(" testDouble:");
Serial.print(msg.testDouble);
Serial.println("");
Serial.print(" testUint32:");
Serial.print(msg.testUint32);
Serial.println("");
}
}
|
cs |
반응형
'IT > C, C++' 카테고리의 다른 글
[Nanopb] String/Bytes type proto - Sample proto file (0) | 2020.01.30 |
---|---|
[Nanopb] String/Bytes type proto (0) | 2020.01.30 |
[Nanopb] Basic type proto sample - Encode sample code (0) | 2020.01.30 |
[Nanopb] Basic type proto sample - Sample proto file (0) | 2020.01.30 |
[Nanopb] Basic type proto sample (0) | 2020.01.30 |