演示視頻
本文檔適合大彩物聯(lián)型所有帶WIFI的串口屏產(chǎn)品。
1.VisualTFT軟件版本:V3.0.0.1176及以上的版本。
版本查看:
a) 打開VisualTFT軟件啟動頁面如圖21軟件版本,右上角會顯示的軟件版本號;
圖2-1軟件版本
b) 打開VisualTFT,在軟件右下角可以查看軟件版本圖22軟件版本,
最新版本可登錄http://gc086.com/進行下載。
圖2-2軟件版本
2. 串口屏硬件版本:V3.0.911.0 及以上的版本。
版本查看:
a) 查看屏幕背面版本號貼紙;
b) VisualTFT與屏幕聯(lián)機成功后,右下角顯示的版本號。
我司物聯(lián)型串口屏引入了物聯(lián)網(wǎng)的概念,可以通過WIFI 遠程更新串口屏工程和固件,本文主要介紹帶WIFI功能的物聯(lián)型串口屏用于HTTP協(xié)議遠程升級工程、固件的教程。
物聯(lián)型串口屏WIFI模塊使用的是臺灣瑞昱Realtek RTL8188EUS芯片,該芯片的特點:
1. 超低功耗,高線性輸出功率,150M USB 接口無線網(wǎng)卡模塊;
2. 符合IEEE802.11n標(biāo)準(zhǔn),兼容IEEE802.11g、IEEE802.11b標(biāo)準(zhǔn),提供USB2.0接口;
3. 支持最新的64/128位WEP數(shù)據(jù)加密;支持WPA-PSK/WPA2-PSK,WPA/WPA2 安全機制;
WIFI模塊與服務(wù)器之間通訊采用TCP/IP協(xié)議,物聯(lián)型串口屏還支持使用基于TCP/IP通信協(xié)議傳遞數(shù)據(jù)的FTP協(xié)議、HTTP協(xié)議。
使用HTTP 遠程升級需要注意以下5點:
1. 固件版本需要是3.0.911.0以上(包括3.0.911.0版本);
2. 工程屬性配置時,必須給C區(qū)分配空間,而且需要比升級文件大,比如升級文件7M,C區(qū)分配空間至少8M以上,如圖3-1所示;
3. HTTP 下載路徑必須是"C:/DCIOT.PKG",否則下載成功后無法升級工程;
4. 升級文件必須小于35M否則下載的時候會導(dǎo)致屏幕重啟;
5. 遠程升級畫面盡量簡潔,不可以播放視頻,音頻等占內(nèi)存的應(yīng)用。
圖3-1 分配空間
本章節(jié)主要講述通過LUA實現(xiàn)HTTP遠程升級串口屏的工程或者固件。本文將分為以下是4個階段講述教程DEMO是如何實現(xiàn)的:
1. 工程準(zhǔn)備;
2. 工程配置與功能;
3. LUA編寫及調(diào)試;
在實現(xiàn)教程DEMO前需要作以下三個準(zhǔn)備:
1. 硬件平臺;
2. UI素材;
3. LUA編輯器。
4.1.1 硬件平臺
該例程使用大彩物聯(lián)型7寸DC80480W070為驗證開發(fā)平臺。如圖4-1所示。
圖4-1 物聯(lián)型7寸
4.1.2 素材準(zhǔn)備
準(zhǔn)備好相應(yīng)的美工UI。如圖4-2所示。
圖4-2 素材準(zhǔn)備
4.1.3 LUA編輯器
上位機VisualTFT內(nèi)部已集成了LUA開發(fā)編譯環(huán)境,點擊菜單欄工具,選擇LUA編輯器,如圖4-3所示。
圖4-3 打開LUA編輯器
LUA編輯器的開發(fā)環(huán)境,如圖4-4所示。
圖4-4 LUA編輯器界面
大彩科技針對LUA腳本提供了豐富的API接口函數(shù),具體函數(shù)可以查閱文檔《LUA腳本API V1.5》,如圖4-5所示。
圖4-5 API函數(shù)文檔
本教程文檔中所涉及到的部分的相關(guān)接口函數(shù)
1. 函數(shù)on_control_notify(screen,control,value)
注釋:此函數(shù)可以在用戶觸摸修改控件后被回調(diào)。函數(shù)有三個參數(shù):
注釋:此函數(shù)可以在定時器超時后被回調(diào)。函數(shù)有一個參數(shù):
3. 函數(shù)start_timer(timer_id, timeout, countdown, repeat)
注釋:此函數(shù)可以啟動定時器。函數(shù)有四個參數(shù):
4. 函數(shù)stop_timer(timer_id),timer_id表示定時器ID。
5. 函數(shù)set_value(screen,control,value)
注釋:此函數(shù)可以設(shè)置控件數(shù)值。函數(shù)有三個參數(shù):
6. 函數(shù)scan_ap()
注釋:掃描無線熱點,返回?zé)狳c數(shù)目ap_count = scan_ap()
7. 函數(shù)http_download (taskid,uri,savepath)
注釋:下載文件
8. 函數(shù)on_http_download (taskid, status)
注釋:下載響應(yīng)
注:更多API函數(shù)請參考文檔《物聯(lián)型LUA腳本API_V1.0》和網(wǎng)站:www.runoob.com/lua
在我司提供參考資料中有關(guān)于串口屏HTTP協(xié)議遠程升級工程的示例工程,為了方便理解文檔所提到的參數(shù)設(shè)置,在閱讀文檔的同時可以查看工程配置協(xié)助理解文檔內(nèi)容。實現(xiàn)WIFI遠程升級串口屏需要完成以下四個步驟:
1. 搭建云端服務(wù)器;(如果已有云端服務(wù)器可以跳過該步驟)
2. 配置串口屏網(wǎng)絡(luò)參數(shù);
3. HTTP下載文件到C盤;
4. 控制屏幕復(fù)位,解壓升級文件。
4.3.1 搭建云端服務(wù)器
服務(wù)器,也稱伺服器,是提供計算服務(wù)的設(shè)備。服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
搭建服務(wù)器這一步比較復(fù)雜,如果沒有服務(wù)器建議尋找專業(yè)的開發(fā)服務(wù)器團隊進行開發(fā),以節(jié)省開發(fā)項目的時間。另外,一般網(wǎng)頁上的網(wǎng)站也支持HTTP協(xié)議,開發(fā)者可以考慮將升級文件上傳到自己公司官網(wǎng)上,生成HTTP下載鏈接。
4.3.2 配置串口屏網(wǎng)絡(luò)參數(shù)
此步驟為配置串口屏默認(rèn)的網(wǎng)絡(luò)參數(shù),工程中配置串口屏網(wǎng)絡(luò)參數(shù);
1. 雙擊圖4-6中【工程窗口】中的工程名字,右邊的【屬性窗口】會顯示該工程的屬性;
圖4-6 工程屬性
2. 找到屬性窗口中的【網(wǎng)絡(luò)設(shè)置】和【高級設(shè)置】,如圖4-7和圖4-8所示;
注:此步驟請參考《大彩串口屏WIFI使用教程_V1.1》,本文不再重復(fù)介紹。
圖4-7 工程屬性
圖4-8 高級設(shè)置
4.3.3 掃描/選取WIFI
建議將我司的示例工程的中WIFI設(shè)置、掃描WIFI和網(wǎng)絡(luò)配置這三個畫面直接移植作為固定模板使用,只修改圖片風(fēng)格不改變控件編號順序,如果畫面ID改變,需要將LUA腳本對應(yīng)的畫面ID更改。示例工程WIFI設(shè)置畫面如圖4-9所示;
圖4-9 WIFI設(shè)置畫面
控件編號4,5設(shè)置為彈出鍵盤輸入的文本框控件,可以手動輸入WIFI的賬號密碼,點擊“連接設(shè)備”后調(diào)用LUA的API函數(shù)get_text()獲取WIFI名稱和WIFI密碼對應(yīng)的文本框中內(nèi)容再調(diào)用LUA腳本中的set_wifi_cfg()函數(shù)修改默認(rèn)連接的WIFI設(shè)備,工程中LUA腳本程序:
程序清單 1
--按下按鈕會調(diào)用該函數(shù),并把畫面ID和控件ID,以及控件值傳參進該函數(shù) function on_control_notify(screen,control,value) …… if screen==1 and control==8 and value == 1 --按鈕連接設(shè)備按下 then ssid = get_text(1,4) --獲取文本框內(nèi)容 psw = get_text(1,5) set_wifi_cfg(1,0,ssid,psw) --連接WIFI,1網(wǎng)卡模式,0自動識別加密 save_network_cfg(); --保存設(shè)置 set_text(1,1,'連接中...') end …… end
點擊“選取網(wǎng)絡(luò)”,切換到掃描WIFI的畫面中,如圖4-10所示;點擊“掃描WIFI”后調(diào)用LUA腳本的API函數(shù)scan_ap()和get_ap_info()掃描可用的WIFI設(shè)備,并將掃描出來的WIFI名稱顯示在列表中,腳本程序如下:
圖4-10 掃描WIFI
程序清單 2
--掃描wifi與顯示 function scan_ap_fill_list( ) ap_cnt = scan_ap() --掃描可用熱點 for i=1,ap_cnt do ssid,security,quality = get_ap_info(i-1) --獲取信息 set_text(2,i,ssid) --在列表中顯示id end for i=ap_cnt,10 do set_text(2,i,"") --清空后面的 end end --控制控件 function on_control_notify(screen,control,value) --點擊掃描熱點 if screen==1 and control==7 or screen==2 and control==21 then scan_ap_fill_list() end …… end
掃描出所有的WIFI設(shè)備名稱后,選中其中一個設(shè)備名字后,返回到WIFI配置畫面中時,會自動填寫選中的WIFI設(shè)備的名稱,輸入WIFI密碼后點擊 “連接設(shè)備”接入該WIFI設(shè)備中。LUA程序如下:
程序清單 3
--選取熱點 function on_control_notify(screen,control,value) …… if screen==2 and control>=11 and control<=20 and value == 1 then ssid = get_text(2,(control-10)) --文本控件從1~10 set_text(1,4,ssid) --顯示選中的SSID名稱 end …… end
4.3.4 遠程更新
調(diào)用LUA 腳本下載PKG包,API函數(shù)參考上文4.2說明,工程畫面配置如所示;
圖4-11 畫面配置
程序邏輯:點擊遠程更新按鈕,調(diào)用http_download()函數(shù)將文件下載到c區(qū),下載完成后觸發(fā)回調(diào)函數(shù)on_http_download(),在回調(diào)函數(shù)中判斷文件下載是否成功,成功后調(diào)用os.exit()復(fù)位串口屏
程序清單 4
function on_control_notify(screen,control,value) …… if screen==4 and control==1 --遠程升級 then http_download(1,'http://video.gz-dc.com/DCIOT.PKG',c_dir) end ……. end function on_http_download (taskid, status) if taskid == 1 then if status == 0 then --下載失敗 set_value(4,3,2) elseif status == 1 then --下載成功,存儲失敗 set_value(4,3,3) elseif status == 2 then --下載成功,存儲成功 set_value(4,3,4) os.exit() --重啟 end end end