串口屏4G应用-HTTP下载文件

这篇教程适用于大彩PM系列串口屏,讲解如何使用4G进行HTTP下载图片、视频和音频。通过VisualTFT软件配置工程,介绍4G模块初始化、HTTP下载过程,包括设置波特率、接收数据回调、HTTP下载回调函数等。下载完成后,利用LUA API进行文件处理,如播放音频和视频。
摘要由CSDN通过智能技术生成

一、适用范围

本文档适合大彩PM系列串口屏产品使用。

二、开发环境版本

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

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

三、概述

本例程中,介绍4G的HTTP下载的应用,通过下载图片、视频、音频说明下载流程。

四、参考资料

1 《LUA 脚本API V1.4》可通过以下链接下载物联型开发包获取:

http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
2 《LUA基础学习》可通过以下链接下载物联型开发包获取:

http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
3 LUA脚本初学者可以通过下面链接进行学习。

http://www.runoob.com/lua/lua-arrays.html
4 AT指令,可以通过下面子连接了解

Uhttp://www.openluat.com/Product/file/asr1802/Luat%204G模块AT命令手册V4.2.8.pdfU
5 Air系列4G模块AT版本HTTP应用说明(若连接失效请在LUAT社区中查找)

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

五、教程实现

本文主要将以下2点进行说明:

  1. 准备工程素材;

  2. 配置串口屏工程;

5.1 准备工程素材
5.1.1 准备工程素材

在实现例程前需要作以下3个准备:

  1. 硬件平台;

  2. 软件平台;

  3. UI素材;

该例程使用大彩M系列7寸串口屏DC80480M070_1111_0T为验证开发平台。如图5-1所示;

串口屏4G应用-HTTP下载文件
图5-1 M系列7寸串口屏

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

5.1.2 软件平台

使用大彩自主研发的上位机软件VisualTFT配置工程,登陆大彩官网下载。如图5-2所示;

5.2 配置串口屏工程
本文主要介绍以下2点:

(1) 画面配置

(2) LUA编辑

5.2.1 画面配置
在画面ID0中,触发下载、下载过程、4G信号值及运营商3部分组成。

触发下载:3个按钮控件,作为触发下载条件。

控件ID1~3依次为图片下载、视频下载以及音频下载。
下载过程:控件ID4~8作为下载过程的体现:

文本控件ID4用于显示下载速度(min/Kb)
文本控件ID5显示下载信息
进度条控件ID6为显示下载进度
文本控件ID7用于显示下载进度百分比
文本控件ID8显示 ‘当前已下载大小/总下载大小’,单位Kb
4G信号和运营商:图标控件控件ID10作为信号显示、文本控件ID11用于显示运营商。画面配置如图5-3所示:

注意:其他非关键控件不在一一介绍,下文不在累述

串口屏4G应用-HTTP下载文件

图5-3 画面配置

5.2.2 LUA编辑
本例程中,屏幕上电执行初始化操作,如加载4G AT 指令的库、初始化4G模块、定时获取运营商和信号值等。

当用户点击图片下载的时,调用air_http_download()开始下载文件。在下载回调函数on_http_download_file_cb()里进行数据存储,显示下载信息等。若该文件单次下载不完,会多次回调on_http_download_file_cb()函数,直至下载完毕,如图5-4所示。

串口屏4G应用-HTTP下载文件

图5-4 下载流程

1 初始化

调用系统函数on_init()执行代码如程序清单 1所示:

程序清单 1 初始化

--[[*******************************************************************
** Function name:  on_init
** Descriptions :  系统初始化时,执行此回调函数。
*******************************************************************--]]
function on_init()

    dofile('Air724at.lua') --加载 http.lua 文件
    uart_set_baudrate3(115200) --设置与4G模块通讯的串口3的波特率为115200

    --设置4G库函数的命令发送函数,命令回调函数、调试信息打印函数
    air_set_callback(on_air_send_cb,on_air_resp_callback,on_air_log_cb)
    air_hw_int() --4G模块初始化设置
    --开启自动获取型号强度、时间、天气功能
    start_timer(timerId_Sig_Weather, 1000 , 0, 0)
    set_visiable(screen_mmedia_dl,6,0) --设置进度条不可见
    set_visiable(screen_mmedia_dl,7,0) --设置进度文本不可见
end

--[[*******************************************************************
** Function name:  on_timer
** Descriptions :  定时器超时回到调函数。
** @ timer_id    :  定时器ID
*******************************************************************--]]
function on_timer(timer_id)
    on_air_timer(timer_id) --4G库函数的定时处理

    --定时获取信号强度
    if timer_id == timerId_Sig_Weather
    then
        --定时器计数,timer0_notify_cnt 每秒+1。
        timer0_notify_cnt = timer0_notify_cnt + 1 
        if timer0_notify_cnt%15 == 0
        then
            --每15s调用一次,更新信号值
            at_cops_csq()
            timer0_notify_cnt = 0 --标志位清空
        end
    end
end

--[[*******************************************************************
** Function name : at_cops_csq
** Descriptions  : 获取运营商信息、信号强度
** @return       : nil,无返回值
*******************************************************************--]]
function at_cops_csq()
    air_cmd_add('AT+COPS?','OK',1000) –获取运营商
    air_cmd_add('AT+CSQ'  ,'OK',1000) –获取信号
end

--[[*******************************************************************
** Function name:  on_air_resp_callback
** Descriptions :  4G模块-数据回调接口
** @key           :  屏幕向4G模块的发送请求
** @value        :  4G模块返回的数据
*******************************************************************--]]
function on_air_resp_callback(key, value)

    if value == nil
    then 
        return              --value为空时退出
    end

--**********************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值