熱門關(guān)鍵字:谷物容重器 降落值測定儀 粉質(zhì)儀 拉伸儀 羅維朋比色計(jì) 纖維素測定儀 脂肪測定儀 油脂煙點(diǎn)測定儀 凱氏定氮儀 錘式旋風(fēng)磨  硬度計(jì)

新構(gòu)建在儀器儀表功能抉擇中運(yùn)用

來源: http://yuanweishulai.cn  類別:實(shí)用技術(shù)  更新時(shí)間:2015-03-23  閱讀

  XML是一種用于描述數(shù)據(jù)的元標(biāo)記語言。采用XM L幾乎可以描述所有的數(shù)據(jù)類型,用戶可以根據(jù)自己需要?jiǎng)?chuàng)建各種自定義標(biāo)記,從而構(gòu)建需要的標(biāo)記語言來描述各種數(shù)據(jù)。

  XML文檔是指使用XML語言描述的標(biāo)準(zhǔn)格式文檔,其最大的特點(diǎn)是以樹型結(jié)構(gòu)來組織數(shù)據(jù)。按照其結(jié)構(gòu)可分為規(guī)則和XML文本組成。規(guī)則就是一種標(biāo)記符的語法規(guī)則,簡單的說就是對(duì)用戶標(biāo)記的定義;而XML文本則是使用該標(biāo)記記錄進(jìn)行描述的文本。

  本應(yīng)用通過將需要的菜單數(shù)據(jù)封裝成多國語言的XML文本格式,再通過編寫XML解析程序在運(yùn)行時(shí)解析加載解析構(gòu)造動(dòng)態(tài)的菜單內(nèi)容,從而實(shí)現(xiàn)軟件的動(dòng)態(tài)解析、多語言支持。

  菜單內(nèi)容的XM L描述不同于普通菜單系統(tǒng),儀器的菜單系統(tǒng)主要是由幾個(gè)按鈕來來實(shí)現(xiàn)的,在按鈕區(qū)域不但要完成這個(gè)菜單樹的尋址,還要完成參數(shù)顯示、控制參數(shù)輸入等復(fù)雜功能。通過對(duì)其進(jìn)行需求分析,可以把所有功能抽象為5種類型:子菜單型、選項(xiàng)型、參數(shù)型、復(fù)合型、功能型。它們的功能分別如下:1)子菜單型:擁有下一級(jí)菜單鏈接,單擊會(huì)顯示下一級(jí)菜單。

  2)選項(xiàng)型:控制著N選1的系統(tǒng)參數(shù),單擊更改系統(tǒng)參數(shù)并在視圖顯示。

  3)參數(shù)型:控制系統(tǒng)參數(shù)的輸入,單擊會(huì)產(chǎn)生更改參數(shù)消息,更改后顯示結(jié)果。

  4)復(fù)合式:具有選項(xiàng)型和參數(shù)型兩種復(fù)合類型的菜單,第一次單擊完成選項(xiàng)型功能,第二次單擊完成參數(shù)型功能。功能型:單擊完成儀器的一個(gè)特定功能。為功能視圖。

  通過XM L的封裝有效地實(shí)現(xiàn)了菜單內(nèi)容和功能的分離,在運(yùn)行時(shí)再來組織菜單內(nèi)容結(jié)果可以產(chǎn)生高度的可復(fù)用和軟件靈活性,以下為某頻譜析菜單描述為例:< M enuItem Caption_Eng= \" StopFreq\" Caption_Chi= \"中止頻率\" Type= \"TYPE_PARAM \" nID= \"103\" /> < M enuItem Caption_Eng= \" StepFreq\" Caption_Chi= \"步進(jìn)頻率\" Type= \"TYPE_COMPOUND\" nID= \"104\" > < options > < option nam e= \"AUTO\" /> < option nam e= \"MAN \" /> < / op tions> < /M enuItem >其中Caption是菜單的標(biāo)題描述,現(xiàn)在只封裝了英文和中文,需要的時(shí)候可以使用添加各國語言。Type描述的是菜單的功能類型。nID是唯一標(biāo)識(shí)菜單功能的描述,通過此ID確定它的功能。通過這種描述可以實(shí)現(xiàn)對(duì)各種復(fù)雜結(jié)構(gòu)的菜單科研設(shè)計(jì)成果儀器儀表用戶進(jìn)行描述,擴(kuò)展度極高。

  2. 2菜單系統(tǒng)軟件設(shè)計(jì)通過用例分析技術(shù)可以有效的幫助設(shè)計(jì),按照功能單元可以將整個(gè)系統(tǒng)分為四個(gè)部分:菜單解析組件、菜單視圖組件、菜單功能組件、菜單管理組件。

  菜單管理組件用于實(shí)現(xiàn)整個(gè)系統(tǒng)的產(chǎn)生和結(jié)束,同時(shí)也負(fù)責(zé)維護(hù)菜單樹結(jié)構(gòu)和樹尋址。菜單解析組件用于完成對(duì)XML文檔的解析,產(chǎn)生對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)并存入到管理組件中。

  菜單視圖組件用于顯示功能名稱和系統(tǒng)參數(shù),同時(shí)也接收用戶的按鍵消息并通知功能組件。菜單功能組件用于實(shí)現(xiàn)操作功能,包括產(chǎn)生下級(jí)菜單、更改系統(tǒng)參數(shù)等。具體架構(gòu)參看。

  菜單系統(tǒng)構(gòu)架圖解析組件為管理組件提供接口,視圖則依賴于管理組件產(chǎn)生的菜單樹。同時(shí)視圖也作為觀察者接受用戶的消息并轉(zhuǎn)發(fā)到功能組件里,功能組件完成解析并調(diào)用管理組件實(shí)現(xiàn)菜單功能。其具體設(shè)計(jì)如下:1)菜單解析組件設(shè)計(jì)解析XML文檔需要用到XML解析器(提供了讀寫XML文檔基本函數(shù)的功能包),本例中采用了微軟的XML解析器。為了最大程度簡化解析過程,可設(shè)計(jì)一個(gè)遞歸函數(shù)來完成整個(gè)命令樹的構(gòu)建。其解析思想是對(duì)XML文檔節(jié)點(diǎn)深度優(yōu)先的查找方法,遍歷整個(gè)XM L文檔。每當(dāng)查找到新一個(gè)節(jié)點(diǎn)就在內(nèi)存中動(dòng)態(tài)生成一個(gè)新的十字鏈表節(jié)點(diǎn),然后將新節(jié)點(diǎn)連接到原節(jié)點(diǎn)上,從而在內(nèi)存中構(gòu)成一個(gè)樹形結(jié)構(gòu)的菜單樹。

  2)菜單視圖組件設(shè)計(jì)菜單的視圖基本需要的功能就是實(shí)現(xiàn)一個(gè)能夠用于顯示字符的容器和接收按鍵消息功能,并能根據(jù)菜單樹種的類型完成不同顯示樣式。如果需要優(yōu)化美觀,還可以采用貼位圖的辦法來獲得更好的用戶界面。

  3)管理組件設(shè)計(jì)管理組件維護(hù)著整個(gè)菜單樹的結(jié)構(gòu)和尋址。一般的菜單樹都是樹型結(jié)構(gòu),構(gòu)建的時(shí)候可以考慮使用二叉樹或者十字鏈表來構(gòu)建,可以獲得比較優(yōu)化的菜單結(jié)構(gòu)。菜單的尋址過程其實(shí)就是對(duì)典型的樹查找過程,任意查找算法可以實(shí)現(xiàn)。

  結(jié)束使用XM L封裝數(shù)據(jù),再通過解析實(shí)現(xiàn)動(dòng)態(tài)可配置的軟件具有高度的擴(kuò)展性和靈活性,是現(xiàn)在流行的一種軟件技術(shù),現(xiàn)在已經(jīng)發(fā)展成為一種重要的體系結(jié)構(gòu)。采用上述技術(shù)設(shè)計(jì)的菜單系統(tǒng)已用于多種儀器中,實(shí)踐證明該設(shè)計(jì)方法是十分成功有效的。

  【中國糧油儀器在線】部分信息來自互聯(lián)網(wǎng),力求安全及時(shí)、準(zhǔn)確無誤,目的在于傳遞更多信息,并不代表本網(wǎng)對(duì)其觀點(diǎn)贊同或?qū)ζ湔鎸?shí)性負(fù)責(zé)。