面向?qū)ο蟮慕缑婢幊?嵌入式微系統(tǒng)連載之九
msOS采用128*64的字庫黑白屏,降低硬件設(shè)計復(fù)雜度,這個屏一行可以顯示8個漢字或者16個字母,總共4行。界面開發(fā)基于http://m.ptau.cn/article/263244.htm

上圖為工作頁面,由一張背景文字(BackText),兩個文本(TextBox)和五個標(biāo)簽(Label)組成。背景文字用于顯示固定的說明文字,比如頻率、功率等,這些文字在這個頁面下是固定不能變化的。標(biāo)簽控件用于顯示變量值,可以是字符串也可以是數(shù)字。文本控件具有標(biāo)簽的功能外,還可以通過按鍵等修改變量值。以上三種控件構(gòu)成了最常用的頁面。
接觸過PC機(jī)編程的,對于控件概念是非常容易接受的,若沒有接觸過,可以通過msOS配套的硬件開發(fā)平臺msPLC Demo了解界面編程,這樣會相對容易很多,此外也可以接觸一下C#編程,從跟msOS配套的msMenu源碼入手,這個msMenu源碼比較簡單,在PC機(jī)上用C#虛擬了128*64的黑白字庫屏。有了msMenu,各類STM32F103的開發(fā)板都可以運行msOS,通過串口跟PC機(jī)通訊,在msMenu上顯示,不需要硬件LCD屏,方便大家學(xué)習(xí)。msMenu的兩個主顯示區(qū),就是由兩個大的TextBox組成。
下圖為msMenu

BackTextPointer:背景文字控件加載點,是一個16*4字節(jié)的數(shù)組,作為頁面背景。
ChartPointer:圖表控件加載點,高頻機(jī)項目中用到,是一個特殊控件,一般項目用不到。
LabelPointer:標(biāo)簽控件加載點,一個Form可以支持多個Label,需要支持多控件級聯(lián)。
TextBoxPointer:文本控件加載點,一個Form可以支持多個TextBox,需要支持多控件級聯(lián)。
FocusTextBoxDataPointer:文本控件操作選擇,設(shè)定焦點用于選擇那個文本控件用于輸入。


設(shè)計程序的時候,第一步要建立頁面Form,如下圖:

第二步,定義各種控件和資源。

第三步,各個頁面加載控件,初始化控件參數(shù),關(guān)聯(lián)業(yè)務(wù)邏輯數(shù)據(jù)庫中的數(shù)據(jù)。

第四步,執(zhí)行MenuTask解析當(dāng)前頁面

msOS采用的菜單界面,非常簡單,是一個架構(gòu)性的菜單界面,很適合用戶看懂之后,自己修改、增刪,也可以應(yīng)用于彩屏。菜單界面的細(xì)節(jié)部分,請參考源碼。
評論