0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Air780E软件中zlib解压示例的详细展示!

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-11-17 10:01 次阅读

今天我带入的是Air780E 软件中 zlib 解压示例,希望大家有所收获。

1、ZLIB解压工具简介

Zlib解压工具是一个广泛使用的压缩和解压缩库,主要用于处理数据的压缩和解压缩任务。Zlib使用的是DEFLATE算法,这是一种通用的压缩算法。它被应用在很多场景中,比如压缩文件、网络传输中的数据压缩、以及各种应用程序中的数据存储和读取。

Zlib的代码库相对小巧,因此在嵌入式系统和资源受限的环境中也能很好地使用。

详细细节可以参考:https://www.cnblogs.com/LyShark/p/17861293.html

2、演示功能概述

本文主要演示如何对数据压缩解压。

3、准备硬件环境

此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/product/

Air780E产品手册中的<<开发板Core_Air780E使用说明V1.0.5.pdf>>;核心板使用过程中遇到任何问题,可以直接参考这份使用说明pdf文档。

3.1 数据通信线

typec接口USB数据线即可。

3.2 PC电脑

WINDOWS系统。

4、准备软件环境

4.1 基本的下载调试工具

使用说明参考:
Luatools 工具使用说明:
https://docs.openluat.com/Luatools/

5、ZLIB解压操作软硬件资料

5.1 文档和工具:

最新版本下载链接:
https://docs.openluat.com/air780e/luatos/app/utils/zlib/

780E模块使用固件:SDK&Demo-合宙文档中心,本demo使用的固件版本是:LuatOS-SoC_V1112_EC618_FULL.soc

教程使用的demo:https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/miniz

将固件和脚本烧录到模块中;

源码和固件已打包;

zlib-全部api地址,如果只看本demo的api直接看下面的5.2demo使用api介绍即可。

5.2demo使用api介绍

使用常量

常量 类型 解释
miniz.WRITE_ZLIB_HEADER int 压缩参数,是否写入zlib头部数据,compress函数的默认值
miniz.COMPUTE_ADLER32 int 压缩/解压参数,是否计算/校验adler-32
miniz.GREEDY_PARSING_FLAG int 压缩参数,是否快速greedy处理,默认使用较慢的处理模式
miniz.NONDETERMINISTIC_PARSING_FLAG int 压缩参数,是否快速初始化压缩器
miniz.RLE_MATCHES int 压缩参数,仅扫描RLE
miniz.FILTER_MATCHES int 压缩参数,过滤少于5次的字符
miniz.FORCE_ALL_STATIC_BLOCKS int 压缩参数,是否禁用优化过的Huffman表
miniz.FORCE_ALL_RAW_BLOCKS int 压缩参数,是否只要raw块
miniz.PARSE_ZLIB_HEADER int 解压参数,是否处理zlib头部,uncompress函数的默认值
miniz.HAS_MORE_INPUT int 解压参数,是否还有更多数据,仅流式解压可用,暂不支持
miniz.USING_NON_WRAPPING_OUTPUT_BUF int 解压参数,解压区间是否够全部数据,仅流式解压可用,暂不支持

miniz.compress(data,flags)

作用:快速压缩,需要165KB的系统内存和32KB的LuaVM内存

参数

参数 传入值类型 解释
data string 待压缩的数据,少于400字节的数据不建议压缩,且压缩后的数据不能大于32KB
flags flags 压缩参数,默认是miniz.WRITE_ZLIB_HEADER,即写入zlib头部

返回值

返回值类型 解释
string 若压缩成功,返回数据字符串,否则返回nil

string.fromBase64(str)

作用:将字符串进行base64解码

参数

参数 传入值类型 解释
str string 需要转换的字符串

返回值

返回值类型 解释
string 解码后的字符串,若解码失败则返回空字符串

miniz.uncompress(data,flags)

作用:快速解压,需要32KB的LuaVM内存

参数

参数 传入值类型 解释
data string 待解压的数据,解压后的数据不能大于32KB
flags flags 解压参数,默认是miniz.PARSE_ZLIB_HEADER,即解析zlib头部

返回值

返回值类型 解释
string 若解压成功,返回数据字符串,否则返回nil

6、代码示例介绍

6.1 解压数据

先将压缩过的字符串进行base64解码,然后再解压:

wKgZoWcu6dyAe99AAAWC4eqBAWU518.png

压缩数据然后解压:

wKgZoWcu6emADzYsAAJXFh2Xru8543.png

7、功能验证

成功解压:

wKgaoWcu6gGAIrftAAeUny_taWU494.png

8、总结

本例程介绍了如何压缩和解压数据。

9、常见问题

9.1 解压数据不能超过多少?

解压后的数据不能大于32k。

分享完毕

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3556

    浏览量

    129164
  • 软件
    +关注

    关注

    69

    文章

    4735

    浏览量

    87124
  • 压缩
    +关注

    关注

    2

    文章

    102

    浏览量

    19353
收藏 人收藏

    评论

    相关推荐

    不可错过的Air780E之WebSocket应用示范!小白篇

    咋们今天说的Air780E之WebSocket应用示范针对小白绝对是不可以错过的示例
    的头像 发表于 11-03 20:16 697次阅读
    不可错过的<b class='flag-5'>Air780E</b>之WebSocket应用示范!小白篇

    【合宙Air780E开发板趣味应用】Air780E开发板方言打麻将

    Air780E音频扩展板以及喇叭 ,可轻松实现趣味TTS+AMR+MP3语音播放功能。更更更让开发者心颤的是,合宙还搞了个音频扩展板使用创意视频大赛,想要进一步从开发者脑细胞榨汁:然而这还不够,这真的不够,合宙
    发表于 01-04 13:45

    基于Air780E的远程报警器方案

    恒博A780E-S智能远程报警器方案板,基于合宙低功耗4G Cat.1模组Air780E设计,支持LuatOS二次开发,无需额外添加单片机;可以帮助行业客户快速搭建远程报警产品及其配套系统,并提供客户端软件服务。
    发表于 03-01 11:51 1842次阅读

    Air780E硬件设计手册

    电子发烧友网站提供《Air780E硬件设计手册.pdf》资料免费下载
    发表于 04-14 09:57 20次下载

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙Air780E
    的头像 发表于 07-19 15:37 551次阅读
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析简介本文档适用于合宙Air780E
    的头像 发表于 07-19 16:07 460次阅读
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模块遇到内存死机如何分析

    合宙 Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙Air780E
    的头像 发表于 08-01 17:27 680次阅读
    合宙 <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模块遇到死机问题如何分析

    合宙Air780E硬件设计手册02

    合宙低功耗4G模组Air780E硬件设计介绍
    的头像 发表于 09-06 12:02 371次阅读
    合宙<b class='flag-5'>Air780E</b>硬件设计手册02

    如何使用Air780E开发板?看这篇就够了!

    Air780E 模块进行性能评估,功能调试,软件开发等用途 二、开发板配置 IO 口默认电平 3.3V (1.8V 可调) 支持 USB 5V 直接供电 自弹式 Micro SIM 卡座 一代 IPEX 天线
    的头像 发表于 10-23 17:07 261次阅读
    如何使用<b class='flag-5'>Air780E</b>开发板?看这篇就够了!

    从箱子里找出来的示例Air780E软件指南之TCP应用

    今天翻箱倒柜,把尘封已久的关于Air780E软件指南之TCP应用教程翻出来给大家展示展示:让我从概述、环境准备、问题等方面来给大家说清楚。
    的头像 发表于 11-02 11:58 326次阅读
    从箱子里找出来的<b class='flag-5'>示例</b>:<b class='flag-5'>Air780E</b><b class='flag-5'>软件</b>指南之TCP应用

    奇妙的Air780E之UDP应用示例大赏!

    关于UDP是一种无连接的、不可靠的传输层协议,主要用于实现网络的快速通讯,我们今天将把Air780E的UDP应用分析透彻。
    的头像 发表于 11-04 09:25 192次阅读
    奇妙的<b class='flag-5'>Air780E</b>之UDP应用<b class='flag-5'>示例</b>大赏!

    UDP应用详解:Air780E软件的全面手册

    了解Air780E软件UDP应用全面手册,永享编程幸福人生。
    的头像 发表于 11-05 12:31 108次阅读
    UDP应用详解:<b class='flag-5'>Air780E</b><b class='flag-5'>软件</b>的全面手册

    Air780E模组AT指令下的MQTT应用:技术指南

    今天我要讲的是Air780E模组AT指令下的MQTT应用,希望对大家有所帮助。
    的头像 发表于 11-07 14:02 174次阅读
    <b class='flag-5'>Air780E</b>模组AT指令下的MQTT应用:技术指南

    解读版|Air780E软件C语言内存数组的神秘面纱!

    今天我们来揭开Air780E 软件 C 语言内存数组的神秘面纱,希望有所收获。
    的头像 发表于 11-17 10:00 43次阅读
    解读版|<b class='flag-5'>Air780E</b><b class='flag-5'>软件</b><b class='flag-5'>中</b>C语言内存数组的神秘面纱!

    Air780E模组的ADC之旅 LuatOS开发实例

    今天学习一个新的示例,关于Air780E模组LuatOS开发的ADC应用实例,希望大家有所收获。
    的头像 发表于 11-11 09:33 98次阅读
    <b class='flag-5'>Air780E</b>模组的ADC之旅  LuatOS开发实例