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

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

Java 的 Condition 接口与等待通知机制详解

《Java的Condition接口与等待通知机制详解》在Java并发编程里,实现线程间的协作与同步是极为关键的任务,本文将深入探究Condition接口及其背后的等待通知机制,感兴趣的朋友一起看... 目录一、引言二、Condition 接口概述2.1 基本概念2.2 与 Object 类等待通知方法的区别

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R