用C语言写HMI程序,HMI画面元素组成设计及代码生成方法与流程
技術(shù)領(lǐng)域本發(fā)明涉及一種HMI畫面元素組成設(shè)計(jì)及代碼生成方法,屬于人機(jī)界面領(lǐng)域。
背景技術(shù):
HMI是HumanMachineInterface的縮寫,“人機(jī)接口”,也叫人機(jī)界面。嵌入式開發(fā)中HMI畫面元素組成設(shè)計(jì)及代碼的自動(dòng)生成工具的開發(fā)是為了解決嵌入式開發(fā)中,許多嵌入式操作系統(tǒng)沒有相應(yīng)的控件及圖形描畫接口支持,只有簡單的點(diǎn)、線、面、文字及簡單的顯示圖片接口。由此造成HMI畫面元素組成設(shè)計(jì)及焦點(diǎn)控制中,工作量大、效率低、重復(fù)工作多等問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種HMI畫面元素組成代碼生成方法。本發(fā)明采用了如下技術(shù)方案:一種HMI畫面元素組成設(shè)計(jì)及代碼生成方法,其特征在于,包括如下步驟:步驟一、分解分解畫面元素的組成結(jié)構(gòu);步驟二、在HMI的DM畫面模板上填寫畫面信息;步驟三、在HMI的DM畫面模板上填寫畫面的元素信息;步驟四、在HMI的DM畫面模板上填寫畫面的元素坐標(biāo)位置信息;步驟五、將步驟二到步驟四的信息寫入畫面數(shù)據(jù)文件;步驟六、在HMI的DM消息模板上填寫消息框信息,本步驟與步驟二同時(shí)進(jìn)行;步驟七、將消息框信息寫入消息框數(shù)據(jù)文件中;步驟八、在步驟五和步驟七生成的數(shù)據(jù)文件中,選擇需要造成代碼的文檔,使用代碼生成工具生成代碼。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:其中,步驟一中,畫面元素組成結(jié)構(gòu)中的圖形分為兩大類,分別是畫面和消息框。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:其中,所述畫面的類型包括:主畫面、普通菜單畫面、帶按鈕的菜單畫面、滾動(dòng)畫面、時(shí)間設(shè)置畫面、輸入法畫面。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:其中,所述畫面中的畫面元素包括:文本框、可編輯文本框、單選框、多選框、圖片框、標(biāo)簽框。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:畫面元素的信息還包括:位置、大小、背景圖片和焦點(diǎn)位置。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:其中,所述畫面數(shù)據(jù)文件為xls格式的文件。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:其中,所述消息框信息的數(shù)據(jù)文件為xls格式的文件。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:其中,所述畫面元素還包括:進(jìn)度條和滾動(dòng)條。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:消息框包括標(biāo)簽框、文本框以及圖片框。進(jìn)一步,本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,還可以具有這樣的其特征:消息框信息包括消息內(nèi)容和按鈕定義。發(fā)明的有益效果本發(fā)明的HMI畫面元素組成設(shè)計(jì)及代碼生成方法,通過對(duì)畫面元素最底層的分解及結(jié)構(gòu)化的處理,以及對(duì)畫面表示及焦點(diǎn)控制的統(tǒng)一管理,提高了生產(chǎn)效率,減少了錯(cuò)誤發(fā)生的概率。附圖說明圖1是HMI畫面元素組成設(shè)計(jì)及代碼生成方法的流程圖;圖2是實(shí)施例中的目的HMI界面圖;圖3是代碼文件生成之后在終端機(jī)上運(yùn)行從而形成HMI界面的過程圖。具體實(shí)施方式以下結(jié)合附圖來說明本發(fā)明的具體實(shí)施方式。如圖1所示,HMI畫面元素組成設(shè)計(jì)及代碼生成方法,包括如下步驟:步驟101、分解畫面元素組成結(jié)構(gòu)。畫面元素組成結(jié)構(gòu)采用種類歸納的原則把相同的畫面種類歸納為一類,如主畫面、普通菜單畫面、帶按鈕的菜單畫面、滾動(dòng)畫面、時(shí)間設(shè)置畫面、輸入法畫面等;并把畫面中的畫面元素按不同類型分解成文本框、可編輯文本框、單選框、多選框、圖片框、標(biāo)簽框、進(jìn)度條、滾動(dòng)條等類型。在分解畫面元素組成結(jié)構(gòu)時(shí),首先判斷當(dāng)前圖形是屬于畫面還是消息框,如果是畫面則分析畫面類型,如畫面類型是上述的主畫面、普通菜單畫面、帶按鈕的菜單畫面、滾動(dòng)畫面、時(shí)間設(shè)置畫面、輸入法畫面中的哪一種,通過畫面內(nèi)容在管理控制或操作時(shí)的共通性及差異性的特征來區(qū)分畫面類型,以及位置、大小、背景圖片、焦點(diǎn)位置等畫面元素的信息,然后把畫面元素信息分解后填寫在模板上并填寫元素的位置坐標(biāo)信息。步驟102、在HMI的DM畫面模板上填寫畫面元素的信息。DM畫面是畫面顯示管理使用到的畫面,即嵌入式系統(tǒng)狀態(tài)變化時(shí)需要顯示的畫面。DM畫面模板指圖1中的HMI_DM_ScreenData.xls和HMI_DM_MsgboxData.xls兩個(gè)文件。如果是畫面則在HMI_DM_ScreenData.xls畫面模板中填寫內(nèi)容,如果是畫面中的消息框則在HMI_DM_MsgboxData.xls消息模板中填寫內(nèi)容。HMI_DM_ScreenData.xls是Screen(畫面背景)、Item(元素部件)、Coordinate(位置坐標(biāo))的數(shù)據(jù)文件,該文件初始為空的格式模板,用戶根據(jù)畫面元素構(gòu)成定義向模板中填寫相關(guān)的畫面背景、元素部件、位置坐標(biāo)等信息。該文件的作用是供給數(shù)據(jù)創(chuàng)建工具提取解析并生成HMI_DM_ScreenInfo.h、HMI_DM_ScreenInfo.cpp、HMI_DM_ItemInfo.h、HMI_DM_ItemInfo.cpp、HMI_DM_CoordinateInfo.h、HMI_DM_CoordinateInfo.cpp等6個(gè)C語言畫面結(jié)構(gòu)定義文件時(shí)使用。HMI_DM_MsgboxData.xls:Msgbox的數(shù)據(jù)文件,該文件初始為空的格式模板,根據(jù)消息框的元素構(gòu)成定義向模板中填寫相關(guān)的消息內(nèi)容及按鈕定義。該文件的作用是提供給DataCreateTool工具解析提取并生成HMI_DM_MsgboxInfo.h、HMI_DM_MsgboxInfo.cpp等2個(gè)C語言消息框結(jié)構(gòu)定義文件時(shí)使用。步驟103、在HMI的DM畫面模板HMI_DM_ScreenData.xls文件上填寫畫面元素的信息。步驟104、在HMI的DM畫面模板上填寫畫面元素的坐標(biāo)位置信息。步驟105、將步驟102到步驟104的信息寫入畫面數(shù)據(jù)文件,形成填寫好數(shù)據(jù)的HMI_DM_ScreenData.xls數(shù)據(jù)文件。步驟106、在HMI的DM消息模板上填寫消息框信息,本步驟與步驟102同時(shí)進(jìn)行。步驟107、將消息框信息寫入數(shù)據(jù)文件中,本實(shí)施方式中消息框信息的數(shù)據(jù)文件為HMI_DM_MsgboxData.xls。步驟108、在步驟105和步驟107生成的數(shù)據(jù)文件中,選擇需要形成代碼的文檔,使用代碼生成工具生成代碼。代碼生成工具的工作過程是:提取解析HMI_DM_ScreenData.xls文件并生成HMI_DM_ScreenInfo.h、HMI_DM_ScreenInfo.cpp、HMI_DM_ItemInfo.h、HMI_DM_ItemInfo.cpp、HMI_DM_CoordinateInfo.h、HMI_DM_CoordinateInfo.cpp等6個(gè)畫面結(jié)構(gòu)定義文件。提取解析HMI_DM_MsgboxData.xls文件并生成HMI_DM_MsgboxInfo.h、HMI_DM_MsgboxInfo.cpp等2個(gè)消息框結(jié)構(gòu)定義文件。下面以形成圖2中的HMI界面為例,進(jìn)一步說明。如圖2所示,若要生成如圖中所示的HMI界面的代碼,步驟如下:1.定義畫面ScreenID:0x0033、ScreenType:0x01(普通畫面)、PreviewFlag:HMI_DM_DISPLAY(顯示模式)、XStartPoint(X軸起點(diǎn)):0、YStartPoint(Y軸起點(diǎn)):0、Width(寬度):400、Height(高度):234、BackImg(背景圖片):0xffffffff(無背景圖片)、FocusPos(焦點(diǎn)):0x00(初始焦點(diǎn))、InitActiveListID:0x00、ListCapacity:0x06(listitem總數(shù))填入Screen模板。2.把畫面分解為11個(gè)畫面元素,0x00~0x05是Text文本、0x06是圖片、0x07~0x0B是菜單,并把相關(guān)信息填入Item模板。3.把已分解的11個(gè)畫面元素的坐標(biāo)位置定義信息填入Coordinate模板。4.保存HMI_DM_ScreenData.xls模板文件。5.使用代碼生成工具生成文件。代碼文件生成之后,在終端機(jī)上運(yùn)行從而形成HMI界面的過程如下,如圖3所示:1.FSM有限狀態(tài)機(jī)發(fā)生狀態(tài)變化時(shí)通過DMInterface接口調(diào)用畫面管理模塊(ScreenManager)和消息框管理模塊(MsgboxManager)。2.畫面管理模塊通過畫面信息管理模塊調(diào)用自動(dòng)生成畫面信息代碼HMI_DM_ScreenInfo.h、HMI_DM_ScreenInfo.cpp、HMI_DM_ItemInfo.h、HMI_DM_ItemInfo.cpp、HMI_DM_CoordinateInfo.h、HMI_DM_CoordinateInfo.cpp組織畫面信息顯示數(shù)據(jù)。3.畫面管理模塊通過取得的畫面信息顯示數(shù)據(jù)直接調(diào)用GUI系統(tǒng)包或通過調(diào)用元素部件管理模塊(ItemManager)調(diào)用GUI系統(tǒng)包達(dá)到HMI界面的描畫。4.消息框管理模塊取得自動(dòng)生成的消息框代碼HMI_DM_MsgboxInfo.h、HMI_DM_MsgboxInfo.cpp等2個(gè)消息框結(jié)構(gòu)定義文件組織消息框顯示數(shù)據(jù)并通過調(diào)用GUI系統(tǒng)包顯示HMI消息界面。
總結(jié)
以上是生活随笔為你收集整理的用C语言写HMI程序,HMI画面元素组成设计及代码生成方法与流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国内首家,厦门大学实现 8 英寸碳化硅外
- 下一篇: 1到100猜数字游戏规则c语言,[C语言