lkdGui是一款為單色顯示屏制作的圖形化界面,lkdGui主要定位于工業控制領域,用于簡單漂亮的圖形界面設計。它的源代碼全部使用c語言編寫,符合c99標準。它包含了常用的畫圖函數如畫點、畫線、畫矩形、文字顯示、按鈕控件、進度條控件。它使用`窗口`進行統一管理和調度,使得各個應用顯示模塊之間低耦合,方便應用程序的開發。
lkdGui源碼介紹
1.lkdGui_source文件夾:它包含了lkdGui的所有源碼
A.include文件夾:它包含了Gui所有的.h文件。移植時應將此路徑加入工程項目。
a.lkdGui.h:此文件里包含所有的Gui函數接口。用戶使用Gui函數時應該包含此頭文件。
b.lkdGuiConfig.h:此文件用來配置和裁剪Gui.
c.lkdGuiTypedef.h:此文件定義了Gui相關的數據結構,使用者不必看它。
B.port文件夾:它里邊包含的是移植相關的文件。
a.fontDriver文件夾:它包含常用的字模庫、字庫芯片驅動等。使用者可以在這里面加入字體相關的驅動。
b.lcdDriverPort文件夾:它包含常用的液晶驅動。使用者可以在這里面加入液晶相關的驅動。
c.lcdDriverPort.c:Gui的液晶驅動移植接口。用戶應該填充里面的相關函數。
d.userFontPort.c:Gui的字體驅動移植接口。用戶應該填充里面的相關函數。
e.userAppPort.c:這個輸入應用層,里面包含了初始化、窗口管理等函數。永和可以直接在這里面寫應用。
C.source文件夾:Gui繪圖、窗口管理等相關函數實現源碼。
圖片來源:公眾號嵌入式的日常
lkdGui移植
上節的源碼介紹中已經提到了移植相關的工作在port文件夾中。分為字體移植接口和液晶移植接口。1.字體移植接口:包含fontDriver文件夾和userFontPort.c。移植流程如下:
A.用戶先看fontDriver文件夾下有沒有自己要用的字體庫或字庫芯片驅動。如果沒有則需要添加。
B.然后修改userFontPort.c。填充此文件中的相關函數。
a.GetDfontData():此函數用于獲取漢字字模。字體庫中應該包含獲取字模的函數.用此函數調用即可。
b.GetSfontData():此函數用于獲取ASII碼字模。使用如GetDfontData()。
c.用lkdFont結構體對象聲明自己的字體->初始化->用GuiFontSet()設置為系統默認字體。
2.液晶移植接口:包含lcdDriverPort文件夾和lcdDriverPort.c。移植流程如下:
A.用戶先看lcdDriverPort文件夾下有沒有自己要用的液晶驅動。如果沒有則需要添加。
B.然后修改lcdDriverPort.c。填充此文件中的相關函數。(根據需求可以只填部分函數)。下面是必須要填充的。
a.GuiUpdateDisplayAll():此函數用于將緩存的數據刷新到液晶。
b.GuiDrawPoint():畫點函數。在液晶固定位置畫點。3.修改lkdGuiConfig.h中液晶大小相關宏GUI_LCM_XMAX,GUI_LCM_YMAX.
4.用戶使用接口:用戶可使用的接口函數都包含在lkdGui.h中。userAppPort.c是用戶使用的模板。
lkdGui窗口介紹
lkdGui使用窗口作為管理、調度單元。用戶所有的繪圖都應該在具體的某個窗口里邊。
1、lkdGuiConfig.h中的GUIWINMANAGE_NUM用于修改窗口最大嵌套數量。
2、GuiWinInit()系統上電時應該使用它初始化窗口相關資源。
3、GuiWinDisplay()是窗口調度函數,需要程序一直能執行到。
4、lkdWin是窗口的結構體。用戶使用它創建任意多個窗口實體對象。lkdWin->WindowFunction()是用戶在此窗口里畫圖等的接口。
5、GuiWinAdd()函數用于將lkdWin結構的窗口實體對象加入到窗口調度棧中。
6、GuiWinDeleteTop()函數用于將頂部的窗口實體對象從窗口調度棧中移除。
7、GuiGetTopWin()函數可以獲取窗口調度棧中頂部的窗口(當前顯示的窗口)。
lkdGui菜單介紹
菜單是lkdGui里一個有特色的控件,而且在工業控制中經常使用。具體使用請參看例程。
lkdGui字體介紹
lkdGui可以添加很多字體庫,在使用過程中使用GuiFontSet()函數來切換。使用GetCurrentFont()函數可以獲取當前的字體指針;
圖片來源:公眾號嵌入式的日常
其他控件和繪圖函數
見lkdGui.h。里面有詳細的使用說明。
如何在RT-Thread上使用lkdGui
聽取了使用者的意見后,lkdGui在第一版的基礎上對源碼程序進行了整理,更新到版本V0.0.1.同時,為了方便使用,將lkdGui加入到了RT-Thread的軟件包中。使用者只需在RT-Thread的管理工具env中選中lkdGui即可(關于RT-Thread的使用請參看RT-Thread官網)。下圖是lkdGui在menuconfig中的位置:
-
顯示屏
+關注
關注
28文章
4512瀏覽量
74779 -
工業控制
+關注
關注
38文章
1470瀏覽量
86055 -
軟件包
+關注
關注
0文章
104瀏覽量
11663
原文標題:?【使用指南】lkdGui軟件包——專為工業控制領域而生
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web3/M00/02/2B/wKgZPGdbzs2Ae36sAAPyt6r9MYA527.png)
![](https://file1.elecfans.com/web3/M00/02/21/wKgZPGdbl1iAO1muAANnveS_Q8Y868.png)
![](https://file1.elecfans.com/web2/M00/0C/D4/wKgaomc8UGyAUJzuAAOaKkwn__E032.png)
![](https://file1.elecfans.com/web2/M00/0C/D4/wKgaomc8T-KAbltRAAO7x-Ho6fQ434.png)
評論