--[[ @summary pack API演示脚本 @version 1.0 @date 2025.10.27 @author 陈媛媛 @usage 本脚本演示pack.pack和pack.unpack API的各种用法: 1、大小端编码演示:使用'<'和'>'格式符进行小端和大端编码 2、多种数据类型打包:打包short、int、float等多种数据类型 3、字符串格式演示:'a'格式(带长度前缀)和'z'格式(以null结尾)的字符串打包和解包 4、An格式演示:An格式(如A2、A5)的打包行为,即打包前n个字符串参数 5、指定位置解包:从指定位置开始解包数据 6、复杂数据组合:打包和解包复杂的数据结构,包括整数、字符串和短整数 7、边界情况测试:空数据打包和解包,以及数值边界测试 ]] -- 初始化函数 local function init() log.info("pack_demo", "脚本初始化完成") end -- 大小端编码演示 local function demo_endian() log.info("\n--- 实验1:大小端编码 ---") -- 小端编码 local data_le = pack.pack("I", 0xAABBCCDD) log.info("大端编码:", data_be:toHex()) -- 解包验证 local _, val_le = pack.unpack(data_le, "I") log.info("解包验证 - 小端:", string.format("0x%08X", val_le)) log.info("解包验证 - 大端:", string.format("0x%08X", val_be)) end -- 多种数据类型打包演示 local function demo_mixed_types() log.info("\n--- 实验2:多种数据类型打包 ---") -- 打包多个不同类型数据 local mixed_data = pack.pack("H a h", 0x1234, "Test", -50) log.info("复杂数据打包:", complex_data:toHex()) -- 解包复杂数据 local _, header, text, value = pack.unpack(complex_data, ">H a h") log.info("复杂数据解包:", string.format("0x%04X", header), text, value) end -- 边界情况演示 local function demo_edge_cases() log.info("\n--- 实验7:边界情况 ---") -- 打包空数据 local empty_data = pack.pack("") log.info("空格式打包:", empty_data:toHex()) -- 解包空数据 local pos_empty = pack.unpack("", "") log.info("空格式解包位置:", pos_empty) -- 数值边界测试 local max_short = pack.pack("