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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大彩串口屏4G應(yīng)用-HTTP下載文件

廣州大彩串口屏 ? 2021-07-26 14:56 ? 次閱讀

一、適用范圍

本文檔適合大彩PM系列串口屏產(chǎn)品使用。

二、開發(fā)環(huán)境版本

1VisualTFT軟件版本:V3.0.1.1112及以上的版本。

2串口屏硬件版本:M系列固件 >= V6.3.257.00。

三、概述

本例程中,介紹4G的HTTP下載的應(yīng)用,通過下載圖片、視頻、音頻說明下載流程。

四、參考資料

1《LUA 腳本API V1.4》可通過以下鏈接下載物聯(lián)型開發(fā)包獲取:

http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html

2《LUA基礎(chǔ)學(xué)習(xí)》可通過以下鏈接下載物聯(lián)型開發(fā)包獲取:

http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html

3LUA腳本初學(xué)者可以通過下面鏈接進(jìn)行學(xué)習(xí)。

http://www.runoob.com/lua/lua-arrays.html

4AT指令,可以通過下面子連接了解

Uhttp://www.openluat.com/Product/file/asr1802/Luat%204G模塊AT命令手冊V4.2.8.pdfU

5Air系列4G模塊AT版本HTTP應(yīng)用說明(若連接失效請?jiān)贚UAT社區(qū)中查找)

https://ask.openluat.com/article/626/0

五、教程實(shí)現(xiàn)

本文主要將以下2點(diǎn)進(jìn)行說明:

1. 準(zhǔn)備工程素材;

2. 配置串口屏工程;

5.1準(zhǔn)備工程素材

5.1.1 準(zhǔn)備工程素材

在實(shí)現(xiàn)例程前需要作以下3個(gè)準(zhǔn)備:

1. 硬件平臺(tái);

2. 軟件平臺(tái);

3. UI素材;

該例程使用大彩M系列7寸串口屏DC80480M070_1111_0T為驗(yàn)證開發(fā)平臺(tái)。如圖5-1所示;

5-1M系列7寸串口屏

其他尺寸的串口屏均可借鑒此教程。


5.1.2 軟件平臺(tái)

使用大彩自主研發(fā)的上位機(jī)軟件VisualTFT配置工程,登錄大彩官網(wǎng)下載。如圖5-2所示;

圖5-2下載軟件

5.2 配置串口屏工程

本文主要介紹以下2點(diǎn):

(1)畫面配置

(2)LUA編輯

5.2.1畫面配置

在畫面ID0中,觸發(fā)下載、下載過程、4G信號(hào)值及運(yùn)營商3部分組成。

觸發(fā)下載:3個(gè)按鈕控件,作為觸發(fā)下載條件。

  • 控件ID1~3依次為圖片下載、視頻下載以及音頻下載。

下載過程:控件ID4~8作為下載過程的體現(xiàn):

  • 文本控件ID4用于顯示下載速度(min/Kb)
  • 文本控件ID5顯示下載信息
  • 進(jìn)度條控件ID6為顯示下載進(jìn)度
  • 文本控件ID7用于顯示下載進(jìn)度百分比
  • 文本控件ID8顯示 ‘當(dāng)前已下載大小/總下載大小’,單位Kb

4G信號(hào)和運(yùn)營商:圖標(biāo)控件控件ID10作為信號(hào)顯示、文本控件ID11用于顯示運(yùn)營商。畫面配置如圖5-3所示:

注意:其他非關(guān)鍵控件不在一一介紹,下文不在累述

圖5-3畫面配置

5.2.2LUA編輯

本例程中,屏幕上電執(zhí)行初始化操作,如加載4G AT 指令的庫、初始化4G模塊、定時(shí)獲取運(yùn)營商和信號(hào)值等。

當(dāng)用戶點(diǎn)擊圖片下載的時(shí),調(diào)用air_http_download()開始下載文件。在下載回調(diào)函數(shù)on_http_download_file_cb()里進(jìn)行數(shù)據(jù)存儲(chǔ),顯示下載信息等。若該文件單次下載不完,會(huì)多次回調(diào)on_http_download_file_cb()函數(shù),直至下載完畢,如圖5-4所示。

圖5-4下載流程

1初始化

調(diào)用系統(tǒng)函數(shù)on_init()執(zhí)行代碼如程序清單 1所示:

因平臺(tái)限制,程序清單 1初始化 詳見http://www.gz-dc.com/article/id/6782.html

核心API函數(shù)

1)dofile (filename)

加載文件:本例程中加載4G AT 指令的庫

  • filename: 文件名

2)uart_set_baudrate3(speed)

設(shè)置串口3的波特率:串口3為屏幕和4G模塊通訊的串口

  • speed: 通訊的波特率

3)on_air_recv_data(packet)

串口接收4G模塊的返回?cái)?shù)據(jù)的回調(diào)。

  • packet: 形參為表,字節(jié)數(shù)據(jù)。

4)air_set_callback (on_air_send_cb,on_air_resp_callback,on_air_log_cb)

設(shè)置4G庫里的回調(diào)函數(shù)。形參類型為函數(shù),參數(shù)依次為命令發(fā)送函數(shù),命令回調(diào)函數(shù)、調(diào)試信息打印函數(shù),可自定義函數(shù)名。

  • on_air_send_cb:屏幕向4G模塊發(fā)送回調(diào)函數(shù)
  • on_air_resp_callback:4G向屏幕返回?cái)?shù)據(jù)回調(diào)函數(shù)
  • on_air_log_cb:用戶調(diào)試信息回調(diào)函數(shù)調(diào)試

5)air_hw_int()

4G AT 指令的庫函數(shù),初始化4G模塊

6)at_cops_csq()

自定義封裝函數(shù),獲取運(yùn)行商和信號(hào)值

7)air_cmd_add(sendstr,ackstr,timeout,retry,callback)

屏幕向4G模塊發(fā)送AT指令

  • sendstr:屏幕向4G模塊發(fā)送AT指令
  • ackstr:4G模塊應(yīng)答屏幕的請求
  • timeou:應(yīng)答超時(shí)
  • retry:超時(shí)重發(fā)次數(shù),可選
  • callback:應(yīng)答回調(diào)函數(shù),可選

注:如果沒有設(shè)置超時(shí)重發(fā)次數(shù),則超時(shí)時(shí)直接發(fā)送隊(duì)列中的下一條指令。

8)on_air_resp_callback(key, value)

4G應(yīng)答屏幕回調(diào)函數(shù):屏幕發(fā)送AT指令,4G應(yīng)答后均會(huì)回調(diào)該函數(shù),初始化設(shè)置:air_set_callback(on_air_send_cb,on_air_resp_callback,on_air_log_cb)。

  • key:屏幕向4G模塊發(fā)送請求的AT指令
  • value:4G模塊返回的數(shù)據(jù)

相關(guān)AT指令:

本例程中,涉及到獲取4G模塊初始化、運(yùn)營商、信號(hào)值等AT交互指令回調(diào)的判斷,在on_air_resp_callback(key, value)回調(diào)函數(shù)中,判斷4G收發(fā)的相關(guān)AT指令,如下所示:

1)網(wǎng)絡(luò)數(shù)據(jù)是否激活:

屏幕發(fā)送:AT+SAPBR=1,1。在air_hw_int()函數(shù)里發(fā)送。

屏幕接收:OK。on_air_resp_callback(key, value)函數(shù)里執(zhí)行4G返回?cái)?shù)據(jù)的判斷

2) 獲取運(yùn)營商:

屏幕發(fā)送:AT+COPS?。在at_cops_csq()函數(shù)了發(fā)送。

屏幕接收:OK。on_air_resp_callback(key, value)函數(shù)里執(zhí)行4G返回?cái)?shù)據(jù)的判斷

3) 獲取信號(hào)值:

屏幕發(fā)送:AT+CSQ。在at_cops_csq()函數(shù)了發(fā)送。

屏幕接收:OK。on_air_resp_callback(key, value)函數(shù)里執(zhí)行4G返回?cái)?shù)據(jù)的判斷

2HTTP下載

用戶點(diǎn)擊按鈕控件ID1~3,HTTP協(xié)議下載對應(yīng)的圖片、視頻、音頻文件。文件,每次向服務(wù)器讀取7K大小文件,然后在下載回調(diào)函里,每次以2K字節(jié)的數(shù)據(jù)寫入文件,代碼如程序清單2所示:

因平臺(tái)限制,程序清單 2HTTP下載 詳見http://www.gz-dc.com/article/id/6782.html

核心API函數(shù)

1)air_http_download(url,break_size,user_callback)

4G庫函數(shù),HTTP下載文件。

  • url:HTTP下載資源連接,本例程中,將圖片、視頻以及音頻的資源路徑放在數(shù)組緩沖區(qū)中,如下所示:

local HttpDownFile_URITb = {'http://video.gz-dc.com/logo_480320_165kV2.jpg', 'http://video.gz-dc.com/video2_62M9s.mp4', 'http://video.gz-dc.com/music503k32s.mp3'}

  • break_size:單次網(wǎng)絡(luò)下載的包大小,單位字節(jié)(BYTE),本例程中為7K
  • user_callback:改形參是一個(gè)函數(shù)變量,HTTP下載應(yīng)答屏幕的回調(diào)函數(shù)。名稱可自定義命名,如本例程為on_http_download_file_cb。

2)on_http_download_file_cb(key, value)

用戶自定義函數(shù),HTTP下載回調(diào)函數(shù)。

  • key:HTTP響應(yīng)數(shù)據(jù)類型
  • value:HTTP響應(yīng)的內(nèi)容

若key = ‘data_len’,表示HTTP下載的文件大??;value 表示為文件大小,單位byte。

若key = ‘data’,表示HTTP響應(yīng)數(shù)據(jù)內(nèi)容;value為數(shù)據(jù)內(nèi)容,類型為字節(jié)數(shù)組,大小為air_http_download(url,break_size,user_callback)設(shè)置的break_size。

若key = ‘finish’,表示HTTP下載完成;value為文件總大小,單位byte

若key = ‘timeout’,表示HTTP下載超時(shí)。

若key = ‘dl_file_head_retry’,表示 HTTPACTION 查詢頭信息超時(shí)。若超時(shí),內(nèi)部已經(jīng)處理了3次重發(fā)數(shù)據(jù)請求。

若key = ‘dl_file_read_retry’,表示 HTTPACTION 查詢讀取數(shù)據(jù)超時(shí)。若超時(shí),內(nèi)部已經(jīng)處理了3次重發(fā)數(shù)據(jù)請求。

3)my_write_filedata(file, data, open_mode)

用戶自定義函數(shù),寫文件。本例程,將4G HTTP下載返回的數(shù)據(jù)寫在文件中。

  • file:存儲(chǔ)路徑,本例程中,將圖片、視頻以及音頻下載后的文件指定存儲(chǔ)在屏內(nèi)(3為屏內(nèi)盤符),路徑定義如下所示:

local HttpDownSave_FileTb = {'3:/image.jpg','3:/bench.mp4', '3:/my dream.mp 3'}

  • data:存儲(chǔ)的數(shù)據(jù),類型可以是‘?dāng)?shù)組’或‘字符串’,本例程中,4G HTTP下載返回的數(shù)據(jù)類型是數(shù)組
  • open_mode:文件打開模式:本例程中,每次寫文件,將數(shù)據(jù)寫在文件尾。

注意:本文不再闡述文件讀寫的詳細(xì)說明,可參考相應(yīng)的資料,如《Lua應(yīng)用-文件讀寫V1.0.pdf》

4)load_surface(filename)

加載圖片到圖層。

  • filename圖片文件路徑,支持JPEG/PNG

本例程中,當(dāng)下載完成key=‘finish’時(shí),且當(dāng)前下載的是圖片文件(down_mode = 1),調(diào)用此API申請圖層繪圖,并調(diào)用redraw()刷新觸發(fā)on_draw()顯示。

注意:本文不再闡述繪圖的詳細(xì)說明,可參考相應(yīng)的資料,如《LUA教程7-繪圖API使用說明.pdf》

5)destroy_surface(surface)

銷毀圖層,W系列支持、M系列 >= V6.1.241.00、F系列不支持

  • surface圖層資源指針

6)play_sound(filename)

播放指定的聲音文件

  • filenam:音頻文件路徑,支持MP3/WAV

本例程中,當(dāng)下載完成key=‘finish’時(shí),且當(dāng)前下載的是音頻文件(down_mode = 3),調(diào)用此API播放音頻。若播放完畢,觸發(fā)音頻播放結(jié)束通知on_audio_callback(),在重復(fù)播放該音頻文件。

注意:本文不再闡述音頻的詳細(xì)說明,,可參考相應(yīng)的資料,如 《M系列-播放SD卡里視頻、音頻文件 V1.0.pdf》

7)play_video(file,left,top,width,height)

播放指定的視頻文件

  • file:文件路徑,支持MP4
  • left:起始坐標(biāo)x
  • top:起始坐標(biāo)y
  • width:視頻顯示的寬度
  • height:視頻顯示的高度

本例程中,當(dāng)下載完成key=‘finish’時(shí),且當(dāng)前下載的是視頻文件(down_mode = 2),調(diào)用此API播放視頻,播放過程觸發(fā)on_video_notify(msg,v1, v2)。若msg=0,表示播放完畢,在重復(fù)播放該視頻文件。

注意:本文不再闡述視頻的詳細(xì)說明,,可參考相應(yīng)的資料,如 《M系列-播放SD卡里視頻、音頻文件 V1.0.pdf》


8)on_video_notify(msg,v1, v2)

視頻播放回調(diào)函數(shù)

  • msg:1-播放中,0-播放完畢
  • v1:當(dāng)前播放進(jìn)度,當(dāng)前已播時(shí)長,單位s
  • v2:播放總進(jìn)度, 當(dāng)前視頻總時(shí)長,單位s

9)on_audio_callback(state)

聲音播放結(jié)束回調(diào)通知,state保留未使用。

10)on_draw(screen)

當(dāng)界面的顯示內(nèi)容需要更新時(shí),系統(tǒng)自動(dòng)調(diào)用此函數(shù),用戶在此函數(shù)中添加自定義的繪圖操作。用戶繪制的內(nèi)容疊加在畫面內(nèi)容之上。此函數(shù)為系統(tǒng)回調(diào)函數(shù),用戶不要直接調(diào)用。下面幾種情況會(huì)觸發(fā)此函數(shù):

  • 界面有動(dòng)畫播放、視頻播放、RTC時(shí)間顯示的動(dòng)態(tài)刷新;
  • 用戶操作屏幕控件控件;
  • 通過LUA腳本或串口指令更新控件;
  • 通過執(zhí)行redraw;

界面上有任何變化,都會(huì)觸發(fā)此函數(shù)

11)draw_surface(surface,dstx,dsty,width,height,srcx,srcy)

繪制圖層,相比于draw_image_file,此方法效率較高,W系列支持、M系列 >= V6.1.241.00支持(裁剪顯示)、F系列不支持

  • surface圖層資源指針
  • dstx圖片顯示X坐標(biāo)
  • dsty圖片顯示Y坐標(biāo)
  • width圖片顯示寬度[可選]
  • height圖片顯示高度[可選]
  • srcx圖片裁剪X坐標(biāo)[可選]
  • srcy圖片裁剪Y坐標(biāo)[可選]

例如:

平鋪顯示:draw_surface(surface, dstx, dsty)

縮放顯示:draw_surface(surface, dstx, dsty, width, height),此方法M型不支持

裁剪顯示:draw_surface(surface, dstx, dsty, width, height ,srcx, srcy)

5.3下載工程

工程編譯成功后在輸出窗口會(huì)提示編譯成功,如圖5-5所示;

圖5-5編譯成功


在菜單欄中,文件→打開工程目錄,在‘dciot_build’目錄的‘private’拷貝到SD卡中,如圖5-6和圖5-7所示;把SD卡接上串口屏后重新上電,等到提示燒錄工程成功后,拔掉SD卡重新上電即可。

圖5-6量產(chǎn)向?qū)?/span>


圖5-7拷貝到SD卡

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 4G
    4G
    +關(guān)注

    關(guān)注

    15

    文章

    5495

    瀏覽量

    118718
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    499

    瀏覽量

    30980
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1607

    瀏覽量

    55381
收藏 人收藏

    評論

    相關(guān)推薦

    低功耗4G模組HTTP網(wǎng)絡(luò)協(xié)議應(yīng)用

    ?大家好,今天我們來學(xué)習(xí)合宙Air780E模組LuatOS開發(fā)4G通信中HTTP網(wǎng)絡(luò)協(xié)議的應(yīng)用,實(shí)現(xiàn)模組和服務(wù)器之間數(shù)據(jù)的傳輸。 一、HTTP概述 1.1 簡介 HTTP
    的頭像 發(fā)表于 11-01 07:23 ?86次閱讀
    低功耗<b class='flag-5'>4G</b>模組<b class='flag-5'>HTTP</b>網(wǎng)絡(luò)協(xié)議應(yīng)用

    4G 模組 HTTP 網(wǎng)絡(luò)協(xié)議應(yīng)用 白嫖版!

    今天我們來白嫖的是Air780E模組LuatOS開發(fā)4G通信中HTTP網(wǎng)絡(luò)協(xié)議的應(yīng)用,實(shí)現(xiàn)模組和服務(wù)器之間數(shù)據(jù)的傳輸,詳細(xì)介紹硬件環(huán)境、軟件環(huán)境、功能驗(yàn)證等…
    的頭像 發(fā)表于 10-30 14:22 ?605次閱讀
    <b class='flag-5'>4G</b> 模組 <b class='flag-5'>HTTP</b> 網(wǎng)絡(luò)協(xié)議應(yīng)用 白嫖版!

    干貨篇:低功耗4G模組Air780E的串口通信

    ? 今天我們來講解低功耗4G模組Air780E的串口通信的基本用法,小伙伴們,學(xué)起來吧!
    的頭像 發(fā)表于 10-05 14:38 ?399次閱讀
    干貨篇:低功耗<b class='flag-5'>4G</b>模組Air780E的<b class='flag-5'>串口</b>通信

    4G模塊聯(lián)網(wǎng)問題

    最近在調(diào)試4G模塊,4G模塊驅(qū)動(dòng)調(diào)試成功,也可以ping通外網(wǎng)(比如www.baidu.com)。我的電腦連接路由器,也可以上網(wǎng),但是用4G模塊ping不通電腦,不知道該問題出在哪里,該怎么解決
    發(fā)表于 08-01 19:01

    帶DTU串口透傳功能的工業(yè)4G路由器:4G DTU模塊路由器串口RS232/485轉(zhuǎn)4G網(wǎng)絡(luò)數(shù)據(jù)雙向透傳

    4G網(wǎng)絡(luò)數(shù)據(jù)
    深圳市博晶網(wǎng)絡(luò)科技有限公司
    發(fā)布于 :2024年07月31日 17:10:51

    嵌入式設(shè)備中的4G/5G模塊管理

    數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和可靠性。 4G/5G網(wǎng)卡自管理工具可以將獲取的模塊固有信息和SIM卡信息、注網(wǎng)、附著、撥號(hào)等狀態(tài)信息輸出到文件,便于客戶直觀查看。當(dāng)4G/5
    發(fā)表于 07-13 16:45

    思必馳推出辦公學(xué)習(xí)新工具4GAI辦公本

    ? 6月3日,思必馳4GAI辦公本正式發(fā)售。 這是思必馳繼智慧辦公產(chǎn)品麥克風(fēng)音箱M4/M6/M12系列之后,再次推出辦公學(xué)習(xí)新工具。該款4G
    的頭像 發(fā)表于 06-03 17:35 ?1090次閱讀

    遠(yuǎn)程下載是什么意思?怎么實(shí)現(xiàn)遠(yuǎn)程下載文件

    附屬存儲(chǔ))、電腦或其他支持遠(yuǎn)程下載的設(shè)備來下載文件。這樣,用戶不必親自在存儲(chǔ)設(shè)備旁等待文件下載完成,提高了靈活性和便利性。
    的頭像 發(fā)表于 05-15 11:39 ?731次閱讀

    科技COF系列2.4寸串口發(fā)布!

    廣州大科技新品發(fā)布:大科技COF系列2.4寸串口發(fā)布!此次發(fā)布的是S系列平臺(tái)2.4寸COF超薄結(jié)構(gòu)串口
    的頭像 發(fā)表于 03-18 14:36 ?749次閱讀
    大<b class='flag-5'>彩</b>科技COF系列2.4寸<b class='flag-5'>串口</b><b class='flag-5'>屏</b>發(fā)布!

    什么是4G Cat.1?4G Cat.1與4G有什么區(qū)別?

    4G的區(qū)別和具體特點(diǎn)。 首先,4G是一種第四代移動(dòng)通信技術(shù),也稱為LTE網(wǎng)絡(luò)。它能夠提供高速數(shù)據(jù)傳輸,讓用戶能夠更快地瀏覽互聯(lián)網(wǎng),下載和上傳大文件。而
    的頭像 發(fā)表于 02-03 11:38 ?3676次閱讀

    【飛騰派4G版免費(fèi)試用】飛騰派4G版開發(fā)板套裝測試及環(huán)境搭建

    時(shí),調(diào)試串口位置為 J2,串口終端程序必須設(shè)置為:波特率:115200;數(shù)據(jù)位:8;奇偶校驗(yàn):無;停止位:1 8TX10RX12地 飛騰派4G版開發(fā)板套裝文件
    發(fā)表于 01-22 00:47

    飛騰派4g試用

    4G飛騰派
    夢の旅驛站
    發(fā)布于 :2024年01月07日 14:13:20

    TFTP服務(wù)器是什么如何下載文件

    TFTP服務(wù)器是什么如何下載文件 想必許多人知道FTP是什么,但他們?nèi)辈⒉皇煜FTP。TFTP是TCP/IP協(xié)議族中的一種協(xié)議,用于客戶端和服務(wù)器之間進(jìn)行簡單的文件傳輸。它提供了一個(gè)簡單的文件
    發(fā)表于 12-12 16:06

    【飛騰派4G版免費(fèi)試用】開箱測評

    加速卡與4G、5G 通信等多種功能模塊的擴(kuò)展。 2.硬件連接 根據(jù)用戶手冊先把風(fēng)扇連接好,注意出風(fēng)方向和電源極性。鼠標(biāo)和鍵盤接在USB接口,從后背板接入調(diào)試串口,HDMI 接入顯示器。把燒錄好鏡像
    發(fā)表于 12-10 21:27