LuatOS-SOC接口文档(air780E)--protobuf - ProtoBuffs编解码

2023-11-25 21:04

本文主要是介绍LuatOS-SOC接口文档(air780E)--protobuf - ProtoBuffs编解码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

示例

-- 加载 pb 文件, 这个是从pbtxt 转换得到的
-- 转换命令: protoc.exe -operson.pb --cpp_out=cpp person.pbtxt
-- protoc.exe 下载地址: https://github.com/protocolbuffers/protobuf/releases
protobuf.load(io.readFile("/luadb/person.pb"))
local tb = {name = "wendal",id = 123,email = "abc@qq.com"
}
-- 用 protobuf 编码数据
local data = protobuf.encode("Person", tb)
if data then-- 打印数据长度. 编码后的数据含不可见字符, toHex是方便显示log.info("protobuf", #data, (data:toHex()))
end

protobuf.load(pbdata)

加载pb二进制定义数据

参数

传入值类型

解释

string

通过protoc.exe程序转换得到的数据,通常从文件读取得到

返回值

返回值类型

解释

bool

成功与否

int

读取了多长, 调试用

例子

-- 注意, 同一个文件只需要加载一次, 除非调用过protobuf.clear()
protobuf.load(io.readFile("/luadb/person.pb"))

protobuf.clear()

清除已加载的二进制定义数据

参数

返回值

返回值类型

解释

nil

无返回值, 总是成功

例子

-- 清除所有已加载的定义数据
protobuf.clear()

protobuf.encode(tpname, data)

编码protobuffs数据包

参数

传入值类型

解释

string

数据类型名称, 定义在pb文件中, 由protobuf.load加载

table

待编码数据, 必须是table, 内容符合pb文件里的定义

返回值

返回值类型

解释

string

编码后的数据,若失败会返回nil

例子

-- 数据编码
local tb = {name = "wendal"
}
local pbdata = protobuf.encode("Person", tb)
if pbdata then-- 注意, 编码后的数据通常带不可见字符log.info("protobuf", #pbdata, pbdata:toHex())
end

protobuf.decode(tpname, data)

解码protobuffs数据包

参数

传入值类型

解释

string

数据类型名称, 定义在pb文件中, 由protobuf.load加载

string

待编码数据

返回值

返回值类型

解释

table

解码后的数据

例子

-- 数据编码
local tb = {name = "wendal"
}
local pbdata = protobuf.encode("Person", tb)
if pbdata then-- 注意, 编码后的数据通常带不可见字符log.info("protobuf", #pbdata, pbdata:toHex())
end

这篇关于LuatOS-SOC接口文档(air780E)--protobuf - ProtoBuffs编解码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424622

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

bcolz文档

原文:http://bcolz.blosc.org/en/latest/reference.html First level variables bcolz.__version__'''bcolz包的版本。''' bcolz.dask_here'''是否检测到dask的最低版本。''' bcolz.min_dask_version'''需要dask的最低版本(dask是可选

股票数据接口-陈科肇

陈科肇 新浪财经 sz-深圳sh-上海历史分价表:http://market.finance.sina.com.cn/pricehis.php?symbol=sz000506&startdate=2016-12-27&enddate=2016-12-27历史成交明细(当日成交明细):http://vip.stock.finance.sina.com.cn/quotes_service/v

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%