nanopb protobuf学习笔记

更新时间:2024-04-08 03:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

step1 : 下载官方nanopb包。 1)链接:(http://koti.kapsi.fi/jpa/nanopb/)

下载时需要注意下载对应的版本,不然编译会异常。 解压 tar zxvf nanopb-0.3.5.tar.gz

step2 : 安装proto 2 .c/.h工具. 需要安装两个软件:

1:ubuntu@ubuntu:~$ sudo apt-get install protoc (这个貌似不用安装) 2:ubuntu@ubuntu:~$ sudo apt-get install python protoc 第一个包作用 :把proto生成.pb文件; python第二个包作用:利用官方提供的python脚本把pb文件生成可以使用的c和h文件。

step3 : 编写.proto文件

注意:最好使用linux下vi编译器编写proto文件,在其他编译环境下(如win的文本编辑器)编译的proto文件在转换成c/h文件时可能会报错,原因是由于编码格式的问题,有些编辑环境会在文件的开头有一个特殊的字符,导致不能识别。 (http://blog.csdn.net/yangtzh/article/details/45165763)

一个proto文件示例: 文件名:simple.proto message SimpleMessage {

required int32 lucky_number = 1; }

step 4 :把上一步编写的proto文件生成对应的.c/.h文件。 1)proto -> pb $protoc -osimple.pb simple.proto

2)pb -> .c/h $python nanopb/generator/nanopb_generator.py simple.pb

之后就可以在当前目录下看到需要的c或者h文件,本例中为simple.pb.c 和simple.pb.h。

step5: 编写用户应用程序

主要是利用pb_ostream_from_buffer( ) 和pb_encode( )两个API函数进行对数据打包(函数在pb_encoe.h中)。

利用pb_istream_from_buffer()和pb_decode()两个函数进行对数据包解析(函数在pb_encoe.h中)。

具体使用方法参考源码包中 /nanopb/example/simple/simple.c 即在编译时需要把这些相关的文件添加到工程中。

本文来源:https://www.bwwdw.com/article/ftrr.html

Top