新構建在儀器儀表功能抉擇中運用
XML是一種用于描述數據的元標記語言。采用XM L幾乎可以描述所有的數據類型,用戶可以根據自己需要創建各種自定義標記,從而構建需要的標記語言來描述各種數據。
XML文檔是指使用XML語言描述的標準格式文檔,其最大的特點是以樹型結構來組織數據。按照其結構可分為規則和XML文本組成。規則就是一種標記符的語法規則,簡單的說就是對用戶標記的定義;而XML文本則是使用該標記記錄進行描述的文本。
本應用通過將需要的菜單數據封裝成多國語言的XML文本格式,再通過編寫XML解析程序在運行時解析加載解析構造動態的菜單內容,從而實現軟件的動態解析、多語言支持。
菜單內容的XM L描述不同于普通菜單系統,儀器的菜單系統主要是由幾個按鈕來來實現的,在按鈕區域不但要完成這個菜單樹的尋址,還要完成參數顯示、控制參數輸入等復雜功能。通過對其進行需求分析,可以把所有功能抽象為5種類型:子菜單型、選項型、參數型、復合型、功能型。它們的功能分別如下:1)子菜單型:擁有下一級菜單鏈接,單擊會顯示下一級菜單。
2)選項型:控制著N選1的系統參數,單擊更改系統參數并在視圖顯示。
3)參數型:控制系統參數的輸入,單擊會產生更改參數消息,更改后顯示結果。
4)復合式:具有選項型和參數型兩種復合類型的菜單,第一次單擊完成選項型功能,第二次單擊完成參數型功能。功能型:單擊完成儀器的一個特定功能。為功能視圖。
通過XM L的封裝有效地實現了菜單內容和功能的分離,在運行時再來組織菜單內容結果可以產生高度的可復用和軟件靈活性,以下為某頻譜析菜單描述為例:< M enuItem Caption_Eng= \" StopFreq\" Caption_Chi= \"中止頻率\" Type= \"TYPE_PARAM \" nID= \"103\" /> < M enuItem Caption_Eng= \" StepFreq\" Caption_Chi= \"步進頻率\" Type= \"TYPE_COMPOUND\" nID= \"104\" > < options > < option nam e= \"AUTO\" /> < option nam e= \"MAN \" /> < / op tions> < /M enuItem >其中Caption是菜單的標題描述,現在只封裝了英文和中文,需要的時候可以使用添加各國語言。Type描述的是菜單的功能類型。nID是唯一標識菜單功能的描述,通過此ID確定它的功能。通過這種描述可以實現對各種復雜結構的菜單科研設計成果儀器儀表用戶進行描述,擴展度極高。
2. 2菜單系統軟件設計通過用例分析技術可以有效的幫助設計,按照功能單元可以將整個系統分為四個部分:菜單解析組件、菜單視圖組件、菜單功能組件、菜單管理組件。
菜單管理組件用于實現整個系統的產生和結束,同時也負責維護菜單樹結構和樹尋址。菜單解析組件用于完成對XML文檔的解析,產生對應的數據結構并存入到管理組件中。
菜單視圖組件用于顯示功能名稱和系統參數,同時也接收用戶的按鍵消息并通知功能組件。菜單功能組件用于實現操作功能,包括產生下級菜單、更改系統參數等。具體架構參看。
菜單系統構架圖解析組件為管理組件提供接口,視圖則依賴于管理組件產生的菜單樹。同時視圖也作為觀察者接受用戶的消息并轉發到功能組件里,功能組件完成解析并調用管理組件實現菜單功能。其具體設計如下:1)菜單解析組件設計解析XML文檔需要用到XML解析器(提供了讀寫XML文檔基本函數的功能包),本例中采用了微軟的XML解析器。為了最大程度簡化解析過程,可設計一個遞歸函數來完成整個命令樹的構建。其解析思想是對XML文檔節點深度優先的查找方法,遍歷整個XM L文檔。每當查找到新一個節點就在內存中動態生成一個新的十字鏈表節點,然后將新節點連接到原節點上,從而在內存中構成一個樹形結構的菜單樹。
2)菜單視圖組件設計菜單的視圖基本需要的功能就是實現一個能夠用于顯示字符的容器和接收按鍵消息功能,并能根據菜單樹種的類型完成不同顯示樣式。如果需要優化美觀,還可以采用貼位圖的辦法來獲得更好的用戶界面。
3)管理組件設計管理組件維護著整個菜單樹的結構和尋址。一般的菜單樹都是樹型結構,構建的時候可以考慮使用二叉樹或者十字鏈表來構建,可以獲得比較優化的菜單結構。菜單的尋址過程其實就是對典型的樹查找過程,任意查找算法可以實現。
結束使用XM L封裝數據,再通過解析實現動態可配置的軟件具有高度的擴展性和靈活性,是現在流行的一種軟件技術,現在已經發展成為一種重要的體系結構。采用上述技術設計的菜單系統已用于多種儀器中,實踐證明該設計方法是十分成功有效的。
【中國糧油儀器在線】部分信息來自互聯網,力求安全及時、準確無誤,目的在于傳遞更多信息,并不代表本網對其觀點贊同或對其真實性負責。