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,139 @@
|
||||
# pack_DEMO 项目说明
|
||||
|
||||
## 项目概述
|
||||
本项目演示了LuatOS的pack核心库的使用,pack核心库提供了二进制数据的打包和解包功能,支持多种数据格式和字节序。
|
||||
|
||||
## 功能说明
|
||||
|
||||
本demo通过7个实验演示pack核心库的主要功能:
|
||||
|
||||
大小端编码演示:使用'<'和'>'格式符进行小端和大端编码
|
||||
|
||||
多种数据类型打包:打包short、int、float等多种数据类型
|
||||
|
||||
字符串格式演示:'a'格式(带长度前缀)和'z'格式(以null结尾)的字符串打包和解包
|
||||
|
||||
An格式演示:An格式(如A2、A5)的打包行为,即打包前n个字符串参数
|
||||
|
||||
指定位置解包:从指定位置开始解包数据
|
||||
|
||||
复杂数据组合:打包和解包复杂的数据结构,包括整数、字符串和短整数
|
||||
|
||||
边界情况测试:空数据打包和解包,以及数值边界测试
|
||||
|
||||
## 演示硬件环境
|
||||
|
||||
1、Air780EPM开发板
|
||||
|
||||

|
||||
|
||||
2、TYPE-C USB数据线一根
|
||||
- Air780EPM开发板通过 TYPE-C USB 口供电;
|
||||
- TYPE-C USB 数据线直接插到核心板的 TYPE-C USB 座子,另外一端连接电脑 USB 口;
|
||||
|
||||
|
||||
## 演示软件环境
|
||||
|
||||
1、Luatools下载调试工具 [https://docs.openluat.com/air780epm/common/Luatools/]
|
||||
|
||||
2、固件版本LuatOS-SoC_V2016_Air780EPM 版本固件。不同版本区别请见 https://docs.openluat.com/air780epm/luatos/firmware/version/
|
||||
|
||||
3、lib 脚本文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件;
|
||||
|
||||
4、准备好软件环境之后,接下来查看[如何烧录项目文件到 Air780EPM开发板中](https://docs.openluat.com/air780epm/luatos/common/download/)将本篇文章中演示使用的项目文件烧录到相应的核心板中。
|
||||
|
||||
## 相关软件资料
|
||||
|
||||
pack 核心库文档:https://docs.openluat.com/osapi/core/pack/
|
||||
|
||||
## 演示核心步骤
|
||||
|
||||
1、搭建好硬件环境
|
||||
|
||||
2、Luatools烧录内核固件和demo脚本代码
|
||||
|
||||
3、烧录成功后,自动开机运行
|
||||
|
||||
4、在日志中查看演示结果
|
||||
|
||||
本demo包含7个实验,运行后会在日志中输出每一步的结果:
|
||||
|
||||
- 实验1:大小端编码
|
||||
|
||||
演示如何使用'<'和'>'格式符进行小端和大端编码
|
||||
|
||||
``` lua
|
||||
I/user.小端编码: DDCCBBAA 8
|
||||
I/user.大端编码: AABBCCDD 8
|
||||
I/user.解包验证 - 小端: 0xAABBCCDD
|
||||
I/user.解包验证 - 大端: 0xAABBCCDD
|
||||
```
|
||||
|
||||
- 实验2:多种数据类型打包
|
||||
|
||||
演示如何同时打包short、int、float等多种数据类型
|
||||
|
||||
``` lua
|
||||
I/user.混合数据打包: 7B0055F80600C3F54840 20
|
||||
I/user.解包混合数据: 123 456789 3.140000
|
||||
```
|
||||
|
||||
|
||||
- 实验3:字符串格式演示
|
||||
|
||||
演示'a'格式(带长度前缀)和'z'格式(以null结尾)的字符串打包和解包
|
||||
|
||||
``` lua
|
||||
I/user.'a'格式字符串: 060000004C7561744F53 20
|
||||
I/user.'a'格式解包: LuatOS
|
||||
I/user.'z'格式字符串: 4C7561744F5300 14
|
||||
I/user.'z'格式解包: LuatOS
|
||||
```
|
||||
|
||||
- 实验4:An格式演示
|
||||
|
||||
演示An格式(如A2、A5)的打包行为,即打包前n个字符串参数
|
||||
|
||||
``` lua
|
||||
I/user.'A'格式打包: 68657A686F75 12
|
||||
I/user.'A'格式结果: hezhou
|
||||
I/user.'A5'格式打包: 68657A686F754C7561744F532121 28
|
||||
I/user.'A5'格式结果: hezhouLuatOS!!
|
||||
```
|
||||
|
||||
- 实验5:指定位置解包
|
||||
|
||||
演示如何从指定位置开始解包数据
|
||||
|
||||
``` lua
|
||||
I/user.多数据打包: 6400C80000002C01 16
|
||||
I/user.分步解包结果: 100 200 300
|
||||
```
|
||||
|
||||
- 实验6:复杂数据组合
|
||||
|
||||
演示如何打包和解包复杂的数据结构,包括整数、字符串和短整数
|
||||
|
||||
``` lua
|
||||
I/user.复杂数据打包: 12340000000454657374FFCE 24
|
||||
I/user.复杂数据解包: 0x1234 Test -50
|
||||
```
|
||||
|
||||
- 实验7:边界情况
|
||||
|
||||
演示空数据打包和解包,以及数值边界测试
|
||||
|
||||
``` lua
|
||||
I/user.空格式打包: 0
|
||||
I/user.空格式解包位置: 1
|
||||
I/user.短整型边界 - 最大值: FF7F 4
|
||||
I/user.短整型边界 - 最小值: 0080 4
|
||||
I/user.边界值验证: 32767 -32768
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
本demo仅用于演示pack核心库的基本用法,更多高级用法请参考[pack 核心板文档](https://docs.openluat.com/osapi/core/pack/)。
|
||||
|
||||
在实际使用中,请根据具体需求选择合适的数据类型和字节序。
|
||||
|
||||
Reference in New Issue
Block a user