国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種實(shí)現(xiàn)儀器菜單動態(tài)配置的方法

2012-04-29 02:33:59白軼榮
計(jì)算機(jī)時代 2012年1期
關(guān)鍵詞:菜單儀器

白軼榮

摘要闡述了一種實(shí)現(xiàn)儀器菜單動態(tài)配置的方法王應(yīng)用程序調(diào)用相應(yīng)的儀器菜單解析程序,解析程序解析菜單數(shù)據(jù)配置叉件,并向王應(yīng)用程序返回顯示代碼,顯示代碼經(jīng)編譯、鏈接,形成可執(zhí)行的二進(jìn)制文件,二進(jìn)制叉件連行后顯示相應(yīng)的儀器菜單。運(yùn)用該方法可以方便靈活地修改儀器菜單顯示界面。

關(guān)鍵詞菜單,儀器,XML;MVC

中圖分類號TP315文獻(xiàn)標(biāo)志碼A文章編號:1006-8228(2012)01-66-02

O引言

在編寫儀器菜單的應(yīng)用程序時,一般的做法是將菜單的名稱、功能函數(shù)的地址(用c語言編寫儀器程序是用函數(shù)的地址,用c++或JAvA則是某個類的某個方法)等直接寫入應(yīng)用程序里。但是,如果用戶的需求不斷變化,例如菜單名稱的改動、菜單之間相對位置的變化、菜單在LCD上所顯示的圖形圖像的變換等,這些都會導(dǎo)致程序員花費(fèi)大量的時間去修改代碼。而目.從MVC(Model-Vlew-Control數(shù)據(jù)模型一視圖一控制,其中數(shù)據(jù)模型是內(nèi)容,視圖是顯示效果,控制是如何管理數(shù)據(jù)、顯示數(shù)據(jù)的方法)m的角度來分析,上述做法把Model(處理數(shù)據(jù)和完成某種特定功能)的代碼和View(顯示給用戶看)的代碼混淆在一起,維護(hù)起來很容易出錯,往往是修改了一處,其他地方又出現(xiàn)bug,或者是修改過之后應(yīng)用程序隱藏了某個當(dāng)下難以發(fā)現(xiàn)的bug,或者未來就很難修改。這些都是因?yàn)閏ontrol(控制)沒有做好。以下我們將介紹一種實(shí)現(xiàn)儀器菜單動態(tài)配置的方法。

1實(shí)現(xiàn)儀器菜單動態(tài)配置的原理

實(shí)現(xiàn)儀器菜單動態(tài)配置的原理,如圖1所示。

(1)主應(yīng)用程序按照用戶對儀器菜單的顯示要求在解析程序庫中調(diào)用相應(yīng)的儀器菜單解析程序,

(2)解析程序解析菜單數(shù)據(jù)配置文件,解析完成后向主應(yīng)用程序返回顯示代碼,

(3)對返回的顯示代碼進(jìn)行編譯、鏈接,形成可執(zhí)行的二進(jìn)制文件,

(4)儀器讀取可執(zhí)行的二進(jìn)制文件并運(yùn)行后顯示相應(yīng)的儀器菜單。

菜單數(shù)據(jù)配置文件為.XML(可擴(kuò)展標(biāo)識語言)格式的文件,解析程序?qū)ξ募馕鐾瓿珊笙蛑鲬?yīng)用程序返回c語言代碼,c語言代碼經(jīng)編譯、鏈接形成二進(jìn)制文件,然后被導(dǎo)入儀器并運(yùn)行。

本方法將儀器菜單的顯示參數(shù)全部放在菜單數(shù)據(jù)配置文件中,應(yīng)用程序中Model View的代碼分離,程序結(jié)構(gòu)簡明清晰。在編寫或修改Model(處理數(shù)據(jù)和完成某種特定功能)時與View(顯示給用戶看)無關(guān)。當(dāng)用尸的需求發(fā)生改變時,程序員只需要靈活地修改菜單數(shù)據(jù)配置文件,不必改動主應(yīng)用程序,大大地方便了程序維護(hù)工作。

2實(shí)現(xiàn)儀器菜單動態(tài)配置的流程

儀器菜單動態(tài)配置的具體實(shí)現(xiàn)過程如下。

(1)將儀器菜單的數(shù)據(jù)按照樹形結(jié)構(gòu)寫入XML格式的菜單數(shù)據(jù)配置文件,并存儲于PC機(jī)中。

以如下菜單為例

開機(jī)后用戶界面一模式、窗口、軌跡、頻標(biāo)、光標(biāo)、橫軸設(shè)置、縱軸設(shè)置、系統(tǒng)。

模式一相噪模式、頻譜模式、頻率功率模式、瞬態(tài)模式,

窗口一相噪窗口、頻譜窗口、頻率功率窗口、瞬態(tài)窗口;

軌跡—軌跡開關(guān)、軌跡偏置、保持方式、持續(xù)模式,

頻櫪—順標(biāo)開關(guān)、頻標(biāo)類型、頻標(biāo)功能;

光標(biāo)一光標(biāo)開關(guān)、起始、終止、中心、跨度,

橫軸設(shè)置—起始、終止、中心、跨度;

縱軸設(shè)置—起始、終止、中心、跨度.

系統(tǒng)—復(fù)位、文件、安全保密、網(wǎng)絡(luò)設(shè)置、幫助。

經(jīng)分析,上述儀器菜單的數(shù)據(jù)結(jié)構(gòu)明顯的成“樹”形,而XML文件內(nèi)部,數(shù)據(jù)之間的結(jié)構(gòu)恰恰是樹形的(XML是SGML的子集,符合標(biāo)記語言的規(guī)范),所以采用XML文件來記錄儀器的所有菜單就能從全局上把握整個“菜單樹”,并且只要看到了這個XML格式的菜單數(shù)據(jù)配置文件的內(nèi)容,就知道儀器上所有的菜單及菜單之間的層次結(jié)構(gòu)。

(2)編寫與各種菜單顯示風(fēng)格一一對應(yīng)的儀器菜單解析程序,形成解析程序庫,存儲于計(jì)算機(jī)中。解析程序具備通用性,即當(dāng)XML格式的菜單數(shù)據(jù)配置文件中的菜單內(nèi)容、菜單位置等發(fā)生變化時解析程序仍然能夠解析。菜單解析程序可以通過各種計(jì)算機(jī)語言編程實(shí)現(xiàn)。

用戶可能會有多種菜單顯示要求,如全屏顯示菜單、滾動式顯示菜單、折疊+滾動式顯示菜單等,為了滿足用戶的不同需求,需要編寫多個解析程序,一個解析程序?qū)?yīng)一種顯示風(fēng)格,并形成解析程序庫,聽候調(diào)用。

(3)計(jì)算機(jī)的主應(yīng)用程序按照用戶對儀器菜單的顯示要求在解析程序庫中調(diào)用相應(yīng)的儀器菜單解析程序。

(4)解析程序解析XML格式的菜單數(shù)據(jù)配置文件,解析完成后向主應(yīng)用程序返回一個臨時的c文件或者一段c代碼。這些代碼在主應(yīng)用程序中起著顯示代碼的作用。

(5)在主應(yīng)用程序中將返回的顯示代碼和其他程序一起編譯、鏈接,形成可執(zhí)行的二進(jìn)制文件。

(6)將可執(zhí)行的二進(jìn)制文件導(dǎo)入儀器,執(zhí)行該二進(jìn)制文件。儀器菜單的名稱、圖形圖像按照菜單數(shù)據(jù)配置文件中菜單的相對位置將顯示到儀器屏幕上,然后再為每個菜單附加上其相對應(yīng)的點(diǎn)擊功能。

綜上所述,由于解析程序具備通用性,因此當(dāng)XML格式的菜單數(shù)據(jù)配置文件的菜單內(nèi)容發(fā)生變化時,解析程序仍然能夠解析變化后的格式的菜單數(shù)據(jù)配置文件。這樣一來,當(dāng)用戶的需求發(fā)生改變時程序員只需要修改菜單數(shù)據(jù)配置文件就可以了,不必改動主應(yīng)用程序。同時當(dāng)用戶對菜單的顯示風(fēng)格有了不同的要求的時候,程序員僅需要在主應(yīng)用程序中把原來所調(diào)用的解析程序換成新的解析程序就可以。例如如果要將全屏顯示菜單改為滾動式菜單,則程序員只需要把應(yīng)用程序里原來調(diào)用“全屏顯示菜單解析程序”改成調(diào)用“滾動式菜單的解析程序”,然后將重新編譯鏈接得到的新的可執(zhí)行文件再次導(dǎo)入到儀器上即可。

3結(jié)束語

儀器菜單動態(tài)配置方法的優(yōu)點(diǎn)是將儀器菜單的顯示參數(shù)寫入菜單數(shù)據(jù)配置文件中,使得程序員僅通過修改菜單數(shù)據(jù)配置文件,不需要修改其他任何程序就可以方便地對菜單的內(nèi)容進(jìn)行調(diào)整,以向用尸顯示不同的菜單名稱及菜單結(jié)構(gòu),同時應(yīng)用程序能夠根據(jù)用戶的菜單顯示要求調(diào)用不同的解析程序解析同—個菜單數(shù)據(jù)配置文件,以顯示出不同的風(fēng)格的儀器菜單。

猜你喜歡
菜單儀器
《現(xiàn)代儀器與醫(yī)療》2022年征訂回執(zhí)
《現(xiàn)代儀器與醫(yī)療》2022年征訂回執(zhí)
中國新年菜單
我國古代的天文儀器
本月菜單
美食堂(2017年1期)2017-01-13 01:37:42
一個“公海龜”的求偶菜單
鴨綠江(2013年10期)2013-03-11 19:41:55
星敏感器用儀器星等的確定
新書菜單
祝您健康(1997年12期)1997-12-28 03:05:44
萝北县| 中江县| 延庆县| 辽源市| 三都| 驻马店市| 马边| 贵溪市| 祥云县| 巴南区| 宝坻区| 勐海县| 庆安县| 洛宁县| 宁强县| 巴林左旗| 富锦市| 青神县| 晋宁县| 台南县| 股票| 毕节市| 陆河县| 合江县| 巨野县| 桑植县| 福州市| 五峰| 莱西市| 达拉特旗| 武功县| 临泉县| 扎囊县| 奉贤区| 尉犁县| 利津县| 哈巴河县| 政和县| 井研县| 平昌县| 南川市|