專(zhuān)利名稱(chēng):一種儀器模塊通用接口的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及儀器模塊,尤其是涉及一種儀器模塊通用接口的實(shí)現(xiàn)方法。
背景技術(shù):
射頻模塊產(chǎn)品存在生命周期短、測(cè)試復(fù)雜程度高、測(cè)試項(xiàng)目繁多、不同產(chǎn)品的測(cè)試指標(biāo)和測(cè)試方法存在差異等特點(diǎn)。而傳統(tǒng)驅(qū)動(dòng)庫(kù)的一般只能提供驅(qū)動(dòng)接口,一般根據(jù)儀器 廠商不同而通訊協(xié)議也不同,因此提供的儀器模塊驅(qū)動(dòng)庫(kù)設(shè)計(jì)接口也不同,同時(shí)驅(qū)動(dòng)方法 不可見(jiàn),不能動(dòng)態(tài)配置執(zhí)行方法。只能在編碼是固定使用。傳統(tǒng)驅(qū)動(dòng)庫(kù)已無(wú)法滿足要求。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種提高生產(chǎn)效率的儀器模塊通用接口的實(shí)現(xiàn)方法。為了達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案一種儀器模塊通用接口的實(shí)現(xiàn)方 法,實(shí)現(xiàn)方法步驟為步驟1 利用驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)的打開(kāi)函數(shù)創(chuàng)建儀器模塊對(duì)象 實(shí)例;在步驟1中,測(cè)試終端會(huì)將儀器模塊連接字符串傳遞給驅(qū)動(dòng)方法配置庫(kù),驅(qū)動(dòng)方 法配置庫(kù)再將連接字符傳遞給儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù),儀器模塊驅(qū)動(dòng)管 理庫(kù)按照一定的協(xié)議格式分離連接字符串并識(shí)別儀器模塊類(lèi)型,再根據(jù)具體類(lèi)型加載儀器 模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),然后利用儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)中的打開(kāi)函數(shù)創(chuàng)建儀 器模塊對(duì)象實(shí)例,同時(shí)將儀器模塊對(duì)象實(shí)例句柄返回給上層;步驟2 利用驅(qū)動(dòng)方法配置庫(kù)的創(chuàng)建方法函數(shù)創(chuàng)建驅(qū)動(dòng)方法對(duì)象;步驟3 利用驅(qū)動(dòng)方法配置庫(kù)的設(shè)置方法的參數(shù)值函數(shù)配置驅(qū)動(dòng)方法的輸入?yún)?數(shù);步驟4 利用驅(qū)動(dòng)方法配置庫(kù)的運(yùn)行函數(shù)執(zhí)行一個(gè)驅(qū)動(dòng)方法;步驟5 利用驅(qū)動(dòng)方法配置庫(kù)的獲取輸出參數(shù)值函數(shù)獲取到從儀器模塊返回的數(shù) 據(jù);步驟6 利用驅(qū)動(dòng)方法配置庫(kù)的釋放函數(shù)釋放某個(gè)驅(qū)動(dòng)方法對(duì)象內(nèi)存資源;如果要執(zhí)行多個(gè)驅(qū)動(dòng)方法的話,重復(fù)步驟2,3,4,5,6。所述驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)采用軟件工廠模式的設(shè)計(jì)方式,將測(cè)試 終端所用到的所有方法按照標(biāo)準(zhǔn)的方式進(jìn)行封裝,為上層提供統(tǒng)一的接口。所述儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)采用面向?qū)ο蟮脑O(shè)計(jì)方式,根據(jù)儀 器模塊連接字符串自動(dòng)分析和管理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),動(dòng)態(tài)創(chuàng)建儀器模塊驅(qū)動(dòng)對(duì)象和方 法,支持多臺(tái)儀器同時(shí)使用。所述儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)采用面向?qū)ο蟮脑O(shè)計(jì)方式,支持創(chuàng) 建多個(gè)儀器模塊驅(qū)動(dòng)對(duì)象,為上層提供統(tǒng)一的接口。所述驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)主要為配置終端和測(cè)試終端提供驅(qū)動(dòng)方法配置和執(zhí)行的API接口,驅(qū)動(dòng)方法配置庫(kù)位于驅(qū)動(dòng)方法配置層中。所述儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)為驅(qū)動(dòng)方法配置庫(kù)提供儀器模塊 通用的API接口,自動(dòng)管理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),儀器模塊驅(qū)動(dòng)管理庫(kù)位于儀器模塊管理 層中。所述儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)為儀器模塊驅(qū)動(dòng)管理庫(kù)提供通用 的API接口,并實(shí)現(xiàn)儀器模塊的驅(qū)動(dòng)代碼,儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)位于儀器模塊驅(qū)動(dòng)層中。所述驅(qū)動(dòng)方法配置庫(kù)、儀器模塊驅(qū)動(dòng)管理庫(kù)、儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)都是*. dll文 件。所述儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)通過(guò)VISA庫(kù)的viOpen、viClose, viPrintf、viscanf、viWrite、viRead函數(shù)來(lái)發(fā)送和接收SCPI指令,對(duì)外提供標(biāo)準(zhǔn)的儀器模 塊API接口函數(shù)。本發(fā)明針對(duì)射頻產(chǎn)品測(cè)試過(guò)程中所使用的儀器模塊廠商、型號(hào)、協(xié)議不同,驅(qū)動(dòng)方 法接口不同,方法無(wú)法根據(jù)測(cè)試項(xiàng)目需求動(dòng)態(tài)配置的缺陷,提供了一種與儀器通訊的通用 接口。實(shí)現(xiàn)儀器通用接口的驅(qū)動(dòng)主要由驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)、儀器模塊管 理中的儀器模塊驅(qū)動(dòng)管理庫(kù)和儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)組成。除具有傳統(tǒng) 驅(qū)動(dòng)庫(kù)功能外,還具有自動(dòng)識(shí)別儀器功能、儀器分類(lèi)管理功能、驅(qū)動(dòng)方法可見(jiàn),支持動(dòng)態(tài)配 置執(zhí)行功能以及二次開(kāi)發(fā)的標(biāo)準(zhǔn)接口。本發(fā)明的有益效果是1、屏蔽儀器模塊廠商、型號(hào)、通訊協(xié)議之間的差異,為所有的儀器模塊提供統(tǒng)一的接口。2、自動(dòng)管理儀器模塊,減少維護(hù)難度。3、儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)獨(dú)立設(shè)計(jì),減少相互之間的關(guān)聯(lián)性,進(jìn)而提高了儀器模塊 驅(qū)動(dòng)庫(kù)的穩(wěn)定性和可靠性,同時(shí)也極大的減少了開(kāi)發(fā)時(shí)間,提高了生產(chǎn)效率。4、所有的方法支持動(dòng)態(tài)配置執(zhí)行,根據(jù)需求靈活搭建射頻模塊測(cè)試項(xiàng)和測(cè)試方 法,大大減少的自動(dòng)測(cè)試系統(tǒng)的開(kāi)發(fā)時(shí)間,提高生產(chǎn)效率。5、支持二次開(kāi)發(fā)功和自動(dòng)管理儀器種類(lèi)的功能。
本發(fā)明將通過(guò)例子并參照附圖的方式說(shuō)明,其中圖1是本發(fā)明實(shí)現(xiàn)儀器模塊通用接口的驅(qū)動(dòng)結(jié)構(gòu)層次圖;圖2是本發(fā)明構(gòu)成射頻模塊產(chǎn)品自動(dòng)測(cè)試系統(tǒng)的框架圖。
具體實(shí)施例方式本說(shuō)明書(shū)中公開(kāi)的所有特征,或公開(kāi)的所有方法或過(guò)程中的步驟,除了互相排斥 的特征和/或步驟以外,均可以以任何方式組合。本說(shuō)明書(shū)(包括任何附加權(quán)利要求、摘要和附圖)中公開(kāi)的任一特征,除非特別敘 述,均可被其他等效或具有類(lèi)似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只 是一系列等效或類(lèi)似特征中的一個(gè)例子而已.見(jiàn)圖1所示,一種儀器模塊通用接口的實(shí)現(xiàn)方法,實(shí)現(xiàn)方法步驟為
步驟1 利用驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)的打開(kāi)函數(shù)創(chuàng)建儀器模塊對(duì)象 實(shí)例;在步驟1中,測(cè)試終端會(huì)將儀器模塊連接字符串傳遞給驅(qū)動(dòng)方法配置庫(kù),驅(qū)動(dòng)方 法配置庫(kù)再將連接字符傳遞給儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù),儀器模塊驅(qū)動(dòng)管 理庫(kù)按照一定的協(xié)議格式分離連接字符串并識(shí)別儀器模塊類(lèi)型,再根據(jù)具體類(lèi)型加載儀器 模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),然后利用儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)中的打開(kāi)函數(shù)創(chuàng)建儀 器模塊對(duì)象實(shí)例,同時(shí)將儀器模塊對(duì)象實(shí)例句柄返回給上層;步驟2 利用驅(qū)動(dòng)方法配置庫(kù)的創(chuàng)建方法函數(shù)創(chuàng)建驅(qū)動(dòng)方法對(duì)象;步驟3 利用驅(qū)動(dòng)方法配置庫(kù)的設(shè)置方法的參數(shù)值函數(shù)配置驅(qū)動(dòng)方法的輸入?yún)?數(shù);步驟4 利用驅(qū)動(dòng)方法配置庫(kù)的運(yùn)行函數(shù)執(zhí)行一個(gè)驅(qū)動(dòng)方法;步驟5 利用驅(qū)動(dòng)方法配置庫(kù)的獲取輸出參數(shù)值函數(shù)獲取到從儀器模塊返回的數(shù) 據(jù);步驟6 利用驅(qū)動(dòng)方法配置庫(kù)的釋放函數(shù)釋放某個(gè)驅(qū)動(dòng)方法對(duì)象內(nèi)存資源;如果要執(zhí)行多個(gè)驅(qū)動(dòng)方法的話,重復(fù)步驟2,3,4,5,6。所述驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)采用軟件工廠模式的設(shè)計(jì)方式,將測(cè)試 終端所用到的所有方法按照標(biāo)準(zhǔn)的方式進(jìn)行封裝,為上層提供統(tǒng)一的接口。所述儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)采用面向?qū)ο蟮脑O(shè)計(jì)方式,根據(jù)儀 器模塊連接字符串自動(dòng)分析和管理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),動(dòng)態(tài)創(chuàng)建儀器模塊驅(qū)動(dòng)對(duì)象和方 法,支持多臺(tái)儀器同時(shí)使用。所述儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)采用面向?qū)ο蟮脑O(shè)計(jì)方式,支持創(chuàng) 建多個(gè)儀器模塊驅(qū)動(dòng)對(duì)象,為上層提供統(tǒng)一的接口。所述驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)主要為配置終端和測(cè)試終端提供驅(qū)動(dòng) 方法配置和執(zhí)行的API接口 .所述儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)為驅(qū)動(dòng)方法配置庫(kù)提供儀器模塊 通用的API接口,自動(dòng)管理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù).所述儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)為儀器模塊驅(qū)動(dòng)管理庫(kù)提供通用 的API接口,并實(shí)現(xiàn)儀器模塊的驅(qū)動(dòng)代碼。所述驅(qū)動(dòng)方法配置庫(kù)、儀器模塊驅(qū)動(dòng)管理庫(kù)、儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)都是*. dll文 件。所述儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)通過(guò)VISA庫(kù)的viOpen、viClose, viPrintf、viscanf、viWrite、viRead函數(shù)來(lái)發(fā)送和接收SCPI指令,對(duì)外提供標(biāo)準(zhǔn)的儀器模 塊API接口函數(shù)。如圖2所示,圖2中的ATML為驅(qū)動(dòng)方法配置庫(kù),功率計(jì)驅(qū)動(dòng)管理庫(kù)、噪聲儀驅(qū)動(dòng)管 理庫(kù)、網(wǎng)絡(luò)儀驅(qū)動(dòng)管理庫(kù)、頻譜儀驅(qū)動(dòng)管理庫(kù)、信號(hào)源驅(qū)動(dòng)管理庫(kù)、射頻模塊產(chǎn)品驅(qū)動(dòng)管理 庫(kù)都為儀器模塊驅(qū)動(dòng)管理庫(kù),NRT功率計(jì)驅(qū)動(dòng)庫(kù)、N8974A驅(qū)動(dòng)庫(kù)、E5062A驅(qū)動(dòng)庫(kù)、N9010A驅(qū) 動(dòng)庫(kù)、FSP-7驅(qū)動(dòng)庫(kù)、FSP-3驅(qū)動(dòng)庫(kù)、N5082A驅(qū)動(dòng)庫(kù)、產(chǎn)品驅(qū)動(dòng)庫(kù)都為儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)。為了更清楚說(shuō)明本發(fā)明的通用接口的實(shí)現(xiàn)方法,下面闡述在射頻模塊產(chǎn)品自動(dòng)測(cè) 試系統(tǒng)的儀器模塊的通用接口上進(jìn)行具體說(shuō)明,但是本發(fā)明不僅適合于射頻模塊產(chǎn)品測(cè)試所用的儀器模塊驅(qū)動(dòng)接口,也合適于其它儀器模塊的驅(qū)動(dòng)接口,本發(fā)明一種儀器模塊通用接口的實(shí)現(xiàn)方法,在一個(gè)具有配置終端、測(cè)試代碼、測(cè)試儀器、測(cè)試終端中,a驅(qū)動(dòng)方法配置庫(kù)位于驅(qū)動(dòng)方法配置層中,驅(qū)動(dòng)方法配置庫(kù)主要為配置終端和測(cè) 試終端提供驅(qū)動(dòng)方法配置和執(zhí)行的API接口 ;儀器模塊驅(qū)動(dòng)管理庫(kù)位于儀器模塊管理層 中,儀器模塊驅(qū)動(dòng)管理庫(kù)為驅(qū)動(dòng)方法配置庫(kù)提供儀器模塊通用的API接口,自動(dòng)管理儀器 模塊驅(qū)動(dòng)實(shí)例庫(kù);儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)位于儀器模塊驅(qū)動(dòng)層中,為儀器模塊驅(qū)動(dòng)管理庫(kù)提 供通用的API接口,并實(shí)現(xiàn)儀器模塊的驅(qū)動(dòng)代碼;物理層主要包括測(cè)試儀器和測(cè)試所需的 附件。b在配置終端聲明儀器模塊別名變量,創(chuàng)建測(cè)試項(xiàng)目和配置測(cè)試步驟,實(shí)際上配置 測(cè)試步驟就是配置儀器模塊驅(qū)動(dòng)庫(kù)方法的執(zhí)行順序。c在測(cè)試終端將儀器模塊別名與實(shí)際所使用的儀器模塊建立對(duì)應(yīng)映射關(guān)系。d測(cè)試終端裝載儀器模塊驅(qū)動(dòng),將儀器模塊驅(qū)動(dòng)庫(kù)動(dòng)態(tài)加載到PC內(nèi)存中,得到儀 器模塊驅(qū)動(dòng)動(dòng)態(tài)庫(kù)句柄和儀器模塊驅(qū)動(dòng)實(shí)例句柄,通過(guò)執(zhí)行儀器模塊驅(qū)動(dòng)實(shí)例的某個(gè)方法 來(lái)實(shí)現(xiàn)儀器模塊驅(qū)動(dòng)的功能。在步驟a中,驅(qū)動(dòng)方法配置庫(kù)、儀器模塊驅(qū)動(dòng)管理庫(kù)、儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)都是 *. dll文件。在步驟d中,會(huì)完成儀器模塊的初始化,在驅(qū)動(dòng)方法配置庫(kù)中將會(huì)生成一個(gè)儀器 模塊容器,用于管理設(shè)備句柄;在驅(qū)動(dòng)管理庫(kù)中生成一個(gè)儀器模塊驅(qū)動(dòng)庫(kù)管理容器,用來(lái)管 理儀器模塊驅(qū)動(dòng)庫(kù)實(shí)例庫(kù)和儀器模塊驅(qū)動(dòng)方法入口地址。1、驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)為了達(dá)到統(tǒng)一儀器模塊驅(qū)動(dòng)方法接口的 目的采用對(duì)象工廠的設(shè)計(jì)思路,主要包括五部分定義驅(qū)動(dòng)方法基類(lèi);定義從基類(lèi)派生出 儀器模塊驅(qū)動(dòng)方法的派生類(lèi)(相當(dāng)于工廠中的產(chǎn)品模型);方法工廠;方法產(chǎn)生器;外部訪 問(wèn)驅(qū)動(dòng)方法的API接口函數(shù)。a在步驟1中所述的儀器模塊驅(qū)動(dòng)方法基類(lèi)的成員主要包括;a)函數(shù)參數(shù)設(shè)置結(jié)構(gòu)體{參數(shù)名稱(chēng);參數(shù)類(lèi)型;參數(shù)個(gè)數(shù);參數(shù)值;參數(shù)單位;}b)輸入?yún)?shù)容器 < 函數(shù)參數(shù)設(shè)置結(jié)構(gòu)體>c)輸出參數(shù)容器 < 函數(shù)參數(shù)設(shè)置結(jié)構(gòu)體>d)設(shè)置輸入?yún)?shù)(輸入?yún)?shù)容器)
e)獲取輸入?yún)?shù)(輸入?yún)?shù)容器)f)設(shè)置輸出參數(shù)(輸出參數(shù)容器)g)獲取輸出參數(shù)(輸出參數(shù)容器)h)運(yùn)行
i)初始化b在步驟1中所述的訪問(wèn)驅(qū)動(dòng)方法的對(duì)外API接口函數(shù)主要包括;a)打開(kāi)(儀器模塊類(lèi)型號(hào),儀器模塊連接字符串,儀器模塊句柄)b)關(guān)閉(儀器模塊類(lèi)型號(hào),儀器模塊連接字符串)c)獲取所有的驅(qū)動(dòng)方法名稱(chēng)(方法名稱(chēng),方法個(gè)數(shù))d)獲取一類(lèi)儀器模塊驅(qū)動(dòng)方法名稱(chēng)(儀器模塊類(lèi)型號(hào),方法名稱(chēng),方法個(gè)數(shù))e)創(chuàng)建一個(gè)方法(方法名稱(chēng),方法句柄)f)釋放一個(gè)方法(方法句柄)g)設(shè)置一個(gè)方法的功能描述語(yǔ)(方法句柄,功能描述語(yǔ))h)獲取一個(gè)方法的功能描述語(yǔ)(方法句柄,功能描述語(yǔ))i)獲取一個(gè)方法的輸入?yún)?shù)個(gè)數(shù)(方法句柄,輸入?yún)?shù)個(gè)數(shù))j)獲取輸入?yún)?shù)的詳細(xì)信息(方法句柄,輸入?yún)?shù)索引號(hào),輸入?yún)?shù)名稱(chēng),輸入?yún)?shù)類(lèi)型,輸入?yún)?shù)個(gè)數(shù),輸入?yún)?shù)值,輸入?yún)?shù)單位)k)設(shè)置輸入?yún)?shù)值(方法句柄,輸入?yún)?shù)索引號(hào),輸入?yún)?shù)值)1)獲取輸出參數(shù)個(gè)數(shù)(方法句柄,輸出參數(shù)個(gè)數(shù))m)獲取輸出參數(shù)的詳細(xì)信息(方法句柄,輸出參數(shù)索引號(hào),輸出參數(shù)名稱(chēng),輸出參數(shù)類(lèi)型,輸出參數(shù)個(gè)數(shù),輸出參數(shù)值,輸出參數(shù)單位)η)運(yùn)行一個(gè)方法(方法句柄)在步驟1中所述的方法工廠采用“可伸縮工廠”的基本設(shè)計(jì),每次添加一個(gè)新的“儀器模塊驅(qū)動(dòng)方法派生類(lèi)”時(shí),不必修改它的的代碼。將儀器模塊驅(qū)動(dòng)方法工廠職能劃分清楚,每個(gè)新的“儀器模塊驅(qū)動(dòng)方法”都必須對(duì)工廠注冊(cè),并將“驅(qū)動(dòng)方法標(biāo)識(shí)”和“生成函數(shù)的指針”傳遞給它。通常生成函數(shù)只有一行,大致像這樣BaseClass 氺 CreateDeviceMethod (){return new DeviceMethod}2、位于驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)為了達(dá)到儀器模塊驅(qū)動(dòng)方法可見(jiàn)、選 擇配置的目的采用泛型設(shè)計(jì),聲明一個(gè)Map容器用來(lái)保存所有被注冊(cè)過(guò)的儀器模塊驅(qū)動(dòng) 方法名稱(chēng)。3、位于儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)采用面向?qū)ο笤O(shè)計(jì),根據(jù)測(cè)試終 端的配置的儀器模塊連接字符串,通過(guò)微軟Microsoft的裝載庫(kù)LoadLibrary函數(shù)來(lái)裝載 儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),并注冊(cè)儀器模塊驅(qū)動(dòng)庫(kù)管理Map,并將“驅(qū)動(dòng)庫(kù)名稱(chēng)”、“驅(qū)動(dòng)庫(kù)句柄” 和“儀器模塊句柄”傳遞給它。4、位于儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)采用面向?qū)ο笤O(shè)計(jì)思想,采用SCPI 開(kāi)發(fā)規(guī)范,通過(guò) VISA 庫(kù)的 viOpen、viClose、viPrintf、viscanf、viWrite、viRead 等 函數(shù)來(lái)發(fā)送和接收SCPI指令,對(duì)外提供標(biāo)準(zhǔn)的儀器模塊API接口函數(shù)。采用這種分層的結(jié)構(gòu)設(shè)計(jì),可以處理儀器模塊型號(hào)更換的問(wèn)題。所有驅(qū)動(dòng)庫(kù)方法 都是可見(jiàn),選擇配置可降低開(kāi)發(fā)難度和提高開(kāi)發(fā)效率。本發(fā)明并不局限于前述的具體實(shí)施方式
。本發(fā)明擴(kuò)展到任何在本說(shuō)明書(shū)中披露的 新特征或任何新的組合,以及披露的任一新的方法或過(guò)程的步驟或任何新的組合。
權(quán)利要求
一種儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,實(shí)現(xiàn)方法步驟為步驟1利用驅(qū)動(dòng)方法配置層中的驅(qū)動(dòng)方法配置庫(kù)的打開(kāi)函數(shù)創(chuàng)建儀器模塊對(duì)象實(shí)例;在步驟1中,測(cè)試終端會(huì)將儀器模塊連接字符串傳遞給驅(qū)動(dòng)方法配置庫(kù),驅(qū)動(dòng)方法配置庫(kù)再將連接字符傳遞給儀器模塊管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù),儀器模塊驅(qū)動(dòng)管理庫(kù)按照一定的協(xié)議格式分離連接字符串并識(shí)別儀器模塊類(lèi)型,再根據(jù)具體類(lèi)型加載儀器模塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),然后利用儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)中的打開(kāi)函數(shù)創(chuàng)建儀器模塊對(duì)象實(shí)例,同時(shí)將儀器模塊對(duì)象實(shí)例句柄返回給上層;步驟2利用驅(qū)動(dòng)方法配置庫(kù)的創(chuàng)建方法函數(shù)創(chuàng)建驅(qū)動(dòng)方法對(duì)象;步驟3利用驅(qū)動(dòng)方法配置庫(kù)的設(shè)置方法的參數(shù)值函數(shù)配置驅(qū)動(dòng)方法的輸入?yún)?shù);步驟4利用驅(qū)動(dòng)方法配置庫(kù)的運(yùn)行函數(shù)執(zhí)行一個(gè)驅(qū)動(dòng)方法;步驟5利用驅(qū)動(dòng)方法配置庫(kù)的獲取輸出參數(shù)值函數(shù)獲取到從儀器模塊返回的數(shù)據(jù);步驟6利用驅(qū)動(dòng)方法配置庫(kù)的釋放函數(shù)釋放某個(gè)驅(qū)動(dòng)方法對(duì)象內(nèi)存資源;如果要執(zhí)行多個(gè)驅(qū)動(dòng)方法的話,重復(fù)步驟2,3,4,5,6。
2.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述驅(qū)動(dòng)方法 配置層中的驅(qū)動(dòng)方法配置庫(kù)采用軟件工廠模式的設(shè)計(jì)方式,將測(cè)試終端所用到的所有方法 按照標(biāo)準(zhǔn)的方式進(jìn)行封裝,為上層提供統(tǒng)一的接口。
3.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述儀器模塊 管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)采用面向?qū)ο蟮脑O(shè)計(jì)方式,根據(jù)儀器模塊連接字符串自動(dòng) 分析和管理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù),動(dòng)態(tài)創(chuàng)建儀器模塊驅(qū)動(dòng)對(duì)象和方法,支持多臺(tái)儀器同時(shí) 使用。
4.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述儀器模塊 驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)采用面向?qū)ο蟮脑O(shè)計(jì)方式,支持創(chuàng)建多個(gè)儀器模塊驅(qū)動(dòng)對(duì) 象,為上層提供統(tǒng)一的接口。
5.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述驅(qū)動(dòng)方法 配置層中的驅(qū)動(dòng)方法配置庫(kù)主要為配置終端和測(cè)試終端提供驅(qū)動(dòng)方法配置和執(zhí)行的API 接口。
6.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述儀器模塊 管理層中的儀器模塊驅(qū)動(dòng)管理庫(kù)為驅(qū)動(dòng)方法配置庫(kù)提供儀器模塊通用的API接口,自動(dòng)管 理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)。
7.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述儀器模塊 驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)為儀器模塊驅(qū)動(dòng)管理庫(kù)提供通用的API接口,并實(shí)現(xiàn)儀器 模塊的驅(qū)動(dòng)代碼。
8.根據(jù)權(quán)利要求1或2或3或4或5或6或7所述的儀器模塊通用接口的實(shí)現(xiàn)方法, 其特征在于,所述驅(qū)動(dòng)方法配置庫(kù)、儀器模塊驅(qū)動(dòng)管理庫(kù)、儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)都是*. dll 文件。
9.根據(jù)權(quán)利要求1所述的儀器模塊通用接口的實(shí)現(xiàn)方法,其特征在于,所述儀器模 塊驅(qū)動(dòng)層中的儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)通過(guò)VISA庫(kù)的viOpen、viClose、viPrintf、viscanf、 viffrite, viRead函數(shù)來(lái)發(fā)送和接收SCPI指令,對(duì)外提供標(biāo)準(zhǔn)的儀器模塊API接口函數(shù)。
全文摘要
本發(fā)明公開(kāi)了一種儀器模塊通用接口的實(shí)現(xiàn)方法,將驅(qū)動(dòng)方法配置庫(kù)位于驅(qū)動(dòng)方法配置層中,驅(qū)動(dòng)方法配置庫(kù)主要為配置終端和測(cè)試終端提供驅(qū)動(dòng)方法配置和執(zhí)行的API接口;將儀器模塊驅(qū)動(dòng)管理庫(kù)位于儀器模塊管理層中,儀器模塊驅(qū)動(dòng)管理庫(kù)為驅(qū)動(dòng)方法配置庫(kù)提供儀器模塊通用的API接口,自動(dòng)管理儀器模塊驅(qū)動(dòng)實(shí)例庫(kù);將儀器模塊驅(qū)動(dòng)實(shí)例庫(kù)位于儀器模塊驅(qū)動(dòng)層中,為儀器模塊驅(qū)動(dòng)管理庫(kù)提供通用的API接口,并實(shí)現(xiàn)儀器模塊的驅(qū)動(dòng)代碼。本發(fā)明大大減少的自動(dòng)測(cè)試系統(tǒng)的開(kāi)發(fā)時(shí)間,提高生產(chǎn)效率。
文檔編號(hào)G06F13/38GK101799764SQ20091031293
公開(kāi)日2010年8月11日 申請(qǐng)日期2009年12月31日 優(yōu)先權(quán)日2009年12月31日
發(fā)明者吳學(xué)鋒, 強(qiáng)波, 杜春, 賀達(dá) 申請(qǐng)人:芯通科技(成都)有限公司