一種基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法
【專利摘要】本發(fā)明提供一種基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法,步驟一:生成顯示窗口;步驟二:根據(jù)主窗口提供的菜單生成不同的可編程儀器命令集;步驟三:手動(dòng)配置各子系統(tǒng)命令類型、助記符類型、參數(shù)類型;步驟四:按照不同子系統(tǒng)命令,自動(dòng)生成可編程儀器命令處理函數(shù)。采用上述方案,可以根據(jù)使用者不同的需求,提供不同的命令生成方式以滿足用戶不同的需要,且編輯界面示意清晰,編輯方式簡(jiǎn)單。
【專利說(shuō)明】一種基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于智能儀器軟件中的基于圖形界面處理的【技術(shù)領(lǐng)域】,尤其涉及的是一種基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的飛速發(fā)展,各種智能儀器的復(fù)雜程度日益提高,自動(dòng)測(cè)試系統(tǒng)已逐步應(yīng)用于各類產(chǎn)品研制、生成、維護(hù)等各個(gè)階段。程控功能已成為所有現(xiàn)代通用測(cè)試儀器必不可少的重要接口功能模塊。因此,在各類儀器中,穩(wěn)定可靠的程控功能是非常重要的。但是現(xiàn)代儀器功能的復(fù)雜性必然給程控模塊的設(shè)計(jì)帶來(lái)了諸多問(wèn)題,如命令種類繁多添加命令工作量大且易出錯(cuò),儀器功能改變后即面臨程控命令的增刪等,因此合理設(shè)計(jì)程控命令的生成方式逐漸成為現(xiàn)代智能儀器軟件設(shè)計(jì)關(guān)注的重要環(huán)節(jié)。
[0003]目前,已有的儀器程控命令生成方法主要有以下兩種:一種是采用程控命令內(nèi)嵌入應(yīng)用軟件中的方式,這種方法將程控命令生成以鏈表的形式設(shè)計(jì)為SCPI命令解釋器的一部分,即通過(guò)復(fù)雜的鏈表數(shù)據(jù)結(jié)構(gòu)將SCPI標(biāo)準(zhǔn)命令關(guān)鍵字、參數(shù)節(jié)點(diǎn)與底層處理函數(shù)鏈接起來(lái),具體流程為:命令鏈表結(jié)構(gòu)-命令根節(jié)點(diǎn)信息-命令各層節(jié)點(diǎn)信息-參數(shù)節(jié)點(diǎn)信息-處理函數(shù)信息。
[0004]另一種方法是將所有的SCPI命令包括參數(shù)信息整理至一個(gè)文件中,儀器軟件執(zhí)行時(shí)將該命令文件讀入,利用樹(shù)型結(jié)構(gòu)保存輸入命令信息,對(duì)于命令所帶的參數(shù),則采用參數(shù)鏈表的方式保存每個(gè)參數(shù)狀態(tài),每個(gè)命令處理函數(shù)則由應(yīng)用程序設(shè)計(jì)生成,具體流程為:生成文檔(txt / doc等)-將命令輸入文檔-將參數(shù)信息輸入文檔-命令處理函數(shù)在應(yīng)用程序生成。
[0005]對(duì)于將程控命令內(nèi)嵌入應(yīng)用軟件的方法,主要缺點(diǎn)是:
[0006]1、數(shù)據(jù)結(jié)構(gòu)復(fù)雜,建立命令列表時(shí),命令節(jié)點(diǎn)信息時(shí)按不同層次將不同級(jí)命令節(jié)點(diǎn)信息分別填入鏈表中,比較繁瑣。
[0007]2、增加或刪除命令信息時(shí),需重新對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行梳理,增加新的節(jié)點(diǎn)信息或刪除原來(lái)的鏈表節(jié)點(diǎn)信息,容易出錯(cuò),不符合應(yīng)用軟件易修改性及易維護(hù)性的原則。
[0008]3、由于鏈表節(jié)點(diǎn)眾多,結(jié)構(gòu)復(fù)雜,該方法易用性不強(qiáng),可移植性較差。
[0009]對(duì)于采用命令文件方式保存SCPI命令的方法,主要缺點(diǎn)是:
[0010]1、需設(shè)計(jì)者將所有命令信息、參數(shù)信息手工輸入文件中,增加很大工作量,且容易出錯(cuò)。
[0011]2、命令文檔增加或刪除文檔后,還要相應(yīng)增刪應(yīng)用程序中相對(duì)應(yīng)的命令處理函數(shù),效率比較低。
[0012]因此,現(xiàn)有技術(shù)存在缺陷,需要改進(jìn)。
【發(fā)明內(nèi)容】
[0013]基于現(xiàn)有技術(shù)的不足,本發(fā)明的主要目的在于提供一種新的SCPI標(biāo)準(zhǔn)命令編輯界面及命令生成方法,該方法基于窗口、控件、菜單:首先創(chuàng)建一個(gè)Windows里經(jīng)典的窗口程序,保證提供一個(gè)使用者認(rèn)知度很高的軟件界面;其次,界面按照使用者需要提供命令編輯、命令生成、命令瀏覽等窗口,信息顯示豐富,功能突出;最后,使用者還可以根據(jù)自己所需生成不同格式的命令文件,以及按照使用者要求生成處理函數(shù)文件的能力。
[0014]本發(fā)明的技術(shù)方案如下:其特征在于,其包括以下步驟:
[0015]步驟一:生成顯示窗口;
[0016]步驟二:根據(jù)主窗口提供的菜單選擇生成SCPI命令集;
[0017]步驟三:手動(dòng)配置各子系統(tǒng)命令類型、助記符類型、參數(shù)類型;
[0018]步驟四:按照不同子系統(tǒng)命令,自動(dòng)生成SCPI命令處理函數(shù);
[0019]優(yōu)選地,所述步驟一具體包括:
[0020]11:主窗口,用于提供數(shù)據(jù)初始化,生成命令樹(shù)類,用于應(yīng)用和存儲(chǔ)命令的屬性、處
理函數(shù)信息。
[0021]12:命令編輯窗口,用于接收并顯示用戶手動(dòng)輸入的命令、參數(shù)節(jié)點(diǎn)信息添加、命令顯示服務(wù)等,并存儲(chǔ)到命令結(jié)構(gòu)體數(shù)組中;
[0022]13:命令樹(shù)窗口用于顯示所有SCPI標(biāo)準(zhǔn)命令,包括助記符、命令類型、參數(shù)類型
坐寸ο
[0023]優(yōu)選地,所述步驟二具體包括:
[0024]21:按照SCPI99規(guī)范要求自動(dòng)生成儀器不同功能單元子系統(tǒng)的標(biāo)準(zhǔn)命令,并根據(jù)其功能生成命令樹(shù)結(jié)構(gòu),并將命令類型、左孩子節(jié)點(diǎn)序號(hào)、相鄰兄弟節(jié)點(diǎn)序號(hào)、參數(shù)類型、節(jié)點(diǎn)信息存入節(jié)點(diǎn)類指針對(duì)象中;
[0025]22:用戶可在命令樹(shù)窗口中通過(guò)鼠標(biāo)自行創(chuàng)建節(jié)點(diǎn),并通過(guò)消息響應(yīng)函數(shù),實(shí)現(xiàn)命令樹(shù)窗口與命令編輯窗口的通信;
[0026]優(yōu)選地,所述步驟三具體包括:
[0027]31:通過(guò)實(shí)現(xiàn)控件類0N_EN_CHANGE、TVN_SELCHANGED的消息響應(yīng)函數(shù),實(shí)現(xiàn)命令樹(shù)窗口與命令編輯窗口通信以及實(shí)時(shí)顯示并處理、存儲(chǔ)用戶輸入的助記符類型、參數(shù)類型等節(jié)點(diǎn)信息;
[0028]32:填充節(jié)點(diǎn)類數(shù)據(jù)結(jié)構(gòu)中命令索引、類型、擴(kuò)展標(biāo)記等信息。
[0029]優(yōu)選地,所述步驟四具體包括:
[0030]41:所述可編程儀器標(biāo)準(zhǔn)命令處理函數(shù)文件為頭文件及源文件,所述頭文件包含了所述源文件中用到的函數(shù)和宏定義;所述頭文件為不可編譯文件;所述源文件為可編譯文件;
[0031]42利用微軟基礎(chǔ)類庫(kù)(MFC)提供的CString對(duì)象將命令樹(shù)中每條命令助記符字符串連接成為函數(shù)名,并完成函數(shù)定義及聲明的編寫,填充命令處理函數(shù)指針數(shù)組,實(shí)現(xiàn)可編程儀器命令處理函數(shù)的生成。
[0032]采用上述方案,首先,可以根據(jù)使用者不同的需求,提供不同的命令生成方式以滿足用戶不同的需要,且編輯界面示意清晰,編輯方式簡(jiǎn)單。其次,可編程儀器標(biāo)準(zhǔn)命令的生成方法,可以根據(jù)使用者要求自動(dòng)生成部分代碼,以減少軟件開(kāi)發(fā)工作量。此外,本發(fā)明還可以導(dǎo)入用戶已經(jīng)匯總的命令文檔,并提供給使用者文檔再編輯的功能。最后,與現(xiàn)有可編程儀器命令生成方式相比,在直觀性和效率上較之前有提高?!緦@綀D】
【附圖說(shuō)明】
[0033]圖1為本發(fā)明的結(jié)構(gòu)示意圖。
[0034]圖2為本發(fā)明基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法實(shí)施例的流程圖。【具體實(shí)施方式】
[0035]以下結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0036]如圖1所示,以創(chuàng)建、配置頻率子系統(tǒng)命令集為例說(shuō)明本技術(shù)方案實(shí)施過(guò)程,本發(fā)明基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法包括以下步驟:
[0037]1:生成顯示窗口,其中主窗口 101作為命令編輯窗口 103、命令樹(shù)窗口 102的父窗口來(lái)創(chuàng)建,交互界面如圖1所示。
[0038]2:根據(jù)當(dāng)前需要?jiǎng)?chuàng)建配置頻率子系統(tǒng),如圖2所示在命令樹(shù)窗口 102中利用MFC提供的CTreeCtrl類添加頻率子系統(tǒng)下節(jié)點(diǎn)信息。具體的,在頻率子系統(tǒng)下添加設(shè)置點(diǎn)頻、各種掃描類型起始、終止頻率、頻率偏置、頻率步進(jìn)等節(jié)點(diǎn)信息。進(jìn)一步而言,圖2中,201讀取命令文檔;202選擇手動(dòng)或自動(dòng)生成頻率子系統(tǒng),如選擇手動(dòng)進(jìn)入203,如選擇自動(dòng)進(jìn)入204 ;203手動(dòng)配置頻率子系統(tǒng)命令和/或參數(shù);204生成格式命令文檔及生成可編程儀器標(biāo)準(zhǔn)命令處理函數(shù)文件。
[0039]3:在命令編輯窗口 103中,對(duì)每一葉子節(jié)點(diǎn)對(duì)應(yīng)的信息進(jìn)行編輯。具體的,對(duì)其命令類型、參數(shù)類型(包括離散參數(shù)具體的離散值)、函數(shù)號(hào)、助記符可否省略標(biāo)志等信息。
[0040]4:利用主窗口 101提供菜單創(chuàng)建命令處理函數(shù)。
[0041]優(yōu)選地,步驟I具體包括:
[0042]11:創(chuàng)建子窗口、完成各種窗口拆分工作,創(chuàng)建各種菜單,創(chuàng)建SCPI命令類對(duì)象數(shù)組,并完成類對(duì)象數(shù)組數(shù)據(jù)成員初始化。
[0043]12:并判斷當(dāng)前是否有可用命令文檔,若有則使用MFC提供的CArchive類將其取出并與CTreeCtrl類控件相關(guān)聯(lián),并將其存入節(jié)點(diǎn)數(shù)組中。
[0044]優(yōu)選地,步驟3具體包括:
[0045]31:在命令編輯窗口 103中添加編輯框、單選框、復(fù)選框等控件,并創(chuàng)建相應(yīng)控件
變量及事件變量。
[0046]32:添加控件的 EN_CHANGE、BN_CLICKED、TVN_SELCHANGED 的消息響應(yīng)函數(shù),實(shí)現(xiàn)接收用戶輸入字符、單擊按鈕以及鼠標(biāo)點(diǎn)擊命令樹(shù)節(jié)點(diǎn)等功能。具體的,當(dāng)用戶選定命令樹(shù)窗口中節(jié)點(diǎn)信息時(shí),控件響應(yīng)TVN_SELCHANGED消息,并從節(jié)點(diǎn)數(shù)組中取出該節(jié)點(diǎn)信息并顯示在命令編輯框中,若用戶通過(guò)鼠標(biāo)或鍵盤在命令編輯窗口中輸入信息及點(diǎn)擊單選框,控件發(fā)出EN_CHANGE及BN_CLICKED消息,通過(guò)相應(yīng)事件變量將其存入節(jié)點(diǎn)數(shù)組中。
[0047]優(yōu)選地,步驟4具體包括:
[0048]41:生成命令處理函數(shù),在點(diǎn)擊“生成函數(shù)”菜單后,利用CString定義的對(duì)象將節(jié)點(diǎn)數(shù)組中每一級(jí)助記符中冒號(hào)、中括號(hào)等符號(hào)去掉后再利用字符串連接功能將其組合成函數(shù)名稱,并將函數(shù)類型名、返回值等信息連接入數(shù)據(jù)對(duì)象中。
[0049]42:利用循環(huán)遍歷完命令樹(shù)節(jié)點(diǎn)數(shù)組,并將數(shù)據(jù)信息寫入文件中,分別生成函數(shù)定義及頭文件。[0050]具體而言:
[0051]I)命令編輯窗口 103:提供使用者手動(dòng)進(jìn)行命令、參數(shù)節(jié)點(diǎn)信息添加、數(shù)據(jù)顯示的功能;
[0052]2)命令樹(shù)窗口 102:使用者可將導(dǎo)入的命令文件文檔、正在編輯的命令皆可在命令樹(shù)窗口顯示、瀏覽,使用者使用鼠標(biāo)點(diǎn)擊則在命令編輯窗口可以顯示當(dāng)前點(diǎn)擊的命令節(jié)點(diǎn)的詳細(xì)信息,包括助記符、命令類型、參數(shù)類型等。
[0053]3)命令瀏覽窗口:使用者編輯完成的文檔或使用者導(dǎo)入的命令文檔皆可在此窗口顯示,包括命令助記符、命令類型及參數(shù)類型,并可以按照使用者要求的文件格式輸出,現(xiàn)本軟件支持doc、xls、txt、dat文件格式。
[0054]4)可以根據(jù)使用者選擇的子系統(tǒng)類型自動(dòng)默認(rèn)生成該子系統(tǒng)的標(biāo)準(zhǔn)SCPI命令集。
[0055]5)可以自動(dòng)生成每個(gè)SCPI命令處理函數(shù)的.cpp文件及.h文件,以及將導(dǎo)入的使用者已經(jīng)編輯的.CPP文件及.h文件添加或刪除對(duì)應(yīng)的子命令處理函數(shù)。
[0056]具體地包括:
[0057]11)所述命令編輯窗口 103提供兩種使用者手動(dòng)輸入的方式,一種是將命令完整格式輸入編輯框中并導(dǎo)入文件中;另一種方式是與命令樹(shù)窗口配合使用的,通過(guò)鼠標(biāo)點(diǎn)擊命令樹(shù)節(jié)點(diǎn)則命令編輯窗口顯示當(dāng)前節(jié)點(diǎn)信息,使用者可以在此修改命令助記符類型、參數(shù)類型等。
[0058]12)與命令樹(shù)窗口 102配合使用的方式還支持使用者設(shè)置對(duì)應(yīng)該命令的處理函數(shù)號(hào),而輸入命令完整格式的方式則只能由軟件自動(dòng)分配生成。
[0059]具體地,所述4)中:因?yàn)闃?biāo)準(zhǔn)SCPI的通用性,提供按照SCPI99規(guī)范要求將儀器不同予系統(tǒng)的標(biāo)準(zhǔn)命令自動(dòng)生成的功能,使用者可以在命令樹(shù)窗口或命令編輯窗口中對(duì)這些默認(rèn)命令進(jìn)行操作,可以增加、刪除、修改命令、參數(shù)節(jié)點(diǎn)信息。
[0060]具體地包括:
[0061]51)提供按照命令瀏覽窗口所顯示的命令,可自動(dòng)生成SCPI命令處理函數(shù)的.cpp文件及.h文件,減少使用者的工作量。
[0062]52)可將使用者已編輯好的.cpp文件與.h文件導(dǎo)入軟件中,按照一定的規(guī)則將命令還原至命令樹(shù)窗口 102、命令編輯窗口 103中,并將使用者編輯好的代碼行保存,待使用者重新修改完畢后,再生成新的.cpp文件及.h文件。
[0063]本發(fā)明基于窗口及菜單,配置信息顯示豐富,所有命令信息所見(jiàn)即所得,可以方便的使用鼠標(biāo)、鍵盤操作,具有較大的自由度,同時(shí)將SCPI命令與具體儀器完全分離開(kāi),對(duì)于完成SCPI命令生成在方便性和效率上有提高。本發(fā)明實(shí)現(xiàn)的命令生成方法,使用者可以方便瀏覽、編輯、修改、增刪命令,并完全獨(dú)立于具體儀器,可以生成不同種類命令集的框架,從而提高儀器軟件的易維護(hù)性及易修改性,縮短程序開(kāi)發(fā)時(shí)間,提高系統(tǒng)可用性并降低儀器使用維護(hù)費(fèi)用。
[0064]應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種基于圖形界面的可編程儀器標(biāo)準(zhǔn)命令生成方法,其特征在于,包括以下步驟: 步驟一:生成顯示窗口 ; 步驟二:根據(jù)主窗口提供的菜單選擇不同的可編程儀器命令集; 步驟三:手動(dòng)配置可編程儀器標(biāo)準(zhǔn)命令(SCPI)模型的功能單元(即各子系統(tǒng))的命令類型、助記符類型、參數(shù)類型; 步驟四:根據(jù)各子系統(tǒng)的命令助記符,自動(dòng)生成可編程儀器命令處理函數(shù)。
2.如權(quán)利要求1所述的可編程儀器標(biāo)準(zhǔn)命令生成方法,其特征在于,所述步驟一具體包括: 步驟11:生成主窗口,用于提供數(shù)據(jù)初始化,生成命令樹(shù)類,用于應(yīng)用和存儲(chǔ)命令的屬性、處理函數(shù)信息; 步驟12:生成命令編輯窗口,用于接收并顯示用戶手動(dòng)輸入的命令、參數(shù)節(jié)點(diǎn)信息添力口、命令顯示服務(wù),并存儲(chǔ)到命令結(jié)構(gòu)體數(shù)組中; 步驟13:生成命令樹(shù)窗口,用于顯示所有編程儀器標(biāo)準(zhǔn)命令,包括助記符、命令類型、參數(shù)類型。
3.如權(quán)利要求1所述的可編程儀器標(biāo)準(zhǔn)命令生成方法,其特征在于,所述步驟二具體包括: 21:自動(dòng)生成各子系統(tǒng)的標(biāo)準(zhǔn)命令,并生成命令樹(shù)結(jié)構(gòu),并將命令類型、左孩子節(jié)點(diǎn)序號(hào)、相鄰兄弟節(jié)點(diǎn)序號(hào)、參數(shù)類型、節(jié)點(diǎn)信息存入節(jié)點(diǎn)類指針對(duì)象中; 22:在命令樹(shù)窗口中自行創(chuàng)建節(jié)點(diǎn),并通過(guò)消息響應(yīng)函數(shù),實(shí)現(xiàn)命令樹(shù)窗口與命令編輯窗口的通信。
4.如權(quán)利要求1可編程儀器標(biāo)準(zhǔn)命令生成方法,其特征在于,所述步驟三具體包括: 31:通過(guò)添加控件類的ON_EN_CHANGE、TVN_SELCHANGED的消息響應(yīng)函數(shù),實(shí)現(xiàn)命令樹(shù)窗口與命令編輯窗口通信以及實(shí)時(shí)顯示并處理、存儲(chǔ)用戶輸入的助記符類型、參數(shù)類型等節(jié)點(diǎn)信息; 32:填充節(jié)點(diǎn)類數(shù)據(jù)結(jié)構(gòu)中命令索引、類型、擴(kuò)展標(biāo)記信息。
5.如權(quán)利要求1所述的可編程儀器標(biāo)準(zhǔn)命令生成方法,其特征在于,所述步驟四具體包括: 41:所述可編程儀器標(biāo)準(zhǔn)命令處理函數(shù)文件為頭文件及源文件,所述頭文件包含了所述源文件中用到的函數(shù)和宏定義;所述頭文件為不可編譯文件;所述源文件為可編譯文件; 42將命令樹(shù)中每條命令助記符字符串連接成為函數(shù)名,并完成函數(shù)定義及聲明的編寫,填充命令處理函數(shù)指針數(shù)組,實(shí)現(xiàn)可編程儀器命令處理函數(shù)的生成。
【文檔編號(hào)】G06F9/44GK103530122SQ201310491673
【公開(kāi)日】2014年1月22日 申請(qǐng)日期:2013年10月11日 優(yōu)先權(quán)日:2013年10月11日
【發(fā)明者】周俊杰, 左永鋒, 王鵬, 徐明哲, 盧凱 申請(qǐng)人:中國(guó)電子科技集團(tuán)公司第四十一研究所