中文字幕天堂手机版-欧美一区二区色大片在线观看-丰满人妻视频一区二区三区-美女视频黄的免费的91

您的位置:首頁(yè)   >  關(guān)于我們  >  新聞動(dòng)態(tài)

大彩串口屏WIFI/以太網(wǎng)應(yīng)用-TCP Client 通訊

發(fā)布人:大彩科技發(fā)布日期:2020-12-07

串口屏運(yùn)行演示視頻


一、適用范圍


本文檔適合大彩W系列選配帶WIFI或大彩EW系列帶以太網(wǎng)接口的串口屏產(chǎn)品使用。



二、開(kāi)發(fā)環(huá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




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


本文主要介紹屏幕作為客戶(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)中,插入串口屏并重新上電即可將圖片和程序下載到屏中。




歡迎聯(lián)系我司銷(xiāo)售咨詢(xún)