|
|
@@ -0,0 +1,172 @@
|
|
|
+## **功能模块介绍:**
|
|
|
+
|
|
|
+本demo进行了一个完整的 zbuff 二进制数据处理库 的演示,示了在嵌入式环境中高效处理二进制数据的全流程。项目分为三个核心模块,覆盖了从基础到高级的二进制数据处理场景:
|
|
|
+
|
|
|
+1、main.lua:主程序入口
|
|
|
+
|
|
|
+2、zbuff_core.lua:为zbuff的基础操作模块,包含zbuff最常用的创建,读写高效查询等基础功能。
|
|
|
+
|
|
|
+3、zbuff_advanced.lua:为zbuff高级操作模块,包含zbuff较为复杂的结构化打包,类型化操作等数据处理功能。
|
|
|
+
|
|
|
+4、zbuff_memory.lua:为内存管理模块,核心业务逻辑为内存管理操作。
|
|
|
+
|
|
|
+## 演示功能概述
|
|
|
+
|
|
|
+### 1、核心功能模块 (zbuff_core.lua)
|
|
|
+
|
|
|
+#### 缓冲区管理:
|
|
|
+
|
|
|
+(1)创建固定大小(1024字节)的缓冲区 zbuff.create
|
|
|
+
|
|
|
+(2)索引直接访问(如 buff[0] = 0xAE)
|
|
|
+
|
|
|
+#### 基础IO操作:
|
|
|
+
|
|
|
+(1)写入字符串和数值数据(write("123"))
|
|
|
+
|
|
|
+(2)指针控制(seek()定位操作)
|
|
|
+
|
|
|
+(3)数据读取(read(3))
|
|
|
+
|
|
|
+#### 元信息查询
|
|
|
+
|
|
|
+(1)获取缓冲区总长度(len())
|
|
|
+
|
|
|
+(2)查询已使用空间(used())
|
|
|
+
|
|
|
+#### 高效数据查询
|
|
|
+
|
|
|
+(1)query()接口快速提取数据
|
|
|
+
|
|
|
+(2)自动格式转换(大端序处理)
|
|
|
+
|
|
|
+### 2、高级功能模块 (zbuff_advanced.lua)
|
|
|
+
|
|
|
+#### 结构化数据处理
|
|
|
+
|
|
|
+(1)数据打包(pack(">IIHA", ...)):支持大端序/多种数据类型
|
|
|
+
|
|
|
+(2)数据解包(unpack(">IIHA10")):自动解析复合数据结构
|
|
|
+
|
|
|
+#### 类型化操作
|
|
|
+
|
|
|
+(1)精确类型读写:writeI8()/readU32()等
|
|
|
+
|
|
|
+#### 浮点处理
|
|
|
+
|
|
|
+(1)单精度浮点写入(writeF32(1.2))
|
|
|
+
|
|
|
+(2)浮点数据读取(readF32())
|
|
|
+
|
|
|
+### 3、内存管理模块 (zbuff_memory.lua)
|
|
|
+
|
|
|
+#### 动态内存管理
|
|
|
+
|
|
|
+(1)缓冲区动态扩容resize(2048)
|
|
|
+
|
|
|
+#### 块操作
|
|
|
+
|
|
|
+(1)内存块设置(set(10,0xaa,5))类似 memset
|
|
|
+
|
|
|
+(2)数据删除(del(2,3))及前移
|
|
|
+
|
|
|
+#### 数据工具
|
|
|
+
|
|
|
+(1)内存比较(isEqual())
|
|
|
+
|
|
|
+(2)Base64编码转换(toBase64())
|
|
|
+
|
|
|
+## **演示硬件环境**
|
|
|
+
|
|
|
+1、Air8000整机开发板一块/任意一款的Air8000核心板
|
|
|
+
|
|
|
+2、TYPE-C USB数据线一根
|
|
|
+
|
|
|
+3、Air8000整机开发板和数据线的硬件接线方式为
|
|
|
+
|
|
|
+- Air8000整机开发板通过TYPE-C USB口供电;(USB旁边的开关拨到USB供电)
|
|
|
+- TYPE-C USB数据线直接插到Air8000整机开发板的TYPE-C USB座子,另外一端连接电脑USB口;
|
|
|
+
|
|
|
+4、如果是Air8000系列核心板,需要将正面拨到USB供电,背面拨码拨到USB ON, 通过TYPE-C USB口供电,另外一端连接电脑USB口;
|
|
|
+
|
|
|
+## **演示软件环境**
|
|
|
+
|
|
|
+1、Luatools下载调试工具: https://docs.openluat.com/air780epm/common/Luatools/
|
|
|
+
|
|
|
+2、内核固件版本:https://docs.openluat.com/air8000/luatos/firmware/
|
|
|
+
|
|
|
+## **演示核心步骤**
|
|
|
+
|
|
|
+1、搭建好硬件环境
|
|
|
+
|
|
|
+2、通过Luatools将demo与内核固件烧录到核心板中
|
|
|
+
|
|
|
+3、烧录好后,板子开机将会在Luatools上看到如下打印:
|
|
|
+
|
|
|
+```Lua
|
|
|
+(1)开始打印项目信息正式开始展示。
|
|
|
+[2025-08-11 16:38:35.922][000000000.369] I/user.main 项目启动 zbuff 003.000.000
|
|
|
+[2025-08-11 16:38:35.932][000000000.379] I/user.zbuff_core 启动核心功能演示
|
|
|
+[2025-08-11 16:38:35.938][000000000.380] I/user.zbuff_core 缓冲区创建 长度: 1024
|
|
|
+
|
|
|
+
|
|
|
+(2)进行BUFF创建,初始化以及索引,读写,清除等基础功能演示操作
|
|
|
+[2025-08-11 16:38:35.950][000000000.380] I/user.zbuff_core === 缓冲区创建与初始化演示 ===
|
|
|
+[2025-08-11 16:38:35.955][000000000.380] I/user.zbuff_core 索引访问示例 buff[0] = 174
|
|
|
+
|
|
|
+[2025-08-11 16:38:35.965][000000000.381] I/user.zbuff_core === 基础IO操作演示 ===
|
|
|
+[2025-08-11 16:38:35.971][000000000.381] I/user.zbuff_core 写入字符串 123
|
|
|
+[2025-08-11 16:38:35.979][000000000.381] I/user.zbuff_core 写入数值 0x12, 0x13, 0x13, 0x33
|
|
|
+[2025-08-11 16:38:35.985][000000000.381] I/user.zbuff_core 指针当前位置 向后移动5字节 当前位置: 12
|
|
|
+[2025-08-11 16:38:35.991][000000000.382] I/user.zbuff_core 指针移动 重置到开头
|
|
|
+[2025-08-11 16:38:36.000][000000000.382] I/user.zbuff_core 读取数据 长度3: 123
|
|
|
+
|
|
|
+[2025-08-11 16:38:36.005][000000000.382] I/user.zbuff_core === 缓冲区清除操作 ===
|
|
|
+[2025-08-11 16:38:36.013][000000000.382] I/user.zbuff_core 清除操作 全部清零
|
|
|
+[2025-08-11 16:38:36.019][000000000.382] I/user.zbuff_core 清除操作 填充0xA5
|
|
|
+
|
|
|
+[2025-08-11 16:38:36.027][000000000.383] I/user.zbuff_core === 元信息查询 ===
|
|
|
+[2025-08-11 16:38:36.033][000000000.383] I/user.zbuff_core 元信息 总长度: 1024
|
|
|
+[2025-08-11 16:38:36.043][000000000.383] I/user.zbuff_core 元信息 已使用: 3
|
|
|
+
|
|
|
+[2025-08-11 16:38:36.048][000000000.383] I/user.zbuff_core === 高效数据查询 ===
|
|
|
+[2025-08-11 16:38:36.056][000000000.384] I/user.zbuff_core query查询 全部数据: 123456789ABC 12
|
|
|
+[2025-08-11 16:38:36.060][000000000.384] I/user.zbuff_core query查询 大端序格式: 305419896
|
|
|
+[2025-08-11 16:38:36.067][000000000.384] I/user.zbuff_core 核心功能演示完成
|
|
|
+
|
|
|
+
|
|
|
+(3)进行高级功能演示,包括数据打包与解包、类型化读写、浮点操作演示等。
|
|
|
+[2025-08-11 16:38:36.072][000000000.398] I/user.zbuff_advanced 启动高级功能演示
|
|
|
+
|
|
|
+[2025-08-11 16:38:36.078][000000000.398] I/user.zbuff_advanced === 数据打包与解包演示 ===
|
|
|
+[2025-08-11 16:38:36.088][000000000.399] I/user.zbuff_advanced 数据打包 格式: >IIHA 值: 0x1234, 0x4567, 0x12, 'abcdefg'
|
|
|
+[2025-08-11 16:38:36.092][000000000.399] I/user.zbuff_advanced 打包后数据 0000123400004567001261626364656667 34
|
|
|
+[2025-08-11 16:38:36.101][000000000.400] I/user.zbuff_advanced 数据解包 数量: 20 值: 4660 17767 18 abcdefg
|
|
|
+[2025-08-11 16:38:36.105][000000000.401] I/user.zbuff_advanced 解包输出内容 cnt: 20 a(32位): 0x1234 b(32位): 0x4567 c(16位): 0x12 s(字符串): abcdefg
|
|
|
+
|
|
|
+[2025-08-11 16:38:36.109][000000000.401] I/user.zbuff_advanced === 类型化读写演示 ===
|
|
|
+[2025-08-11 16:38:36.119][000000000.401] I/user.zbuff_advanced 类型化写入 I8: 10
|
|
|
+[2025-08-11 16:38:36.126][000000000.402] I/user.zbuff_advanced 类型化写入 U32: 1024
|
|
|
+[2025-08-11 16:38:36.135][000000000.402] I/user.zbuff_advanced 类型化读取 I8: 10
|
|
|
+[2025-08-11 16:38:36.140][000000000.402] I/user.zbuff_advanced 类型化读取 U32: 1024
|
|
|
+
|
|
|
+[2025-08-11 16:38:36.151][000000000.402] I/user.zbuff_advanced === 浮点数操作演示 ===
|
|
|
+[2025-08-11 16:38:36.156][000000000.403] I/user.zbuff_advanced 浮点数操作 写入F32: 1.200000
|
|
|
+[2025-08-11 16:38:36.165][000000000.403] I/user.zbuff_advanced 浮点数操作 读取F32: 1.200000
|
|
|
+[2025-08-11 16:38:36.171][000000000.403] I/user.zbuff_advanced 高级功能演示完成
|
|
|
+
|
|
|
+
|
|
|
+(4)内存管理演示:内存块设置(set(10,0xaa,5)),数据删除(del(2,3))及前移,内存比较,Base64编码转换等
|
|
|
+[2025-08-11 16:38:36.182][000000000.415] I/user.zbuff_memory 启动内存管理功能演示
|
|
|
+[2025-08-11 16:38:36.188][000000000.416] I/user.zbuff_memory 大小调整 原始大小: 1024 新大小: 2048
|
|
|
+[2025-08-11 16:38:36.198][000000000.417] I/user.zbuff_memory 内存设置 位置10-14设置为0xaa
|
|
|
+[2025-08-11 16:38:36.204][000000000.417] I/user.zbuff_memory 验证结果 位置10: 170 应为0xaa
|
|
|
+[2025-08-11 16:38:36.215][000000000.417] I/user.zbuff_memory 删除前数据
|
|
|
+[2025-08-11 16:38:36.222][000000000.418] ABCDEFGH
|
|
|
+[2025-08-11 16:38:36.233][000000000.418] I/user.zbuff_memory 删除操作 删除位置2-4 结果:
|
|
|
+[2025-08-11 16:38:36.244][000000000.418] ABFGH
|
|
|
+[2025-08-11 16:38:36.251][000000000.418] I/user.zbuff_memory 内存比较 结果: false 差异位置: 0
|
|
|
+[2025-08-11 16:38:36.258][000000000.419] I/user.zbuff_memory Base64编码 长度: 8 结果: QUJGR0g=
|
|
|
+[2025-08-11 16:38:36.264][000000000.419] I/user.zbuff_memory 内存管理功能演示完成
|
|
|
+```
|
|
|
+
|