init: Air780EPM 官方 LuatOS 项目代码基线

- 来源: 合宙 LuatOS 官方仓库 air780epm 模块完整代码
- 路径: luatos/air780epm/module/Air780EPM/demo 含官方 demo(含 mqtt/mqtts/socket/uart 等)
- 后续: 基于 demo 开发 UART<->MQTT 数据上报功能
This commit is contained in:
wangfq
2026-08-31 08:53:49 +08:00
commit 173dd6874f
813 changed files with 125484 additions and 0 deletions
@@ -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())
#### 高效数据查询
1query()接口快速提取数据
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())
2Base64编码转换(toBase64())
## **演示硬件环境**
1、Air780EPM开发板一块/Air780EPM核心板一块
2、TYPE-C USB数据线一根
3、Air780EPM开发板和数据线的硬件接线方式为
- Air780EPM开发板通过TYPE-C USB口供电;(USB旁边的开关拨到USB供电)
- TYPE-C USB数据线直接插到Air780EPM开发板的TYPE-C USB座子,另外一端连接电脑USB口;
4、如果是Air780EPM核心板,需要将正面usb旁的拨码拨到ON, 通过TYPE-C USB口供电,另外一端连接电脑USB口;
## **演示软件环境**
1、Luatools下载调试工具: https://docs.openluat.com/air780epm/common/Luatools/
2、内核固件版本:https://docs.openluat.com/air780epm/luatos/firmware/version/
## **演示核心步骤**
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
2BUFF创建,,,
[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-140xaa
[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
```