專利名稱:一種數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)控機(jī)床控制軟件領(lǐng)域,特別涉及一種指軟件界面根據(jù)不同客 戶實(shí)現(xiàn)靈活配置的方法。
背景技術(shù):
制造業(yè)是國(guó)民經(jīng)濟(jì)的基礎(chǔ)產(chǎn)業(yè),制造業(yè)的水平高低是衡量一個(gè)國(guó)家工業(yè)發(fā) 達(dá)程度的重要標(biāo)志。數(shù)控機(jī)床質(zhì)量水平的高低,關(guān)系著國(guó)家制造業(yè)水平的高低。
控制軟件在數(shù)控機(jī)床系統(tǒng)中起著舉足輕重的核心作用,直接影響著機(jī)床性 能、使用壽命等問題。而且控制軟件是數(shù)控機(jī)床與操作員交互的接口,軟件界 面決定了機(jī)床是否容易操作。所以人性化、真實(shí)反映客戶需求的軟件界面不但 可以極大提高操作員的工作效率,而且可以滿足不同客戶、行業(yè)、工作環(huán)境的 需要。然而大部分軟件界面布局、大小、顏色等參數(shù)都是直接寫定在代碼當(dāng)中, 一旦客戶變更需求增加就會(huì)出現(xiàn)大量的界面改動(dòng)工作,再加上界面直接頻繁調(diào) 用內(nèi)核操作代碼,界面的改動(dòng)就會(huì)增加出錯(cuò)機(jī)會(huì)。
因此,我們需要一種使得更改界面不需要改動(dòng)代碼,并且能夠快捷的配置 界面,增加、屏蔽的方法。
發(fā)明內(nèi)容
本發(fā)明的目的是提供了一種數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法,克 服了上述現(xiàn)有技術(shù)中的缺點(diǎn),做到在不改變代碼的情況下快速靈活更改配置文 件就可為客戶提供個(gè)性化界面。
本發(fā)明解決其技術(shù)問題所采取的技術(shù)方案是
一種數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法,其特征在于,它包括如下
(1)根據(jù)數(shù)控機(jī)床控制軟件的功能獨(dú)立性合理劃分軟件界面,為每一個(gè) 部分取一個(gè)段名,并按照樹狀包含關(guān)系組織起來,使界面上每一個(gè)控件都有一個(gè)唯一的段名;
(2) 對(duì)應(yīng)于控制軟件的界面設(shè)計(jì),對(duì)每個(gè)段設(shè)置如大小、位置、字體、 顏色、快捷鍵等的參數(shù);
(3) 按照控制軟件的代碼結(jié)構(gòu)編寫相應(yīng)代碼,用來讀取配置文件中的參 數(shù)并繪制控件;
(4) 需要更改控制軟件的界面時(shí),只需更改相應(yīng)的配置文件中的參數(shù)。 在本發(fā)明的一個(gè)實(shí)施例中,所述配置文件由參數(shù)、用來描述一部分特定界
面的段名和起注釋作用的注釋構(gòu)成。
在本發(fā)明的一個(gè)實(shí)施例中,所述代碼包括具有容納協(xié)調(diào)的作用并將配置文 件中的內(nèi)容和界面窗口粘合起來的CTheme代碼、作為MFC窗口對(duì)象與Theme 的橋梁的Theme窗口代碼、定義窗口的不同界面形態(tài)的CThemelmplementer 代碼、對(duì)象化Theme窗口的OnPaint函數(shù)的CThemePainter代碼及全局CTheme 對(duì)象代碼。
本發(fā)明的數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法,通過配置文件與源代 碼結(jié)合,共同確定界面元素的定位與繪制,從而將界面配置參數(shù)從代碼中分離 出來,繪制界面元素的代碼會(huì)讀取配置文件中的界面參數(shù),更改參數(shù)就可以改 變界面,通過以上方法,成功穩(wěn)定實(shí)現(xiàn)了可配置界面,達(dá)到了預(yù)期效果,使得 在對(duì)不同用戶提供個(gè)性化界面時(shí)只需要修改配置文件,從而大大提高開發(fā)速 度,大幅降低出錯(cuò)概率。
圖1是本發(fā)明的實(shí)施例界面示意圖2是本發(fā)明的CTheme代碼的數(shù)據(jù)結(jié)構(gòu)示意圖3是本發(fā)明的CThemeFormImplementer代碼的數(shù)據(jù)結(jié)構(gòu)示意圖4是本發(fā)明的CThemeFormPainter代碼的數(shù)據(jù)結(jié)構(gòu)示意圖5是本發(fā)明的CThemeData代碼的成員變量示意圖6是本發(fā)明的Theme各成員間的關(guān)系示意圖7是本發(fā)明的CPageFormCtrl類的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解, 下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。
本發(fā)明的數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法,它包括如下步驟
(1) 根據(jù)數(shù)控機(jī)床控制軟件的功能獨(dú)立性合理劃分軟件界面,為每一個(gè) 部分取一個(gè)段名,并按照樹狀包含關(guān)系組織起來,使界面上每一個(gè)控件都有一 個(gè)唯一的段名;
(2) 對(duì)應(yīng)于控制軟件的界面設(shè)計(jì),對(duì)每個(gè)段設(shè)置如大小、位置、字體、 顏色、快捷鍵等的參數(shù);
(3) 按照控制軟件的代碼結(jié)構(gòu)編寫相應(yīng)代碼,用來讀取配置文件中的參 數(shù)并繪制控件;
(4) 需要更改控制軟件的界面時(shí),只需更改相應(yīng)的配置文件中的參數(shù)。 實(shí)施例
在本實(shí)施例中,以軟件NcStudio為例,其界面劃分如圖1所示。采用樹 狀結(jié)構(gòu)劃分界面,其中main代表整個(gè)界面,將main劃分為panel、 layout、 bar 三部分,再將layout劃分為top、 switch、 bottom。
配置文件格式及內(nèi)容
設(shè)置.ini配置文件來描述整個(gè)界面。配置文件的格式為 參數(shù)(Parameter)
參數(shù)是配置文件的一個(gè)基本要素,它由參數(shù)名和參數(shù)值組成,中間用等號(hào) 連接,如name-value。參數(shù)名一般由一些意義明確的英文單詞,如
dim (-dimension)這個(gè)參數(shù)等號(hào)后的參數(shù)值指定了該控件在界面中顯示 的大小
style:指定按鈕的顯示風(fēng)格,其值有以下幾種 t (=text) 文字方式; r (=rtf) rtf文件方式; m (=usememdc);
d(= disable)不可見,但還占一塊地,可以與上述幾個(gè)搭配成一組,如dt。
group:指定按鈕的樣式,其參數(shù)值是group.ini文件的段名,也就是說樣 式是group.ini文件中定義的。 text:按鈕上顯示的文字。 txtfile:指定rtf文件。 acckey:快捷鍵。
tagtxt:按鈕上的上標(biāo)文字,如F1、 F2等。 tagheight: tag文字所占位置的大小。
bg (=tag button group): tag按鈕中tag的文字的顯示樣式,值也是個(gè)group 段名。
段名(Section)
幾個(gè)參數(shù)可以組成一段,用來描述一部分特定的界面。段名在文件中必須 是唯一的,且段名自成一行,放于方括號(hào)中。所有段名后的參數(shù)都屬于這一組, 直到另一段名的出現(xiàn)或文件結(jié)束。
段名是由一連串由點(diǎn)相連的字符組成,從段名中可以清楚知道該段是對(duì)哪 個(gè)部分進(jìn)行描述的,如 描述的是layout頁面下top中的按鈕的顯示信息 描述的是bar頁面下mode的顯示信息panel頁面下的top欄的顯示信息
注釋(Comment)
在配置文件中用分號(hào)進(jìn)行注釋,一行中分號(hào)后的語句起注釋作用,程序不讀 取。如
j comment text
下列是配置文件的一段示例
;last modified 1 April 2001 by John Doe [owner]
name=John Doe organization=Acme Products [database]serve產(chǎn)l92.0.2.42 ; use IP address in case network name resolution is not working
port=143
file=" acmepayroll.dat"
配置文件中的額外信息
<LANG—CHNx/LANG—CHN〉和〈LANG—ENG></LANG—ENG〉是perl程 序翻譯時(shí)的語言標(biāo)識(shí)。前一對(duì)標(biāo)識(shí)中文界面時(shí)的theme,后一對(duì)標(biāo)識(shí)英文theme。 配置文件的功能劃分
依照上述配置文件的格式及對(duì)NcStudio界面的劃分,我們定義了下列配 置文件
這是最底一層,包括了 bar layout panel,這三大塊的位
Theme_main.ini 置和樣式進(jìn)行配置 Theme_bar.ini Theme_lay.ini Theme_panel.ini
配置bar顯示區(qū)中的信息 配置lay顯示區(qū)中顯示的按鈕的位置 配置panel中顯示的內(nèi)容 Lay_log_form.ini Lay_offset_form.ini Lay_para—form.ini
Lay_pos_form.ini Lay_prog_form.ini Lay—sys_form.ini 描述各控件的狀態(tài), 包括顏色、字體等
在程序編譯后peri程序會(huì)將上述提到的幾個(gè).ini文件翻譯成兩個(gè)文件 chn/gray.theme禾口 eng/gray.theme,禾艮據(jù)i吾言禾示i只放于兩個(gè)不同目錄下。
THEME代碼實(shí)現(xiàn)
在Theme代碼的框架結(jié)構(gòu)中包括幾個(gè)基礎(chǔ)類,它們是CTheme, CThemelmplementer, CThemePainter, CThemeData, Theme窗口類。其中CTheme 有容納協(xié)調(diào)的作用,它將配置文件中的內(nèi)容和Theme窗口粘合起來。Theme 窗口類是MFC窗口對(duì)象與Theme的橋梁。CThemelmplementer定義了窗口的 不同界面形態(tài)。CThemePainter對(duì)象化了 Theme窗口的OnPaint函數(shù)。全局只 有一個(gè)CTheme對(duì)象,由NcCtrl在動(dòng)態(tài)鏈接庫(kù)的初始化過程中調(diào)用函數(shù)在堆中 創(chuàng)建。CTheme結(jié)構(gòu)分析
CTheme類容納了 CThemelmplementor禾Q CThemePainter,讀取theme文 件中的數(shù)據(jù),產(chǎn)生CThemeData數(shù)據(jù),再調(diào)用CThemePainter繪制窗口 。如圖 2所示,為其關(guān)鍵數(shù)據(jù)結(jié)構(gòu)與功能函數(shù)。
將類CTheme包含CThemelmplementor,用來讀取配置文件內(nèi)容,并用 CThemePainter繪制;
定義m_mapRegister,將CThemeData即繪制信息與界面關(guān)聯(lián);
定義m_maplmplementor, 將字符串與CThemelmplementor相關(guān)聯(lián),只要 配置文件指定了正確的字符串,就能找到正確的CThemelmplementor類;
定義函數(shù)Register通過用戶注冊(cè)的名字與用戶注冊(cè)的窗口相關(guān)聯(lián);
定義函數(shù)Registerlmplementor,由NcCtrl的dll初始化函數(shù)調(diào)用,以注冊(cè) 系統(tǒng)中的Themelmplementor;
定義函數(shù)GetDiscription從配置文件中讀取指定窗口的配置信息;
定義函數(shù)ScanDim,由各注冊(cè)窗口在LoadTheme消息響應(yīng)函數(shù)里調(diào)用, 從配置文件中相應(yīng)窗口描述文本中獲取窗口的位置信息;
定義函數(shù)LoadTheme查找注冊(cè)窗口的ThemeData,產(chǎn)生ThemePainter對(duì) 象,將其地址賦給ThemeData成員;
定義函數(shù)DrawTheme,査找注冊(cè)窗口對(duì)應(yīng)的CThemeData項(xiàng),調(diào)用 CThemePainter指針繪制界面。
CThemelmplementer結(jié)構(gòu)分析
CThemelmplementer有CThemeFormlmplementer, CThemeButtonImplenter, CThemeFilePosImplementer, ClinearSliderImplementer, CTagButtonlmplementer 幾個(gè)具體類。它自身由CObject類派生而來,用來封裝要繪制的對(duì)象。同樣一 個(gè)窗口類可以有不同的Implementer,可以實(shí)現(xiàn)完全不同的界面風(fēng)格。例如在 CThemeFormlmplementer中它一方面與CFormGroup協(xié)作封裝了同一類實(shí)現(xiàn)者 的不同風(fēng)格組,另外又通過成員函數(shù)獲得相應(yīng)CFormPainter接口指針,如圖3 所示。
設(shè)計(jì)基類CThemelmplementor,提供基本的獲取配置信息、繪制控件的接通過繼承類CThemelmplementor,設(shè)計(jì)編寫CThemeButtonlmplementor、 CFormlmplementor等類,用來具體實(shí)現(xiàn)獲取按鈕、頁面等控件的配置信息及繪 制函數(shù)。
CThemePainter結(jié)構(gòu)分析
ThemePainter用于Implementer的繪制。每個(gè)具體的Implementer都有一個(gè) 對(duì)應(yīng)的Painter。其中Draw函數(shù)調(diào)用CTheme成員繪制,居于該類的核心位置。 如圖4所示。
設(shè)計(jì)類CThemePainter用來繪制、顯示、清除控件;
在類CThemelmplementor中應(yīng)用CThemePainter來繪制具體的控件。
Theme窗口分析
窗口類有CThemeButton及CThemeForm。除了窗口類的通用功能外,它 們還在初始化和切換Theme時(shí)完成Theme的載入,并在OnPaint函數(shù)里調(diào)用 ThemePainter完成窗口的繪制。
CThemeData結(jié)構(gòu)
CThemeData類中定義了四個(gè)成員變量。如圖5所示 如圖6顯示了 Theme代碼各個(gè)類之間的關(guān)系。
Theme的切換
CPageFormCtrl類使用Theme的數(shù)據(jù)輸入功能完成頁面切換的管理,其自 身并不繪制,只是作為一個(gè)容器類存在,如圖7所示。
為CPageFormCtrl定義函數(shù)LoadTheme,構(gòu)建各頁面的PAGEDATA數(shù)據(jù); 定義函數(shù)SetPage用來顯示某一頁;
定義函數(shù)ScanVWARRAY,從配置文件中掃描各頁面有哪些可視子窗口 , 并將其存放在數(shù)組中,由LoadTheme調(diào)用。
而Theme的切換由bool CThemeManagerTarget::SetActiveThemeIndex(int nlndex)調(diào)用CTheme::SetActiveThemeFileName(LPCTSTRpszNameJ完成,后者釋放舊 數(shù)據(jù)并載入新數(shù)據(jù)。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè) 的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中 描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明 還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi),本 發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。
權(quán)利要求
1、一種數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法,其特征在于,它包括如下步驟(1)根據(jù)數(shù)控機(jī)床控制軟件的功能獨(dú)立性合理劃分軟件界面,為每一個(gè)部分取一個(gè)段名,并按照樹狀包含關(guān)系組織起來,使界面上每一個(gè)控件都有一個(gè)唯一的段名;(2)對(duì)應(yīng)于控制軟件的界面設(shè)計(jì),對(duì)每個(gè)段設(shè)置如大小、位置、字體、顏色、快捷鍵等的參數(shù);(3)按照控制軟件的代碼結(jié)構(gòu)編寫相應(yīng)代碼,用來讀取配置文件中的參數(shù)并繪制控件;(4)需要更改控制軟件的界面時(shí),只需更改相應(yīng)的配置文件中的參數(shù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述配置文件由參數(shù)、用 來描述一部分特定界面的段名和起注釋作用的注釋構(gòu)成。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述代碼包括具有容納協(xié) 調(diào)的作用并將配置文件中的內(nèi)容和界面窗口粘合起來的CTheme代碼、作為 MFC窗口對(duì)象與Theme的橋梁的Theme窗口代碼、定義窗口的不同界面形態(tài) 的CThemelmplementer代碼、對(duì)象化Theme窗口的OnPaint函數(shù)的 CThemePainter代碼及全局CTheme對(duì)象代碼。
全文摘要
本發(fā)明公開了一種數(shù)控機(jī)床控制軟件實(shí)現(xiàn)可配置界面的方法,通過配置文件與源代碼結(jié)合,共同確定界面元素的定位與繪制,從而將界面配置參數(shù)從代碼中分離出來,繪制界面元素的代碼會(huì)讀取配置文件中的界面參數(shù),更改參數(shù)就可以改變界面,通過以上方法,成功穩(wěn)定實(shí)現(xiàn)了可配置界面,達(dá)到了預(yù)期效果,使得在對(duì)不同用戶提供個(gè)性化界面時(shí)只需要修改配置文件,從而大大提高開發(fā)速度,大幅降低出錯(cuò)概率。
文檔編號(hào)G05B19/18GK101661279SQ20091019606
公開日2010年3月3日 申請(qǐng)日期2009年9月22日 優(yōu)先權(quán)日2009年9月22日
發(fā)明者湯同奎, 偉 齊 申請(qǐng)人:上海奈凱電子科技有限公司;上海維宏電子科技有限公司