RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Air780E軟件中zlib解壓示例的詳細展示!

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-11-17 10:01 ? 次閱讀

今天我?guī)氲氖?a href="http://hljzzgx.com/tags/ai/" target="_blank">Air780E 軟件中 zlib 解壓示例,希望大家有所收獲。

1、ZLIB解壓工具簡介

Zlib解壓工具是一個廣泛使用的壓縮和解壓縮庫,主要用于處理數據的壓縮和解壓縮任務。Zlib使用的是DEFLATE算法,這是一種通用的壓縮算法。它被應用在很多場景中,比如壓縮文件、網絡傳輸中的數據壓縮、以及各種應用程序中的數據存儲和讀取。

Zlib的代碼庫相對小巧,因此在嵌入式系統(tǒng)和資源受限的環(huán)境中也能很好地使用。

詳細細節(jié)可以參考:https://www.cnblogs.com/LyShark/p/17861293.html

2、演示功能概述

本文主要演示如何對數據壓縮解壓。

3、準備硬件環(huán)境

此核心板的詳細使用說明參考:
https://docs.openluat.com/air780e/product/

Air780E產品手冊中的<<開發(fā)板Core_Air780E使用說明V1.0.5.pdf>>;核心板使用過程中遇到任何問題,可以直接參考這份使用說明pdf文檔。

3.1 數據通信

typec接口USB數據線即可。

3.2 PC電腦

WINDOWS系統(tǒng)。

4、準備軟件環(huán)境

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 壓縮參數,是否禁用優(yōu)化過的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 解壓參數,解壓區(qū)間是否夠全部數據,僅流式解壓可用,暫不支持

miniz.compress(data,flags)

作用:快速壓縮,需要165KB的系統(tǒng)內存和32KB的LuaVM內存

參數

參數 傳入值類型 解釋
data string 待壓縮的數據,少于400字節(jié)的數據不建議壓縮,且壓縮后的數據不能大于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。

分享完畢

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3587

    瀏覽量

    129433
  • 軟件
    +關注

    關注

    69

    文章

    4921

    瀏覽量

    87392
  • 壓縮
    +關注

    關注

    2

    文章

    102

    瀏覽量

    19373
收藏 人收藏

    評論

    相關推薦

    不可錯過的Air780E之WebSocket應用示范!小白篇

    咋們今天說的Air780E之WebSocket應用示范針對小白絕對是不可以錯過的示例。
    的頭像 發(fā)表于 11-03 20:16 ?814次閱讀
    不可錯過的<b class='flag-5'>Air780E</b>之WebSocket應用示范!小白篇

    【合宙Air780E開發(fā)板趣味應用】Air780E開發(fā)板方言打麻將

    Air780E音頻擴展板以及喇叭 ,可輕松實現(xiàn)趣味TTS+AMR+MP3語音播放功能。更更更讓開發(fā)者心顫的是,合宙還搞了個音頻擴展板使用創(chuàng)意視頻大賽,想要進一步從開發(fā)者腦細胞榨汁:然而這還不夠,這真的不夠,合宙
    發(fā)表于 01-04 13:45

    Air780E硬件設計手冊

    電子發(fā)燒友網站提供《Air780E硬件設計手冊.pdf》資料免費下載
    發(fā)表于 04-14 09:57 ?20次下載

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于合宙Air780E、
    的頭像 發(fā)表于 07-19 15:37 ?647次閱讀
    <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
    的頭像 發(fā)表于 07-19 16:07 ?519次閱讀
    <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、
    的頭像 發(fā)表于 08-01 17:27 ?772次閱讀
    合宙 <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硬件設計介紹
    的頭像 發(fā)表于 09-06 12:02 ?469次閱讀
    合宙<b class='flag-5'>Air780E</b>硬件設計手冊02

    從箱子里找出來的示例Air780E軟件指南之TCP應用

    今天翻箱倒柜,把塵封已久的關于Air780E軟件指南之TCP應用教程翻出來給大家展示展示:讓我從概述、環(huán)境準備、問題等方面來給大家說清楚。
    的頭像 發(fā)表于 11-02 11:58 ?380次閱讀
    從箱子里找出來的<b class='flag-5'>示例</b>:<b class='flag-5'>Air780E</b><b class='flag-5'>軟件</b>指南之TCP應用

    奇妙的Air780E之UDP應用示例大賞!

    關于UDP是一種無連接的、不可靠的傳輸層協(xié)議,主要用于實現(xiàn)網絡的快速通訊,我們今天將把Air780E的UDP應用分析透徹。
    的頭像 發(fā)表于 11-04 09:25 ?332次閱讀
    奇妙的<b class='flag-5'>Air780E</b>之UDP應用<b class='flag-5'>示例</b>大賞!

    UDP應用詳解:Air780E軟件的全面手冊

    了解Air780E軟件UDP應用全面手冊,永享編程幸福人生。
    的頭像 發(fā)表于 11-05 12:31 ?201次閱讀
    UDP應用詳解:<b class='flag-5'>Air780E</b><b class='flag-5'>軟件</b>的全面手冊

    Air780E模組AT指令下的MQTT應用:技術指南

    今天我要講的是Air780E模組AT指令下的MQTT應用,希望對大家有所幫助。
    的頭像 發(fā)表于 11-07 14:02 ?327次閱讀
    <b class='flag-5'>Air780E</b>模組AT指令下的MQTT應用:技術指南

    解讀版|Air780E軟件C語言內存數組的神秘面紗!

    今天我們來揭開Air780E 軟件 C 語言內存數組的神秘面紗,希望有所收獲。
    的頭像 發(fā)表于 11-17 10:00 ?227次閱讀
    解讀版|<b class='flag-5'>Air780E</b><b class='flag-5'>軟件</b><b class='flag-5'>中</b>C語言內存數組的神秘面紗!

    Air780E模組的ADC之旅 LuatOS開發(fā)實例

    今天學習一個新的示例,關于Air780E模組LuatOS開發(fā)的ADC應用實例,希望大家有所收獲。
    的頭像 發(fā)表于 11-11 09:33 ?193次閱讀
    <b class='flag-5'>Air780E</b>模組的ADC之旅  LuatOS開發(fā)實例

    低功耗模組Air780E的AT指令:FTP示例

    本文說的是關于4G模組AT指令的FTP示例,以Air780E為例,希望大家有所收獲。
    的頭像 發(fā)表于 11-30 09:40 ?179次閱讀
    低功耗模組<b class='flag-5'>Air780E</b>的AT指令:FTP<b class='flag-5'>示例</b>!

    4G模組Air780E的LuatOS開發(fā)之位運算(bit)示例

    本文我要說的是低功耗4G模組Air780E的LuatOS開發(fā),關于位運算(bit)示例,我將詳細解析分享給大家。
    的頭像 發(fā)表于 12-02 14:33 ?158次閱讀
    4G模組<b class='flag-5'>Air780E</b>的LuatOS開發(fā)之位運算(bit)<b class='flag-5'>示例</b>
    RM新时代网站-首页