init: Air780EPM 官方 LuatOS 项目代码基线
- 来源: 合宙 LuatOS 官方仓库 air780epm 模块完整代码 - 路径: luatos/air780epm/module/Air780EPM/demo 含官方 demo(含 mqtt/mqtts/socket/uart 等) - 后续: 基于 demo 开发 UART<->MQTT 数据上报功能
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
--[[
|
||||
@module zbuff_advanced
|
||||
@summary zbuff的高级操作模块
|
||||
@version 1.0.0
|
||||
@date 2025.08.08
|
||||
@author 王棚嶙
|
||||
@usage
|
||||
本文件为本部分为zbuff高级操作模块,包含zbuff的复杂数据处理功能,包括:
|
||||
1. 数据打包/解包
|
||||
2. 类型化读写
|
||||
3. 浮点数操作
|
||||
本文件没有对外接口,直接在main.lua中require "zbuff_advanced"就可以加载运行
|
||||
]]
|
||||
|
||||
local function zbuff_advanced_task_func()
|
||||
log.info("zbuff_advanced", "启动高级功能演示")
|
||||
|
||||
-- 创建1024字节的缓冲区
|
||||
local buff = zbuff.create(1024)
|
||||
|
||||
-- === 数据打包与解包演示 ===
|
||||
log.info("zbuff_advanced", "=== 数据打包与解包演示 ===")
|
||||
|
||||
-- 清空缓冲区
|
||||
buff:clear()
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
|
||||
-- 打包数据:大端序,2个32位整数,1个16位整数,1个字符串
|
||||
buff:pack(">IIHA", 0x1234, 0x4567, 0x12, "abcdefg")
|
||||
log.info("zbuff_advanced", "数据打包", "格式: >IIHA", "值: 0x1234, 0x4567, 0x12, 'abcdefg'")
|
||||
-- 显示打包后的二进制内容
|
||||
local packed = buff:toStr(0, buff:used())--按照起始位置和长度,取出数据,并转换为字符串
|
||||
log.info("zbuff_advanced", "打包后数据", packed:toHex())
|
||||
|
||||
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
|
||||
-- 解包数据:大端序,2个32位整数,1个16位整数,1个10字节字符串
|
||||
local cnt, a, b, c, s = buff:unpack(">IIHA10")
|
||||
log.info("zbuff_advanced", "数据解包", "数量:", cnt, "值:", a, b, c, s)
|
||||
-- 显示解包后的输出内容
|
||||
-- string.forma是Lua的格式化字符串函数,按照格式化参数formatstring,返回后面...内容的格式化版本。string.format("0x%X", a)表示将整数a转换为十六进制字符串。
|
||||
log.info("zbuff_advanced", "解包输出内容",
|
||||
"cnt:", cnt,
|
||||
"a(32位):", string.format("0x%X", a),
|
||||
"b(32位):", string.format("0x%X", b),
|
||||
"c(16位):", string.format("0x%X", c),
|
||||
"s(字符串):", s)
|
||||
-- === 类型化读写演示 ===
|
||||
--[[
|
||||
类型化读写演示
|
||||
展示I8和U32两种类型操作
|
||||
@param buff zbuff对象
|
||||
--]]
|
||||
log.info("zbuff_advanced", "=== 类型化读写演示 ===")
|
||||
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
|
||||
-- 写入8位有符号整数
|
||||
buff:writeI8(10)
|
||||
log.info("zbuff_advanced", "类型化写入", "I8:", 10)
|
||||
|
||||
-- 写入32位无符号整数
|
||||
buff:writeU32(1024)
|
||||
log.info("zbuff_advanced", "类型化写入", "U32:", 1024)
|
||||
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
|
||||
-- 读取8位有符号整数
|
||||
local i8data = buff:readI8()
|
||||
log.info("zbuff_advanced", "类型化读取", "I8:", i8data)
|
||||
|
||||
-- 读取32位无符号整数
|
||||
local u32data = buff:readU32()
|
||||
log.info("zbuff_advanced", "类型化读取", "U32:", u32data)
|
||||
|
||||
|
||||
|
||||
--[[
|
||||
浮点数操作演示
|
||||
@param buff zbuff对象
|
||||
--]]
|
||||
log.info("zbuff_advanced", "=== 浮点数操作演示 ===")
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
|
||||
-- 写入32位浮点数
|
||||
buff:writeF32(1.2)
|
||||
log.info("zbuff_advanced", "浮点数操作", "写入F32:", 1.2)
|
||||
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
|
||||
-- 读取32位浮点数
|
||||
local f32data = buff:readF32()
|
||||
log.info("zbuff_advanced", "浮点数操作", "读取F32:", f32data)
|
||||
|
||||
-- 清空缓冲区
|
||||
buff:clear()
|
||||
-- 重置指针到开头
|
||||
buff:seek(0)
|
||||
log.info("zbuff_advanced", "高级功能演示完成")
|
||||
end
|
||||
sys.taskInit(zbuff_advanced_task_func)
|
||||
Reference in New Issue
Block a user