|
|
4 mēneši atpakaļ | |
|---|---|---|
| .. | ||
| main.lua | 4 mēneši atpakaļ | |
| pack_demo.lua | 4 mēneši atpakaļ | |
| readme.md | 4 mēneši atpakaļ | |
本项目演示了LuatOS的pack核心库的使用,pack核心库提供了二进制数据的打包和解包功能,支持多种数据格式和字节序。
本demo通过7个实验演示pack核心库的主要功能:
大小端编码演示:使用'<'和'>'格式符进行小端和大端编码
多种数据类型打包:打包short、int、float等多种数据类型
字符串格式演示:'a'格式(带长度前缀)和'z'格式(以null结尾)的字符串打包和解包
An格式演示:An格式(如A2、A5)的打包行为,即打包前n个字符串参数
指定位置解包:从指定位置开始解包数据
复杂数据组合:打包和解包复杂的数据结构,包括整数、字符串和短整数
边界情况测试:空数据打包和解包,以及数值边界测试
1、Air780EPM开发板
2、TYPE-C 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开发板中将本篇文章中演示使用的项目文件烧录到相应的核心板中。
pack 核心库文档:https://docs.openluat.com/osapi/core/pack/
1、搭建好硬件环境
2、Luatools烧录内核固件和demo脚本代码
3、烧录成功后,自动开机运行
4、在日志中查看演示结果
本demo包含7个实验,运行后会在日志中输出每一步的结果:
演示如何使用'<'和'>'格式符进行小端和大端编码
``` lua
I/user.小端编码: DDCCBBAA 8
I/user.大端编码: AABBCCDD 8
I/user.解包验证 - 小端: 0xAABBCCDD
I/user.解包验证 - 大端: 0xAABBCCDD
```
演示如何同时打包short、int、float等多种数据类型
``` lua
I/user.混合数据打包: 7B0055F80600C3F54840 20
I/user.解包混合数据: 123 456789 3.140000
```
演示'a'格式(带长度前缀)和'z'格式(以null结尾)的字符串打包和解包
``` lua
I/user.'a'格式字符串: 060000004C7561744F53 20
I/user.'a'格式解包: LuatOS
I/user.'z'格式字符串: 4C7561744F5300 14
I/user.'z'格式解包: LuatOS
```
演示An格式(如A2、A5)的打包行为,即打包前n个字符串参数
``` lua
I/user.'A'格式打包: 68657A686F75 12
I/user.'A'格式结果: hezhou
I/user.'A5'格式打包: 68657A686F754C7561744F532121 28
I/user.'A5'格式结果: hezhouLuatOS!!
```
演示如何从指定位置开始解包数据
``` lua
I/user.多数据打包: 6400C80000002C01 16
I/user.分步解包结果: 100 200 300
```
演示如何打包和解包复杂的数据结构,包括整数、字符串和短整数
``` 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 核心板文档。
在实际使用中,请根据具体需求选择合适的数据类型和字节序。