白軼榮
摘要闡述了一種實現儀器菜單動態配置的方法王應用程序調用相應的儀器菜單解析程序,解析程序解析菜單數據配置叉件,并向王應用程序返回顯示代碼,顯示代碼經編譯、鏈接,形成可執行的二進制文件,二進制叉件連行后顯示相應的儀器菜單。運用該方法可以方便靈活地修改儀器菜單顯示界面。
關鍵詞菜單,儀器,XML;MVC
中圖分類號TP315文獻標志碼A文章編號:1006-8228(2012)01-66-02
O引言
在編寫儀器菜單的應用程序時,一般的做法是將菜單的名稱、功能函數的地址(用c語言編寫儀器程序是用函數的地址,用c++或JAvA則是某個類的某個方法)等直接寫入應用程序里。但是,如果用戶的需求不斷變化,例如菜單名稱的改動、菜單之間相對位置的變化、菜單在LCD上所顯示的圖形圖像的變換等,這些都會導致程序員花費大量的時間去修改代碼。而目.從MVC(Model-Vlew-Control數據模型一視圖一控制,其中數據模型是內容,視圖是顯示效果,控制是如何管理數據、顯示數據的方法)m的角度來分析,上述做法把Model(處理數據和完成某種特定功能)的代碼和View(顯示給用戶看)的代碼混淆在一起,維護起來很容易出錯,往往是修改了一處,其他地方又出現bug,或者是修改過之后應用程序隱藏了某個當下難以發現的bug,或者未來就很難修改。這些都是因為control(控制)沒有做好。以下我們將介紹一種實現儀器菜單動態配置的方法。
1實現儀器菜單動態配置的原理
實現儀器菜單動態配置的原理,如圖1所示。

(1)主應用程序按照用戶對儀器菜單的顯示要求在解析程序庫中調用相應的儀器菜單解析程序,
(2)解析程序解析菜單數據配置文件,解析完成后向主應用程序返回顯示代碼,
(3)對返回的顯示代碼進行編譯、鏈接,形成可執行的二進制文件,
(4)儀器讀取可執行的二進制文件并運行后顯示相應的儀器菜單。
菜單數據配置文件為.XML(可擴展標識語言)格式的文件,解析程序對文件解析完成后向主應用程序返回c語言代碼,c語言代碼經編譯、鏈接形成二進制文件,然后被導入儀器并運行。
本方法將儀器菜單的顯示參數全部放在菜單數據配置文件中,應用程序中Model View的代碼分離,程序結構簡明清晰。在編寫或修改Model(處理數據和完成某種特定功能)時與View(顯示給用戶看)無關。當用尸的需求發生改變時,程序員只需要靈活地修改菜單數據配置文件,不必改動主應用程序,大大地方便了程序維護工作。
2實現儀器菜單動態配置的流程
儀器菜單動態配置的具體實現過程如下。
(1)將儀器菜單的數據按照樹形結構寫入XML格式的菜單數據配置文件,并存儲于PC機中。
以如下菜單為例
開機后用戶界面一模式、窗口、軌跡、頻標、光標、橫軸設置、縱軸設置、系統。
模式一相噪模式、頻譜模式、頻率功率模式、瞬態模式,
窗口一相噪窗口、頻譜窗口、頻率功率窗口、瞬態窗口;
軌跡—軌跡開關、軌跡偏置、保持方式、持續模式,
頻櫪—順標開關、頻標類型、頻標功能;
光標一光標開關、起始、終止、中心、跨度,
橫軸設置—起始、終止、中心、跨度;
縱軸設置—起始、終止、中心、跨度.
系統—復位、文件、安全保密、網絡設置、幫助。
經分析,上述儀器菜單的數據結構明顯的成“樹”形,而XML文件內部,數據之間的結構恰恰是樹形的(XML是SGML的子集,符合標記語言的規范),所以采用XML文件來記錄儀器的所有菜單就能從全局上把握整個“菜單樹”,并且只要看到了這個XML格式的菜單數據配置文件的內容,就知道儀器上所有的菜單及菜單之間的層次結構。
(2)編寫與各種菜單顯示風格一一對應的儀器菜單解析程序,形成解析程序庫,存儲于計算機中。解析程序具備通用性,即當XML格式的菜單數據配置文件中的菜單內容、菜單位置等發生變化時解析程序仍然能夠解析。菜單解析程序可以通過各種計算機語言編程實現。
用戶可能會有多種菜單顯示要求,如全屏顯示菜單、滾動式顯示菜單、折疊+滾動式顯示菜單等,為了滿足用戶的不同需求,需要編寫多個解析程序,一個解析程序對應一種顯示風格,并形成解析程序庫,聽候調用。
(3)計算機的主應用程序按照用戶對儀器菜單的顯示要求在解析程序庫中調用相應的儀器菜單解析程序。
(4)解析程序解析XML格式的菜單數據配置文件,解析完成后向主應用程序返回一個臨時的c文件或者一段c代碼。這些代碼在主應用程序中起著顯示代碼的作用。

(5)在主應用程序中將返回的顯示代碼和其他程序一起編譯、鏈接,形成可執行的二進制文件。
(6)將可執行的二進制文件導入儀器,執行該二進制文件。儀器菜單的名稱、圖形圖像按照菜單數據配置文件中菜單的相對位置將顯示到儀器屏幕上,然后再為每個菜單附加上其相對應的點擊功能。
綜上所述,由于解析程序具備通用性,因此當XML格式的菜單數據配置文件的菜單內容發生變化時,解析程序仍然能夠解析變化后的格式的菜單數據配置文件。這樣一來,當用戶的需求發生改變時程序員只需要修改菜單數據配置文件就可以了,不必改動主應用程序。同時當用戶對菜單的顯示風格有了不同的要求的時候,程序員僅需要在主應用程序中把原來所調用的解析程序換成新的解析程序就可以。例如如果要將全屏顯示菜單改為滾動式菜單,則程序員只需要把應用程序里原來調用“全屏顯示菜單解析程序”改成調用“滾動式菜單的解析程序”,然后將重新編譯鏈接得到的新的可執行文件再次導入到儀器上即可。
3結束語
儀器菜單動態配置方法的優點是將儀器菜單的顯示參數寫入菜單數據配置文件中,使得程序員僅通過修改菜單數據配置文件,不需要修改其他任何程序就可以方便地對菜單的內容進行調整,以向用尸顯示不同的菜單名稱及菜單結構,同時應用程序能夠根據用戶的菜單顯示要求調用不同的解析程序解析同—個菜單數據配置文件,以顯示出不同的風格的儀器菜單。