串口屏運(yùn)行演示視頻
本文檔適合大彩W系列選配帶WIFI或大彩EW系列帶以太網(wǎng)接口的串口屏產(chǎn)品使用。
1. VisualTFT軟件版本:V3.0.1.1136及以上的版本。
版本查看:
1) 打開(kāi)VisualTFT軟件啟動(dòng)頁(yè)面如圖2-1軟件版本,右上角會(huì)顯示的軟件版本號(hào);
圖2-1軟件版本
2) 打開(kāi)VisualTFT,在軟件右下角可以查看軟件版本圖2-2軟件版本,最新版本可登錄http://gc086.com/進(jìn)行下載。
圖2-2軟件版本
2. 串口屏硬件版本:V3.0.598.0 及以上的版本。
版本查看:
1) 查看屏幕背面版本號(hào)貼紙;
2) VisualTFT與屏幕聯(lián)機(jī)成功后,右下角顯示的版本號(hào)。
本例程中,介紹屏幕作為客戶(hù)端,通過(guò)WIFI或者以太網(wǎng)進(jìn)行SCOKET通訊的過(guò)程。本文不在闡述LUA腳本如何連接WIFI,具體可以參考WIFI系列教程,《WIFI應(yīng)用-網(wǎng)絡(luò)配置.pdf》。
1. 《LUA 腳本API V1.4》可通過(guò)以下鏈接下載物聯(lián)型開(kāi)發(fā)包獲取:
http:/gc086.com/index.php?s=/List/index/cid/19.html
2. 《LUA基礎(chǔ)學(xué)習(xí)》可通過(guò)以下鏈接下載物聯(lián)型開(kāi)發(fā)包獲取:
http:/gc086.com/index.php?s=/List/index/cid/19.html
3. LUA腳本初學(xué)者可以通過(guò)下面鏈接進(jìn)行學(xué)習(xí)。
http://www.runoob.com/lua/lua-arrays.html
本文主要介紹屏幕作為客戶(hù)端SCOKET通訊,將分以下2點(diǎn)進(jìn)行說(shuō)明:
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素材;
該例程使用大彩物聯(lián)型7寸串口屏DC80480EW070_1V01_CE4為驗(yàn)證開(kāi)發(fā)平臺(tái)。如圖5-1所示;
圖5-1 EW系列7寸串口屏
其他尺寸W型的串口屏均可借鑒此教程。
5.1.2 軟件及工具
1. VisualTFT 上位機(jī)軟件
使用大彩自主研發(fā)的上位機(jī)軟件VisualTFT配置工程,登錄http://gc086.com/下載。如圖5-2所示;
圖5-2 上位機(jī)軟件
2. NetAssist 網(wǎng)絡(luò)調(diào)試助手
本例程中,使用NetAssist 網(wǎng)絡(luò)調(diào)試助手調(diào)試工具和屏幕通訊。在本例程壓縮包已包含,也可以自行網(wǎng)上下載。如圖5-3所示。
圖5-3 網(wǎng)絡(luò)調(diào)試助手
5.2 配置工程
本章節(jié)主要介紹以下4點(diǎn):
(1) NetAssist配置
(2) 工程配置
(3) SCOKET 屏幕收
(4) SCOKET 屏幕發(fā)
5.2.1 NetAssist配置
本例程中使用NetAssist網(wǎng)絡(luò)調(diào)試助手演示,配置如下:
1) 協(xié)議類(lèi)型:TCP Server
2) 本地IP地址:根據(jù)用戶(hù)網(wǎng)絡(luò)為準(zhǔn)
3) 本地端口號(hào):本例程中默認(rèn)是“8080”
4) 連接對(duì)象:根據(jù)用戶(hù)網(wǎng)絡(luò)為準(zhǔn)
5) 打開(kāi):打開(kāi)連接,如圖5-4所示:
圖5-4 NetAssist 配置
注意:NetAssist網(wǎng)絡(luò)調(diào)試助手詳細(xì)使用教程可在網(wǎng)上查找資料了解
5.2.2 工程配置
在工程屬性中,配置網(wǎng)絡(luò)以下屬性:
1) 網(wǎng)絡(luò):網(wǎng)卡模式
2) SSID名稱(chēng):cp(以太網(wǎng)接口可不填)
3) 連接密碼:12345678(以太網(wǎng)接口可不填)
4) DHCP:?jiǎn)⒂?/span>
5) 網(wǎng)絡(luò)服務(wù):服務(wù)器
6) 服務(wù)端口:8080
屬性配置如圖5-5所示;
圖5-5 WIFI配置
5.2.3 修改服務(wù)器IP、PORT
1. 畫(huà)面配置
在畫(huà)面ID5中,添加兩個(gè)文本控件(控件ID7、控件ID13,可彈出鍵盤(pán)輸入設(shè)置)和一個(gè)按鈕控件(控件ID9),其中控件ID7顯示“服務(wù)器IP”、控件ID13顯示“端口”??丶蘒D9為按鈕按下時(shí)獲取當(dāng)前屏幕配置的“服務(wù)器IP”和“端口”。如圖5-6所示:
圖5-6 畫(huà)面配置
2. LUA腳本編輯
本例程中,獲取和設(shè)置port、Server IP的代碼如程序清單 1所示:
程序清單 1 修改服務(wù)器參數(shù)
--用戶(hù)通過(guò)觸摸修改控件后,執(zhí)行此回調(diào)函數(shù)。 --點(diǎn)擊按鈕控件,修改文本控件、修改滑動(dòng)條都會(huì)觸發(fā)此事件。 function on_control_notify(screen,control,value) if screen == sc_wifiset then ...... elseif screen == sc_tcp then if control == 3 then ...... elseif control == 7 then --獲取鍵盤(pán)輸入的IP server_ip = get_text(sc_tcp, 7) local wificom = 0 local mode = 1 --修改服務(wù)器IP set_network_service_cfg(wificom, mode, server_port, server_ip) --保存配置 save_network_cfg() elseif control == 9 and value == 0 then --獲取服務(wù)器IP、端口 local wificom,mode,port,server_addr=get_network_service_cfg() server_ip = server_addr server_port = port --顯示到相應(yīng)文本 set_text(sc_tcp, 7, server_ip) set_text(sc_tcp, 13, server_port) elseif control == 13 then local wificom = 0 local mode = 1 --獲取鍵盤(pán)輸入的IP server_port = get_text(sc_tcp, 13) --修改服務(wù)器端口號(hào) set_network_service_cfg(wificom, mode, server_port, server_ip) --保存配置 save_network_cfg() end end end
核心API函數(shù)
1) set_network_service_cfg(wificom, mode, port, server_addr)
設(shè)置網(wǎng)絡(luò)服務(wù)參數(shù)
- wificom -默認(rèn)為0,為1時(shí)啟用透?jìng)髂J剑礋o(wú)線(xiàn)串口屏)
- mode -0禁用網(wǎng)絡(luò)服務(wù),1客戶(hù)端模式,2服務(wù)器模式
- port -服務(wù)端口,默認(rèn)5050
- server_addr -服務(wù)器地址,(屏作客戶(hù)端時(shí))
2) get_network_service_cfg()
獲取網(wǎng)絡(luò)服務(wù)參數(shù),返回4個(gè)參數(shù),說(shuō)明同上
wificom, mode, port, server_addr = get_network_service_cfg()
基本思路:當(dāng)按鈕控件ID9按下的時(shí)候,觸發(fā)觸摸控件回調(diào)函數(shù)on_control_notify(),在調(diào)用get_network_service_cfg ()獲取當(dāng)前屏幕的網(wǎng)絡(luò)服務(wù)配置,并顯示在ID7、ID13的文本控件中。當(dāng)對(duì)文本控件ID7、ID13輸入時(shí)候,調(diào)用set_network_service_cfg()修改配置和保存save_network_cfg()即可。
5.2.4 SOCKET 屏幕收
1. 畫(huà)面配置
在畫(huà)面ID5中,添加1個(gè)文本控件(控件ID5),作為顯示接收到的服務(wù)器數(shù)據(jù),配置如圖5-7所示:
圖5-7 畫(huà)面配置
2. LUA腳本編輯
本例程中,當(dāng)屏幕接收到服務(wù)的數(shù)據(jù)以16進(jìn)制的格式顯示出來(lái),代碼如程序清單 2所示。
程序清單 2 SOCKET 屏幕收
--當(dāng)客戶(hù)端SOCKET接收到數(shù)據(jù)時(shí),系統(tǒng)自動(dòng)回調(diào)此函數(shù)。 --接收的字節(jié)數(shù)組packet,下標(biāo)從0開(kāi)始 function on_client_recv_data(packet) --用于顯示接收服務(wù)器的數(shù)據(jù) local client_rec = ‘’ for i= 0,#(packet) do --拼接數(shù)據(jù) client_rec = client_rec .." ".. string.format("%02X",packet[i]) end --顯示數(shù)據(jù) set_text(sc_tcp,5,client_rec) --返回1時(shí)候,數(shù)據(jù)不會(huì)通過(guò)串口發(fā)送至用戶(hù)主板 return 1 end
核心API函數(shù)
1) on_client_recv_data(packet)
當(dāng)客戶(hù)端SOCKET接收到數(shù)據(jù)時(shí),系統(tǒng)自動(dòng)回調(diào)此函數(shù)。
- packet:接收的字節(jié)數(shù)組packet,下標(biāo)從0開(kāi)始
基本思路:當(dāng)服務(wù)器向屏幕發(fā)送數(shù)據(jù)時(shí),屏幕自動(dòng)回調(diào)on_client_recv_data()。本例程中,對(duì)接收服務(wù)器的數(shù)據(jù)僅作顯示。實(shí)際應(yīng)用中,用戶(hù)可根據(jù)服務(wù)器的數(shù)據(jù)響應(yīng)不同的動(dòng)作,如更新文本、設(shè)置按鈕、進(jìn)度條、通過(guò)串口給MCU動(dòng)作等等。
5.2.5 SOCKET 屏幕發(fā)
1. 畫(huà)面配置
在畫(huà)面ID5中,添加1個(gè)文本控件(控件ID3),當(dāng)用戶(hù)點(diǎn)擊文本控件彈出鍵盤(pán),并將輸入的數(shù)據(jù)發(fā)送至服務(wù)器,畫(huà)面配置如圖5-8所示:
圖5-8 畫(huà)面配置
2. LUA腳本編輯
本例程中,當(dāng)獲取用戶(hù)鍵盤(pán)輸入值后,以16進(jìn)制發(fā)送到服務(wù)器,代碼如程序清單 3所示。
程序清單 3 SOCKET 屏幕發(fā)
--自定義函數(shù),填充緩沖區(qū)并發(fā)送 function my_sendToserver(sendData) --發(fā)送緩沖區(qū) local send_buff = {} --計(jì)算字符串函數(shù) local send_len = string.len(sendData) for i = 1, send_len do --將字符轉(zhuǎn)換成16進(jìn)制 send_buff[i - 1] = tonumber(string.byte(sendData, i, i)) end --發(fā)送服務(wù)器 client_send_data(send_buff) end --用戶(hù)通過(guò)觸摸修改控件后,執(zhí)行此回調(diào)函數(shù)。 --點(diǎn)擊按鈕控件,修改文本控件、修改滑動(dòng)條都會(huì)觸發(fā)此事件。 function on_control_notify(screen,control,value) if screen == sc_wifiset then ...... elseif screen == sc_tcp then if control == 3 then --獲取鍵盤(pán)輸入的數(shù)據(jù) local sendData = get_text(sc_tcp, 3) my_sendToserver(sendData) elseif control == 7 then ...... elseif control == 9 and value == 0 then ...... elseif control == 13 then ...... end end end
核心API函數(shù)
1) client_send_data(packet)
通過(guò)客戶(hù)端SOCKET發(fā)送報(bào)文到服務(wù)器
-
packet:發(fā)送字節(jié)數(shù)組packet,下標(biāo)從0開(kāi)始。
5.3 下載工程
在我司的上層軟件Visual TFT中集成了LUA程序的編譯器,可以實(shí)現(xiàn)在編譯工程的同時(shí)將LUA腳本程序一起編譯,并且將編譯后的圖片和程序集合在一個(gè)名為DCIOT.PKG的文件中。編譯后只需要把DCIOT.PKG文件拷貝到U盤(pán)中,插入串口屏并重新上電即可將圖片和程序下載到屏中。