專利名稱:跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件開發(fā)技術(shù)領(lǐng)域,具體的說是一種跨桌面和嵌入式系統(tǒng)的 圖形界面開發(fā)方法及系統(tǒng)。
背景技術(shù):
圖形界面的開發(fā)是軟件開發(fā)領(lǐng)域的重要組成部分,絕大多數(shù)的應(yīng)用軟件 都有圖形界面功能。目前,大多數(shù)的操作系統(tǒng)都支持基于該系統(tǒng)的應(yīng)用圖形
界面的開發(fā),包括桌面操作系統(tǒng)(如Windows/Linux/Solaris)和嵌入式操作 系統(tǒng)(如VxWorks )。通常的做法是首先確定需要開發(fā)圖形界面運行在哪個操 作系統(tǒng)上,然后在基于該系統(tǒng)提供的應(yīng)用接口函數(shù)(API函數(shù))編寫代碼。因 此,軟件開發(fā)人員需要掌握相應(yīng)操作系統(tǒng)提供的相關(guān)接口函數(shù),才能完成代 碼的編寫,同時,由于各種操作系統(tǒng)提供的接口函數(shù)不同,如果需要把具有 相同功能的界面運行在不同的操作系統(tǒng)上,需要多次編寫代碼,并且由于各 種操作系統(tǒng)提供的界面風格不同,很難保證界面在不同操作系統(tǒng)上顯示效果 一致。
發(fā)明內(nèi)容
本發(fā)明的目的是研制一種跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法,它 能夠?qū)崿F(xiàn)上層應(yīng)用只需要編寫一次代碼,就能移植到不同的操作系統(tǒng)上,并 且在不同系統(tǒng)上運行時顯示的界面風格一致,無需修改代碼。
一種跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法,其步驟如下
1、在桌面操作系統(tǒng)上編寫圖形界面的應(yīng)用代碼,并 行編譯和調(diào)試,應(yīng)
用代碼在桌面系統(tǒng)上可運行和顯示;的操作系統(tǒng)類型(目標環(huán)境);
3、 把應(yīng)用代碼移植到目標環(huán)境相應(yīng)的開發(fā)環(huán)境中進行編譯和鏈接,生成 可執(zhí)行文件;
4、 在目標環(huán)境中配置環(huán)境參數(shù);
5、 在目標環(huán)境中運行可執(zhí)行文件。
所述目標環(huán)境相應(yīng)的開發(fā)環(huán)境的搭建具體過程為
1、 在開發(fā)環(huán)境中設(shè)定環(huán)境變量,指定編譯和鏈接工具的路徑;
2、 選擇目標環(huán)境對應(yīng)的圖形顯示中間件代碼,進行編譯生成對應(yīng)的庫文
件;
3、 把應(yīng)用代碼在開發(fā)環(huán)境中進行編譯,生成可執(zhí)行文件。 所述在目標環(huán)境中配置環(huán)境參數(shù)過程具體為
1、 配置可執(zhí)行文件需要的庫文件;
2、 指定可執(zhí)行文件在目標環(huán)境中的路徑和參數(shù)。
由于本發(fā)明是提供一種跨操作系統(tǒng)的圖形界面開發(fā)方法,并且只需要編 寫一次代碼,因此在編寫應(yīng)用代碼時調(diào)用的函數(shù)是標準的C函數(shù)、0++函數(shù)或 本發(fā)明提供的API函數(shù),不需要調(diào)用操作系統(tǒng)提供的API函數(shù),這樣就能保 證代碼在移植到不同的操作系統(tǒng)后,能夠編譯通過并生成可執(zhí)行文件。
本發(fā)明一種跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)系統(tǒng),該系統(tǒng)屬于一套 跨操作系統(tǒng)平臺的中間件,能夠運行在不同的操作系統(tǒng)上,它為應(yīng)用代碼的 移植提供了支撐。
為解決上述問題,本發(fā)明采用如下技術(shù)方案一種跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)系統(tǒng),包括
1、 操作系統(tǒng)適配模塊,用于與操作系統(tǒng)相關(guān)的API函數(shù)的封裝,基于不 同的操作系統(tǒng)向上提供統(tǒng)一的接口函數(shù)和參數(shù);
2、 圖形顯示支撐模塊,用于圖形的繪制和顯示部分;
3、 網(wǎng)絡(luò)通信模塊,用于網(wǎng)絡(luò)編程中需要的基本功能,包括TCP、 UDP、 HTTP 協(xié)議的封裝;
4、 XML模塊,用于XML文件的解析和生成;
5、 中文輸入法模塊,用于支持中文采用五筆、全拼、雙拼進行輸入。 本發(fā)明跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法及系統(tǒng),通過操作系統(tǒng)
適配模塊提供的功能屏蔽各操作系統(tǒng)間的差異,向上提供統(tǒng)一的接口函數(shù), 完成操作系統(tǒng)相關(guān)功能的調(diào)用,包括操作系統(tǒng)常用到的任務(wù)的創(chuàng)建、掛起, 信號量的創(chuàng)建、刪除,內(nèi)存的申請、釋放等。在圖形的繪制方面是通過圖形 顯示支撐模塊完成的,包括完成各種類型窗口控件的創(chuàng)建,各種界面的布局 風格和支持不同操作系統(tǒng)的圖形顯示機制等。通過跨桌面和嵌入式系統(tǒng)的圖 形界面開發(fā)系統(tǒng)提供的功能,上層應(yīng)用能夠基于該系統(tǒng)編寫可移植的代碼, 并且在不同系統(tǒng)中顯示相同的界面風格。
本發(fā)明跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法及系統(tǒng)的優(yōu)點是本發(fā) 明支持不同的操作系統(tǒng)平臺,無論是基于哪個操作系統(tǒng),對上提供統(tǒng)一的接 口函數(shù),圖形應(yīng)用軟件的開發(fā)都基于中間件提供的統(tǒng)一接口函數(shù)完成。這種 做法使得上層圖形應(yīng)用軟件的代碼具有了可移植性,只需要編寫一次代碼, 在不同操作系統(tǒng)的開發(fā)環(huán)境中進行編譯、鏈接,生成可執(zhí)行文件,即可在相 應(yīng)系統(tǒng)中運行,較大地提高了軟件開發(fā)效率,并且保證了圖形界面在不同系統(tǒng)中顯示效果的一致性。
圖1為跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法的流程圖。
圖2為跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)系統(tǒng)的示意圖。
具體實施例方式
如圖1所示,本發(fā)明跨操作系統(tǒng)平臺的界面無縫整合方法包括以下步
驟
51、 在桌面操作系統(tǒng)上編寫圖形界面的應(yīng)用代碼,并進行編譯和調(diào)試, 應(yīng)用代碼在桌面系統(tǒng)上可運行和顯示;
52、 確定應(yīng)用代碼實際要運行的操作系統(tǒng)類型(目標環(huán)境);
53、 把應(yīng)用代碼移植到目標環(huán)境相應(yīng)的開發(fā)環(huán)境中進行編譯和鏈接,生 成可執(zhí)行文件;
54、 在目標環(huán)境中配置環(huán)境參數(shù);
55、 在目標環(huán)境中運行可執(zhí)行文件,顯示圖形界面。
本實施例的跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法的實施對象是開發(fā) 出基于VxWorks操作系統(tǒng)的圖形界面應(yīng)用軟件,VxWorks操作系統(tǒng)的版本為 6. 5, VxWorks6. 5對應(yīng)的集成開發(fā)環(huán)境Workbench2. 6安裝在RedHat Linux5. 3 上,選擇桌面Windows操作系統(tǒng)進行應(yīng)用代碼的編寫、調(diào)試和顯示。
在Windows上完成代碼的編寫和調(diào)試后,把代碼移植到目標環(huán)境對應(yīng)的 開發(fā)環(huán)境中進行編譯、鏈接并生成可執(zhí)行文件。VxWorks6.5的開發(fā)環(huán)境 Workbench2. 6是安裝在RedHat Linux5. 3上,需要在Linux上配置環(huán)境變量,指定編譯、鏈接工具,內(nèi)容如下-export 0SDIR=— pwd、/oslayer
export WIND—BASE—PATH=/home/handscape/vxworks65
export WIND—USR=$WIND—BASE—PATH/vxworks-6. 5/target/usr
export PATH=$WIND—BASE—PATH/workbench-2.6/x86-linux2/bin:$PATH
export PATH=$WIND_BASE—PATH/gnu/3. 4. 4-vxworks-6, 5/x86-linux2/bin:$PATH
$WIND BASE PATH/wrenv. sh -p vxworks-6. 5
完成環(huán)境參數(shù)配置后,把.cpp文件和.h文件移植到指定的目錄下,根據(jù) 對應(yīng)關(guān)系創(chuàng)建Makefile文件。然后輸入make命令,根據(jù)環(huán)境參數(shù)指定的 VxWorks編譯器工具進行編譯,生成可執(zhí)行文件。
接下來要把可執(zhí)行文件下載到目標機上運行,通過bootrom引導(dǎo)目標機,
通過FTP把VxWorks核引導(dǎo)起來,然后把可執(zhí)行文件拷貝到目標機指定的目
錄下,然后指定相應(yīng)的參數(shù),啟動可執(zhí)行文件,如下所示 const char * argv[] = (VataOb/demo', ^-qws NULL};
const char*envp[] = {'QTDIR=/ataOc", *QT_QWS_FONTDIR=/ataOc/qtfonts", NULL}; rtpSpa抑(argv[O], argv, envp, 100, 0x10000, 0, 0);
通過以上操作步驟,完成了圖形應(yīng)用代碼在VxWorks系統(tǒng)下的順利運行, 但代碼的開發(fā)和調(diào)試工作都在windows系統(tǒng)中完成,只需要進行簡單的移植 工作,大大簡化了圖形界面軟件在嵌入式系統(tǒng)中的開發(fā)難度,提高了開發(fā)效 率。同時,基于該方法開發(fā)的代碼具有可移植性,如果需要移植到另外的系 統(tǒng)中,不需要重新編寫代碼,只需要在新環(huán)境中重新編譯即可完成。
本發(fā)明跨操作系統(tǒng)平臺的界面無縫整合方法的實施并不局限于上述操作 系統(tǒng),它可以普遍應(yīng)用到所需要的其它操作系統(tǒng)上來,并且在不同系統(tǒng)上顯 示出同樣的界面風格,此處不再詳述。圖2示出了本發(fā)明跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)系統(tǒng)的示意圖,
該系統(tǒng)包括
1、 操作系統(tǒng)適配模塊,用于與操作系統(tǒng)相關(guān)的API函數(shù)的封裝,基于不 同的操作系統(tǒng)向上提供統(tǒng)一的接口函數(shù)和參數(shù);
2、 圖形顯示支撐模塊,用于圖形的繪制和顯示部分;
3、 網(wǎng)絡(luò)通信模塊,用于網(wǎng)絡(luò)編程中需要的基本功能,包括TCP、 UDP、 HTTP 協(xié)議的封裝;
4、 XML模塊,用于XML文件的解析和生成;
5、 中文輸入法模塊,用于支持中文釆用五筆、全拼、雙拼進行輸入。
本實施例中,實際運行環(huán)境是VxWorks6.5操作系統(tǒng),代碼的編寫、調(diào)試 在windows操作系統(tǒng)上完成,然后平滑移植到VxWorks操作系統(tǒng)上運行。在 windows操作系統(tǒng)上編寫、調(diào)試代碼時,通過設(shè)置環(huán)境參數(shù),如下
QMAKESPEC=win32-msvc2005;
指定開發(fā)工具的位置D:\util\bin;即能在VC2005下進行開發(fā)了,系 統(tǒng)在初始化時,通過環(huán)境參數(shù)知道是指定的windows系統(tǒng),因此在底層調(diào)用 時,操作系統(tǒng)適配模塊將調(diào)用相應(yīng)的windows的封裝函數(shù),能夠順利進行編 譯,圖形的顯示功能通過調(diào)用圖形顯示支持模塊完成,圖形顯示支撐模塊提 供了各種窗口控件,它是通過底層提供的畫點、畫線功能完成的,并不依賴 操作系統(tǒng)提供的各種空間元素,因此在不同的系統(tǒng)中,能顯示出相同的界面風格,在windows系統(tǒng)中的運行效果與其它系統(tǒng)相同,應(yīng)用中如果需要網(wǎng)絡(luò)、 XML、中文輸入功能,相應(yīng)的模塊都能夠提供該功能。
完成代碼在windows系統(tǒng)上的編寫和運行后,需要移植到本實施例的 VxWorks系統(tǒng),通過宏定義
#define —OS—VXWORKS—
明確目標環(huán)境是VxWorks系統(tǒng),同時指定編譯、鏈接工具,通過環(huán)境參 數(shù)設(shè)置完成
export 0SDIR=、pwd /oslayer
export WIND—BASE— PATH:/ho貝e/handscape/vxworks65
e鄧ort WIND—USR=$WINDlBASE—PATH/vxworks~6, 5/target/usr
export PATH=$WIND—BASE—PATH/workbench-2.6/x86—linux2/bin:$PATH
export PATH=$WIND—BASE—PATH/gnu/3. 4. 4ixworks-6. 5/x86-linux2/bin:$PATH
$WIND BASE PATH/wrenv. sh -p vxworks-6. 5
然后進行編譯,此時操作系統(tǒng)適配模塊將根據(jù)宏定義,調(diào)用封裝層內(nèi)的 VxWorks系統(tǒng)的API函數(shù),而不再是封裝層內(nèi)的windows系統(tǒng)的API函數(shù)了, 因此編譯工具將進行相應(yīng)編譯、鏈接工作,生成可執(zhí)行文件,圖形界面的顯 示功能也是由圖形顯示支撐模塊完成,與windows中情況相同,不再贅述, 應(yīng)用中如果需要網(wǎng)絡(luò)、XML、中文輸入功能,也是由相應(yīng)的模塊提供該功能。
本發(fā)明跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)系統(tǒng)并不限于某幾個操作系 統(tǒng),如果需要移植到新的系統(tǒng)上,只需要在操作系統(tǒng)適配模塊中添加相應(yīng)的 操作系統(tǒng)適配層接口,繪圖功能和其它功能都不需要改變即可完成。
權(quán)利要求
1、跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法,其特征在于其步驟如下(1)在桌面操作系統(tǒng)上編寫圖形界面的應(yīng)用代碼,并進行編譯和調(diào)試,應(yīng)用代碼在桌面系統(tǒng)上可運行和顯示;(2)確定應(yīng)用代碼實際要運行的操作系統(tǒng)類型;(3)把應(yīng)用代碼移植到目標環(huán)境相應(yīng)的開發(fā)環(huán)境中進行編譯和鏈接,生成可執(zhí)行文件;(4)在目標環(huán)境中配置環(huán)境參數(shù);(5)在目標環(huán)境中運行可執(zhí)行文件,顯示圖形界面。
2、 根據(jù)權(quán)利要求1所述的跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法,其 特征在于所述應(yīng)用代碼在目標環(huán)境中運行顯示的界面風格和在桌面系統(tǒng)中 調(diào)試運行顯示的界面風格是一致的。
3、 根據(jù)權(quán)利要求1所述的跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法,其 特征在于所述目標環(huán)境相應(yīng)的開發(fā)環(huán)境的搭建具體過程為① 在開發(fā)環(huán)境中設(shè)定環(huán)境變量,指定編譯和鏈接工具的路徑;② 選擇目標環(huán)境對應(yīng)的圖形顯示中間件代碼,進行編譯生成對應(yīng)的庫文件;③ 把應(yīng)用代碼在開發(fā)環(huán)境中進行編譯,生成可執(zhí)行文件。
4、 根據(jù)權(quán)利要求1所述的跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法,其 特征在于所述在目標環(huán)境中配置環(huán)境參數(shù)過程具體為① 配置可執(zhí)行文件需要的庫文件;② 指定可執(zhí)行文件在目標環(huán)境中的路徑和參數(shù)。
5、 一種跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)系統(tǒng),其特征在于包括(1) 操作系統(tǒng)適配模塊,用于與操作系統(tǒng)相關(guān)的API函數(shù)的封裝,基于不 同的操作系統(tǒng)向上提供統(tǒng)一的接口函數(shù)和參數(shù);(2) 圖形顯示支撐模塊,用于圖形的繪制和顯示部分;(3) 網(wǎng)絡(luò)通信模塊,用于網(wǎng)絡(luò)通信所需要的功能;(4) XML模塊,用于XML文件的解析和生成;(5) 中文輸入法模塊,用于支持中文采用五筆、全拼、雙拼進行輸入。
全文摘要
本發(fā)明公開了軟件開發(fā)領(lǐng)域的一種跨桌面和嵌入式系統(tǒng)的圖形界面開發(fā)方法及系統(tǒng),該系統(tǒng)包括操作系統(tǒng)適配模塊、圖形顯示支撐模塊、網(wǎng)絡(luò)通信模塊、XML模塊、中文輸入法模塊。本發(fā)明適用于各種類型的操作系統(tǒng)上圖形界面的開發(fā),包括Windows、Linux、VxWorks、Solaris等。所述的方法是在桌面操作系統(tǒng)上編寫圖形界面的應(yīng)用代碼,編譯后可運行和顯示;不需要修改應(yīng)用代碼即可在目標環(huán)境相應(yīng)的開發(fā)環(huán)境中進行編譯和鏈接,生成可執(zhí)行文件;在目標環(huán)境中運行可執(zhí)行文件即可顯示圖形界面。顯示的界面風格和桌面操作系統(tǒng)是一致的,解決了一套圖形界面的代碼能運行在不同的操作系統(tǒng)上,具有可移植性,提供了軟件開發(fā)效率。
文檔編號G06F9/44GK101630251SQ20091006344
公開日2010年1月20日 申請日期2009年8月5日 優(yōu)先權(quán)日2009年8月5日
發(fā)明者毅 劉, 慧 向, 鑒 李, 李峻林, 恒 趙 申請人:中國船舶重工集團公司第七○九研究所