專利名稱:嵌入式軟件界面實現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信領(lǐng)域,尤其涉及一種嵌入式軟件界面實現(xiàn)方法及系統(tǒng)。
背景技術(shù):
根據(jù)IEEE (電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助系統(tǒng)、機器和設(shè)備運行的系統(tǒng)”。目前國內(nèi)一個普遍被認同的定義是以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。目前常用的嵌入式GUI系統(tǒng)包括Mini GU、QT/Embedded和Micro Windows。這幾種GUI系統(tǒng)中,都可以移植到多種體系結(jié)構(gòu)的處理器上。其中QT/Embedded采用C++接口的 API,只能支持標準Linux ;Micro Windows采用類似Win32的API接口,除了標準Linux還可以在uC Linux上運行;Mini⑶I也采用類似Win32的API接口,它的移植性更好,除了標準 Linux 和 uCLinux 外,還支持 uC/OS、V xfforks, eCos 等操作系統(tǒng)。QT/E 和 MicroWindows 來自對桌面電腦上Linux的GUI系統(tǒng)的演化,而MiniGUI是專門為嵌入式系統(tǒng)設(shè)計的,與其他幾種GUI系統(tǒng)相比,MiniGUI在嵌入式系統(tǒng)領(lǐng)域更具有性能的優(yōu)勢。嵌入式軟件常常需要應(yīng)用不同的顯示器大小及比例,通常情況下針對新的顯示大小及比例,往往需要重新更改界面程序,修改窗口布局并重新編譯生成執(zhí)行文件,這不僅增加了工作量,還使軟件被迫生成若干個版本,增加了版本管理的難度以及增加了出現(xiàn)差錯的機率。所以現(xiàn)有的嵌入式軟件的顯示界面無法應(yīng)用在不同的大小及比例的顯示器中。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種嵌入式軟件界面實現(xiàn)方法,旨在解決現(xiàn)有的嵌入式軟件的顯示界面無法應(yīng)用在不同的大小及比例的顯示器的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種嵌入式軟件界面實現(xiàn)方法,所述方法包括在嵌入式軟件界面的資源文件中加載可縮放矢量圖形SVG ;擴展該SVG的統(tǒng)一資源標識符URI的擴展屬性,使得用戶能夠通過URI擴展對指定的URI對應(yīng)的軟件界面的大小進行任意調(diào)整。本發(fā)明還提供一種嵌入式系統(tǒng),所述系統(tǒng)包括加載單元,用于在嵌入式軟件界面的資源文件中加載可縮放矢量圖形SVG ;擴展單元,與該加載單元連接,用于擴展該SVG的統(tǒng)一資源標識符URI的擴展屬性,使得用戶能夠通過URI擴展對指定的URI對應(yīng)的軟件界面的大小進行任意調(diào)整。在本發(fā)明實施例中,本發(fā)明提供的技術(shù)方案能很方便的對嵌入式軟件界面進行可視化設(shè)計,能達到完全“所見即所得”的顯示效果;當顯示器的大小或比例發(fā)生變化時,不需要修改可執(zhí)行程序,僅需對資源文件進行修改即可;可以基于此方案方便的實現(xiàn)嵌入式軟件界面的皮膚更換,風格切換等。這些都將顯著提高嵌入式軟件界面的開發(fā)進度及設(shè)計效果,減少不必要軟件的版本分支,降低軟件維護環(huán)節(jié)的成本和風險。。
圖1是本發(fā)明具體實施方式
提供的一種嵌入式軟件界面實現(xiàn)方法的流程圖;圖2是本發(fā)明具體實施方式
還提供一種嵌入式的SVG的軟件構(gòu)架圖;圖3是本發(fā)明具體實施方式
提供的一種嵌入式系統(tǒng)結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供的一種嵌入式軟件界面實現(xiàn)方法,該方法由嵌入式系統(tǒng)完成,該方法如圖1所示,包括S11、在嵌入式軟件界面的資源文件中加載可縮放矢量圖形(Scalable Vector Graphics, SVG);Si2、擴展該 SVG 的統(tǒng)一資源標識符(Uniform Resource Identifier, URI)的擴展屬性,使得用戶能夠通過URI擴展對指定的URI對應(yīng)的軟件界面的大小進行任意調(diào)整。本發(fā)明提供的方法通過對SVG擴展URI擴展屬性來顯示軟件界面大小的任意調(diào)
iF. ο需要說明的是,各個SVG元素中都有自己特有的屬性(其語法規(guī)范文件在MM;// www. w3. orR/Graphics/SVG/1. 1/DTD/svrr11. dtd 中定義),如:ellipse 是 SVG 中的橢圓對象元素,其定義有cx/cy/rx/ry等幾個屬性分別表示橢圓中心點的X坐標/Y坐標/橫向半徑/縱向半徑,通過向SVG文檔中添加uri屬性并根據(jù)一定的規(guī)則將每個需要操作的元素配置一個URI,這個URI必須保證全局唯一,這樣就唯一確保了這個元素的唯一性,應(yīng)用程序可以通過此URI訪問、修改其屬性以及動作消息回調(diào)以達到用戶程序與SVG的實時交互??蛇x的,上述方法在S12之后還可以包括通過該URI擴展屬性對該軟件界面內(nèi)的指定URI元素進行訪問,以調(diào)整該URI元素的顯示風格以及顯示屬性。另外,上述SVG的軟件構(gòu)架如圖2所示。可選的,上述方法在S12之后還可以包括通過SVG中的YsWnd/YsDC實現(xiàn)將上層程序與底層圖形引擎的分離,以實現(xiàn)不同設(shè)備平臺之間的轉(zhuǎn)換。上述不同設(shè)備平臺具體可以為ARM、PowerPC和X86平臺的Linux平臺??蛇x的,上述方法在S12之后還可以包括SVG中的CYs Svg Document類用于SVG文檔的 解析、保存以及字符集的轉(zhuǎn)換,加載 SVG各對象元素(例如CYsSvgObject)并生成對象樹。按SVG規(guī)范定義對象為以下幾種enum SVG—TYPE {
TYPE—SVG,//根對象
TYPE—GROUP, //SVG 組 TYPE—RECT,//區(qū)域
TYPE—TEXT,//文字
TYPE—ELLIPSE, //橢圓 TYPE—LINE,//直線
TYPE—POLYLINE, //折線 TYPE—PATH,//路徑
TYPE—PIC,//圖片
TYPE—UNKNOWN //未知
};可選的,上述方法在S12之后還可以包括通過SVG內(nèi)的CYsSvgPainter類用于各用SVG對象的繪制。其主要的繪制定義如下void DrawRect (YsBaseDC*pDC, CYsSvgObject^pObj, int χ = 0, int y = 0);void DrawSvgText(YsBaseDC氺pDC,CYsSvgObject^pObj, int χ = 0,inty = 0);void DrawEllipse (YsBaseDOpDC,CYsSvgOb ject*p0bj,int χ = 0,int y = 0);void DrawLine (YsBaseDC*pDC, CYsSvgObject^pObj, int χ = 0, int y = 0);void DrawPolyLine(YsBaseDC*pDC,CYsSvgObject^pObj,int χ = 0,inty = 0);void DrawPath(YsBaseDC氺pDC,CYsSvgObject^pObj, int χ = 0, int y = 0);void DrawPic (YsBaseDC氺pDC,CYsSvgObject^pObj, int χ = 0, int y = 0);其中,YsBaseDC類為YsDC的父類,用于定義函數(shù)接口形式。以上接口分別用于繪制區(qū)域、文字、橢圓、直線、折線、路徑和圖片,SVG根是一個組合對象,內(nèi)部可包含若干SVG對象元素,也可以包含另一個組(組可以嵌套)。因此,在繪制一個對象時,根據(jù)其類型(SVGjYPE)不同,選擇不同的繪制接口,當繪制組元素時,則需要遍歷其中的所有子元素,并對子元素中可能存在的組元素進行遞歸繪制。上述調(diào)整方式允許在不修改界面可執(zhí)行程序的前提下,任意修改SVG資源文件的布局、顯示風格以實現(xiàn)對界面的調(diào)整,該SVG文件可以通過專用的SVG編輯工具進行方便的可視化編輯。采用本發(fā)明的方法可以很方便的對嵌入式軟件界面進行可視化設(shè)計,能達到完全 “所見即所得”的顯示效果;當顯示器的大小或比例發(fā)生變化時,不需要修改可執(zhí)行程序,僅需對資源文件進行修改即可;可以基于此方案方便的實現(xiàn)嵌入式軟件界面的皮膚更換,風格切換等。這些都將顯著提高嵌入式軟件界面的開發(fā)進度及設(shè)計效果,減少不必要軟件的 版本分支,降低軟件維護環(huán)節(jié)的成本和風險。本發(fā)明還提供一種嵌入式系統(tǒng),該系統(tǒng)如圖3所示,包括加載單元31,用于在嵌入式軟件界面的資源文件中加載可縮放矢量圖形SVG ;擴展單元32,與該加載單元31連接,用于擴展該SVG的統(tǒng)一資源標識符(UniformResource Identifier,URI)的擴展屬性,使得用戶能夠通過URI擴展對指定的URI對應(yīng)的軟件界面的大小進行任意調(diào)整??蛇x的,上述擴展單元32,還用于通過該URI擴展屬性對該軟件界面內(nèi)的指定URI 元素進行訪問,以調(diào)整該URI元素的顯示風格以及顯示屬性可選的,上述系統(tǒng)還可以包括分離轉(zhuǎn)換單元33,與加載單元31連接,用于通過SVG中的YsWnd/YsDC實現(xiàn)將上層程序與底層圖形引擎的分離,以實現(xiàn)不同設(shè)備平臺之間的轉(zhuǎn)換。文檔處理單元34,與加載單元31連接,用于通過SVG中的CYs Svg Document類用于SVG文檔的解析、保存以及字符集的轉(zhuǎn)換,加載SVG各對象元素(例如CYsSvgObject)并生成對象樹。繪制單元35,與加載單元31連接,用于通過SVG內(nèi)的CYsSvgPainter類用于各用 SVG對象的繪制。采用本發(fā)明的系統(tǒng)可以很方便的對嵌入式軟件界面進行可視化設(shè)計,能達到完全 “所見即所得”的顯示效果;當顯示器的大小或比例發(fā)生變化時,不需要修改可執(zhí)行程序,僅需對資源文件進行修改即可;可以基于此方案方便的實現(xiàn)嵌入式軟件界面的皮膚更換,風格切換等。這些都將顯著提高嵌入式軟件界面的開發(fā)進度及設(shè)計效果,減少不必要軟件的版本分支,降低軟件維護環(huán)節(jié)的成本和風險。本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、 系統(tǒng)和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種嵌入式軟件界面實現(xiàn)方法,其特征在于,所述方法包括 在嵌入式軟件界面的資源文件中加載可縮放矢量圖形SVG ;擴展該SVG的統(tǒng)一資源標識符URI的擴展屬性,使得用戶能夠通過URI擴展對指定的 URI對應(yīng)的軟件界面的大小進行任意調(diào)整。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在進行任意調(diào)整之后還包括 通過該URI擴展屬性對該軟件界面內(nèi)的指定URI元素進行訪問,以調(diào)整該URI元素的顯示風格以及顯示屬性。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在進行任意調(diào)整之后還包括 通過SVG中的YsWnd/YsDC實現(xiàn)將上層程序與底層圖形引擎的分離,以實現(xiàn)不同設(shè)備平臺之間的轉(zhuǎn)換。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在進行任意調(diào)整之后還包括 通過SVG中的CYs Svg Document類用于SVG文檔的解析、保存以及字符集的轉(zhuǎn)換,力口載SVG各對象元素(例如CYsSvgObject)并生成對象樹。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在進行任意調(diào)整之后還包括 通過SVG內(nèi)的CYsSvgPainter類用于各用SVG對象的繪制。
6.一種嵌入式系統(tǒng),其特征在于,所述系統(tǒng)包括加載單元,用于在嵌入式軟件界面的資源文件中加載可縮放矢量圖形SVG ; 擴展單元,與該加載單元連接,用于擴展該SVG的統(tǒng)一資源標識符URI的擴展屬性,使得用戶能夠通過URI擴展對指定的URI對應(yīng)的軟件界面的大小進行任意調(diào)整。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述擴展單元,還用于通過該URI擴展屬性對該軟件界面內(nèi)的指定URI元素進行訪問,以調(diào)整該URI元素的顯示風格以及顯示屬性。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括分離轉(zhuǎn)換單元,與加載單元連接,用于通過SVG中的YsWnd/YsDC實現(xiàn)將上層程序與底層圖形引擎的分離,以實現(xiàn)不同設(shè)備平臺之間的轉(zhuǎn)換。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括文檔處理單元,與加載單元連接,用于通過SVG中的CYs Svg Document類用于SVG文檔的解析、保存以及字符集的轉(zhuǎn)換,加載SVG各對象元素(例如CYsSvgObject)并生成對象樹。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括繪制單元,與加載單元連接,用于通過SVG內(nèi)的CYsSvgPainter類用于各用SVG對象的繪制。
全文摘要
本發(fā)明適用于通信領(lǐng)域,提供了一種嵌入式軟件界面實現(xiàn)方法及系統(tǒng),該方法包括在嵌入式軟件界面的資源文件中加載可縮放矢量圖形SVG;擴展該SVG的統(tǒng)一資源標識符URI的擴展屬性,使得用戶能夠通過URI擴展對指定的URI對應(yīng)的軟件界面的大小進行任意調(diào)整。本發(fā)明提供的技術(shù)方案具有任一調(diào)整軟件界面大小的優(yōu)點。
文檔編號G06F9/44GK102331933SQ20111030014
公開日2012年1月25日 申請日期2011年9月30日 優(yōu)先權(quán)日2011年9月30日
發(fā)明者嚴永生, 邵凱田 申請人:南京航天銀山電氣有限公司