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

相关文章

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh