嵌入式開發(fā)中,經(jīng)常會(huì)有人機(jī)界面的開發(fā),如果你的板子有網(wǎng)口的話,可以開啟VNC功能,這樣就可以同步HMI到PC,平板,或者手機(jī)。親測(cè)效果非常棒。以emWin的VNC功能來介紹。
1
VNC簡(jiǎn)介
emWin VNC 服務(wù)器可用于管理嵌入式目標(biāo)以及多種其他用途,支持壓縮(hextile)編碼。VNC 表示“虛擬網(wǎng)絡(luò)計(jì)算”。它是基于一種簡(jiǎn)單的顯示協(xié)議的客戶端-服務(wù)器系統(tǒng),允許用戶從互聯(lián)網(wǎng)的任何地方查看和控制“桌面”計(jì)算環(huán)境,支持多種機(jī)器架構(gòu),采用的是 TCP/IP 通信協(xié)議。換言之:嵌入式設(shè)備的顯示內(nèi)容可以在運(yùn)行客戶端的機(jī)器(如 PC)的屏幕上看到;可以用鼠標(biāo)和鍵盤來
控制目標(biāo)。emWin 仿真和試用版都提供了該功能。emWin VNC 支持是一個(gè)單獨(dú)的軟件包,所以不包含在基本軟件包內(nèi)。VNC 支持需要 emWin 顏色。如果文件系統(tǒng)可用,還能在客戶端和帶 emWinVNC 客戶端的目標(biāo)之間實(shí)現(xiàn)文件傳輸,VNC 由兩類組件構(gòu)成:一是服務(wù)器,生成顯示,一是查看器,在屏幕上實(shí)際繪制顯示內(nèi)容。不但可以看到遠(yuǎn)程機(jī)器(目標(biāo)或仿真),而且可以通過鼠標(biāo)和鍵盤進(jìn)行控制。服務(wù)器和查看器可以在不同的機(jī)器上,可以采用不同的架構(gòu)。用于連接服務(wù)器和查看器的協(xié)議具有簡(jiǎn)單、開放且不受平臺(tái)限制的特點(diǎn)。查看器不存儲(chǔ)狀態(tài)。斷開查看器與服務(wù)器的連接,然后重新連接不會(huì)導(dǎo)致數(shù)據(jù)丟失。由于可以從其他地方重新連接,因此可以輕松實(shí)現(xiàn)移動(dòng)性。使用 VNC 服務(wù)器,可以從任何地方控制您的目標(biāo)機(jī)器。
2
運(yùn)行需求
因?yàn)閂NC是跑在網(wǎng)絡(luò)上的,所以必須有TCP/IP協(xié)議棧,例如我們嵌入式中經(jīng)常用的lwip等就可以用,另外VNC 服務(wù)器需要以獨(dú)立線程運(yùn)行。因此,使用 emWin VNC 服務(wù)器要求采用多任務(wù)系統(tǒng)。最后如果要傳文件還需要文件系統(tǒng)。實(shí)現(xiàn)是完全線程安全的及可重入的;多個(gè) VNC 服務(wù)器可以在同一 CPU 的不同層或顯示器中啟動(dòng)。如果目標(biāo)(當(dāng)然,同樣適用于模擬)有多個(gè)顯示器或多個(gè)層,這可能是一個(gè)有用的選項(xiàng)。只有一個(gè) VNC 服務(wù)器可以在任何時(shí)候在每一層啟動(dòng);一旦與查看器的連接結(jié)束,則可以連接另一個(gè)。
3
win32模擬
首先可以參考emwin的例程,VNC在同一電腦上模擬
打開模擬解決方案工程,使用vs2019模擬
打開工程配置使能VNC,也可以根據(jù)自己實(shí)際調(diào)整分辨率,這里以480*272來展示。如果編譯沒有問題運(yùn)行工程
打開VNC連接,可參照如下手冊(cè)提示連接
4
代碼分析
我們要將代碼移植到我們的硬件板子上其實(shí)也很簡(jiǎn)單,首先要保證你的TCP/IP協(xié)議棧運(yùn)行正常,可以測(cè)試TCP/IP協(xié)議棧正常運(yùn)行后,開始移植VNC,主要就幾個(gè)文件需要根據(jù)不同的協(xié)議棧修改,但都是socket編程,所以接口都一樣。主要就是開啟VNC函數(shù)的實(shí)現(xiàn)
這里我們以lwip協(xié)議棧為例來說明,以IAR環(huán)境為工程載體,以freeRTOS為操作系統(tǒng),參考上面的例程調(diào)用,先添加頭文件
這個(gè)函數(shù)就是實(shí)現(xiàn)創(chuàng)建VNC的任務(wù),在任務(wù)里調(diào)用 GUI_VNC_Process(&_Context, _Send, _Recv, (void *)Sock);去實(shí)現(xiàn)VNC的處理。
將實(shí)現(xiàn)的文件添加到工程里,并編譯無誤,
在GUI任務(wù)化地方調(diào)用開啟VNC服務(wù),還可以設(shè)置密碼,名字等等,調(diào)用相應(yīng)的API就可以
這樣編譯無誤后,就可以下載試驗(yàn)了,更多API和玩法可以參考emWin手冊(cè)。這個(gè)之前測(cè)試過,手邊此刻沒有板子,就不給大家演示了。如果你是使用freeRTOS+lwip+emwin可以參照文中的代碼,基本不用變就可以用起來,當(dāng)然,之前必須保證你的GUI和TCP/IP協(xié)議棧可以正常使用。可以參照前面的模擬看效果。這樣就可以很炫的玩你的GUI了。
責(zé)任編輯:YYX
-
PC
+關(guān)注
關(guān)注
9文章
2144瀏覽量
156231 -
HMI
+關(guān)注
關(guān)注
9文章
633瀏覽量
49838 -
VNC
+關(guān)注
關(guān)注
0文章
19瀏覽量
9425
原文標(biāo)題:讓你的HMI開啟VNC騷操作
文章出處:【微信號(hào):InterruptISR,微信公眾號(hào):嵌入式程序員】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
互聯(lián)世界中的人機(jī)界面 (HMI) 和網(wǎng)關(guān)

HMI與SCADA的區(qū)別與聯(lián)系 HMI技術(shù)在智能制造中的作用
HMI系統(tǒng)在工業(yè)自動(dòng)化中的應(yīng)用
人機(jī)界面與人們常說的“觸摸屏”有什么區(qū)別?這下終于清楚了

人機(jī)界面在開關(guān)柜一鍵順控中起到什么作用?

基于恩智浦i.MX 95的汽車人機(jī)界面 (HMI) 設(shè)計(jì)

什么是開關(guān)柜人機(jī)界面?有何作用?




評(píng)論