亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SharpDevelop構(gòu)建T/R組件測試系統(tǒng)軟件架構(gòu)

        2015-05-17 06:51:08楊為祿樓紅英
        現(xiàn)代雷達(dá) 2015年11期
        關(guān)鍵詞:自動(dòng)測試功能模塊插件

        楊為祿,樓紅英

        (1.南京國睿安泰信科技股份有限公司,南京 210013;2.南京電子技術(shù)研究所,南京 210039)

        0 引言

        T/R組件自動(dòng)測試系統(tǒng)的測試軟件是整個(gè)系統(tǒng)控制的靈魂[1],良好的軟件架構(gòu)既能減少開發(fā)人員的工作量,使軟件做到高內(nèi)聚、低耦合,又能夠在后期維護(hù)中取得優(yōu)勢。T/R組件自動(dòng)測試系統(tǒng)軟件架構(gòu)需求主要體現(xiàn)在以下三個(gè)方面:

        1)架構(gòu)的通用、可擴(kuò)展、可維護(hù)

        T/R組件自動(dòng)測試系統(tǒng)軟件的通用是指軟件在硬件條件滿足的情況下,無需修改或經(jīng)過較少的修改就能夠用于多個(gè)型號、多種產(chǎn)品的T/R組件測試。可擴(kuò)展性是指軟件在現(xiàn)有功能的基礎(chǔ)上能夠進(jìn)行功能的擴(kuò)展,以適應(yīng)需求的變化??删S護(hù)是指軟件易于維護(hù),功能模塊必須做到高內(nèi)聚、低耦合,也就是說軟件中某個(gè)功能模塊的損壞或更改不應(yīng)影響其他功能模塊的運(yùn)行,整個(gè)軟件還能正常工作。

        2)測試儀器設(shè)備驅(qū)動(dòng)程序的可互換

        儀器設(shè)備中的驅(qū)動(dòng)程序是測試系統(tǒng)中最重要的組成部分之一,用來實(shí)現(xiàn)儀器硬件的通信和控制功能[2],為降低開發(fā)成本,縮短開發(fā)周期,要求測試系統(tǒng)中的儀器硬件設(shè)備能夠不受生產(chǎn)廠家、型號的限制,通過系統(tǒng)軟件對配置的設(shè)備驅(qū)動(dòng)程序自適應(yīng)、自匹配實(shí)現(xiàn)硬件的無縫替換與升級。

        3)測試程序的可移植性、可復(fù)用

        已編制的測試程序能夠移植應(yīng)用到其他測試平臺中進(jìn)行T/R組件的測試,實(shí)現(xiàn)測試程序的重復(fù)利用。

        1 插件及插件系統(tǒng)的優(yōu)點(diǎn)

        傳統(tǒng)的系統(tǒng),在編譯發(fā)布完成之后,系統(tǒng)就不允許或者很難進(jìn)行更改擴(kuò)充,如果要進(jìn)行某個(gè)功能的擴(kuò)充,則必須要修改代碼重新編譯發(fā)布。這種傳統(tǒng)的軟件設(shè)計(jì)架構(gòu)給軟件的開發(fā)、測試、維護(hù)等帶來極大困難,往往軟件設(shè)計(jì)階段的耦合性控制不好就會在設(shè)計(jì)期和維護(hù)期遇到巨大的麻煩。通過引入插件技術(shù)能很好地解決該問題。

        所謂的插件就是系統(tǒng)的擴(kuò)展功能模塊,這個(gè)模塊是以一個(gè)獨(dú)立文件的形式出現(xiàn)的,與系統(tǒng)是相對獨(dú)立的。在系統(tǒng)設(shè)計(jì)期間并不知道插件的具體功能,僅僅是在系統(tǒng)中為插件留下預(yù)定的接口,系統(tǒng)啟動(dòng)的時(shí)候根據(jù)插件的配置尋找插件,根據(jù)預(yù)定的接口把插件掛接到系統(tǒng)中,基于插件系統(tǒng)構(gòu)建軟件框架,具有以下優(yōu)點(diǎn):(1)實(shí)現(xiàn)真正意義上的軟件組件的“即插即用”;(2)在二進(jìn)制級上集成軟件,減少大量的軟件重新編譯、發(fā)布麻煩與時(shí)間;(3)能夠很好地實(shí)現(xiàn)軟件模塊的分工開發(fā),能夠大量吸取他人的優(yōu)勢;(4)可較好地實(shí)現(xiàn)代碼隱藏,保護(hù)知識產(chǎn)權(quán)。

        2 SharpDevelop的原理及組成

        SharpDevelop是一個(gè)使用C#開發(fā)而成的,并為用于開發(fā)C#或者VB.NET項(xiàng)目軟件而設(shè)計(jì)的編輯器軟件,是完全開源的IDE開發(fā)工具。它基于插件技術(shù)來實(shí)現(xiàn)整個(gè)系統(tǒng),完全通過XML配置文件進(jìn)行插接配置,是一個(gè)穩(wěn)定、可靠的插件系統(tǒng)。要基于SharpDevelop開發(fā)應(yīng)用程序架構(gòu)必須先清楚其基本組成及基本概念[3]:

        1)插件(AddIn)

        在SharpDevelop的概念中,插件是包含多個(gè)功能模塊的集合,而不是一個(gè)功能模塊。在文件的表現(xiàn)形式上,它是一個(gè)addin配置文件,在系統(tǒng)中對應(yīng)AddIn類。

        2)插件樹(AddInTree)

        SharpDevelop中的插件被組織成樹狀結(jié)構(gòu),成為插件樹。樹的結(jié)構(gòu)是通過擴(kuò)展點(diǎn)(Extension)中定義的路徑(Path)來關(guān)聯(lián)的,類似一個(gè)文件系統(tǒng)的目錄結(jié)構(gòu)。系統(tǒng)中的每一個(gè)插件都在配置文件中指定了 Extension,通過Extension中指定的 Path掛到這棵插件樹上。在系統(tǒng)中可以通過 AddTreeSingleton對象來訪問各個(gè)插件,以實(shí)現(xiàn)插件之間的互動(dòng)。

        3)擴(kuò)展點(diǎn)(Extension)

        SharpDevelop中的每一個(gè)插件都會被掛到AddIn-Tree中,而具體掛接到這個(gè)插件樹的哪個(gè)位置,則是由插件的Extension對象中的Path指定的。在addin配置文件中,對應(yīng)于<Extension>。例如下面這個(gè)功能模塊的配置:

        <Extension path = "/SharpDevelop/Workbench/Ambiences">

        <Class id= ".NET"class= "ICSharpCode.Sharp-Develop.Services.NetAmbience"/>

        </Extension>

        指定了擴(kuò)展點(diǎn)路徑為 /SharpDevelop/Workbench/Ambiences,也就是在插件樹中的位置。

        4)Codon

        Codon的功能是描述(包裝)一個(gè)功能模塊(一個(gè)功能模塊對應(yīng)一個(gè)實(shí)現(xiàn)了具體功能的命令類)。為了方便訪問各個(gè)插件中的功能模塊,Codon給各種功能定義了基本的屬性,分別是功能模塊的標(biāo)識(ID)、功能模塊的類型(Name)。這個(gè)Name是addin文件定義中Codon的XML結(jié)點(diǎn)的名稱,ID才是真正的名稱,其中,Name可能是類(Class)、菜單項(xiàng)(MenuItem)、面板(Pad)等等。還是以上述定義為例:

        <Extension path = "/SharpDevelop/Workbench/Ambiences"><Class id= ".NET"class= "ICSharp-Code.SharpDevelop.Services.NetAmbience"/>

        </Extension>

        <Extension ...> 內(nèi)部定義了一個(gè) Codon,<Class...>表示該Codon是一個(gè)Class,接著定義了該Codon的 ID和具體實(shí)現(xiàn)該Codon的類名,在該示例中,類名為 ICSharpCode.SharpDevelop.Services.NetAmbience。運(yùn)行期間將通過反射來找到對應(yīng)的類并創(chuàng)建其運(yùn)行對象。

        5)命令(Command)

        正如前文所述,Codon描述了一個(gè)功能模塊,而每個(gè)功能模塊都是一個(gè) ICommand的實(shí)現(xiàn)。最基本的Command是AbstractCommand,根據(jù)Codon的不同對應(yīng)了不同的 Command。例如 :MenuItemCodon對應(yīng)MenuItemCommand等等。

        6)服務(wù)(Service)

        插件系統(tǒng)中,有一些功能是整個(gè)系統(tǒng)都要使用的,例如:文件訪問、資源、消息等等。這些功能都作為插件系統(tǒng)的一個(gè)基本功能為整個(gè)系統(tǒng)提供服務(wù),我們稱其為“服務(wù)”。為了便于訪問,這些服務(wù)都統(tǒng)一通過ServiceManager來管理。

        3 利用SharpDevelop構(gòu)建的T/R組件自動(dòng)測試系統(tǒng)軟件架構(gòu)

        T/R組件是雷達(dá)的核心,各種參數(shù)的自動(dòng)化測試至關(guān)重要[4],T/R組件自動(dòng)測試系統(tǒng)軟件通過儀器接口總線發(fā)出各類儀器的操作命令,同時(shí)控制被測組件的狀態(tài)切換,并接收系統(tǒng)中所有儀器設(shè)備的測試數(shù)據(jù)信息,對其進(jìn)行分析處理,從而完成T/R組件參數(shù)的測試過程以及后期的數(shù)據(jù)分析和計(jì)算。

        從功能上對系統(tǒng)軟件進(jìn)行劃分,主要包括:(1)系統(tǒng)管理,包括用戶管理、數(shù)據(jù)庫管理和日志管理等;(2)T/R組件測試管理,包括被測件管理、測試參數(shù)管理、測試程序管理、測試結(jié)果管理、儀器驅(qū)動(dòng)管理以及校準(zhǔn)參數(shù)管理。

        經(jīng)過上述分析,利用SharpDevelop插件系統(tǒng)構(gòu)建T/R組件自動(dòng)測試系統(tǒng)軟件架構(gòu),其基本框圖見圖1。

        圖1 T/R組件自動(dòng)測試系統(tǒng)軟件架構(gòu)框圖

        框架主體包括以下三部分:

        1)框架基礎(chǔ)模塊

        (1)插件框架核心:該模塊作為整個(gè)框架的核心,后臺調(diào)度整個(gè)軟件在后臺運(yùn)行,提供各種服務(wù)。

        (2)儀器驅(qū)動(dòng)接口模塊:該模塊抽象出系統(tǒng)中常用的儀器功能接口,作為后期二次開發(fā)或替換時(shí)的契約協(xié)議。T/R組件的自動(dòng)測試常用設(shè)備包括:矢量網(wǎng)絡(luò)分析儀、脈沖發(fā)生器、脈沖調(diào)制器、測試夾具臺等[5];

        (3)被測組件管理模塊功能接口;

        (4)測試參數(shù)管理功能接口;

        (5)測試程序接口:T/R組件的主要參數(shù)包括:接收增益和隔離度、接收輸入輸出駐波、接收幅相一致性、接收相位精度、接收衰減器精度、噪聲系數(shù)、發(fā)射輸出功率、發(fā)射駐波、發(fā)射移相器精度、發(fā)射波形參數(shù)、發(fā)射功率調(diào)節(jié)范圍、發(fā)射電流、相位噪聲、頻譜分析等[6],按測試參數(shù)進(jìn)行抽象即可完成測試程序接口的定義。

        (6)測試結(jié)果數(shù)據(jù)管理接口;

        (7)校準(zhǔn)管理接口:可以根據(jù)測試校準(zhǔn)測試抽象出功率校準(zhǔn)、S21校準(zhǔn)、S12校準(zhǔn)、S11校準(zhǔn)、噪聲校準(zhǔn)等。

        基礎(chǔ)功能模塊主要用于定義管理功能接口,實(shí)際應(yīng)用中可以根據(jù)需要擴(kuò)展不同的基礎(chǔ)功能接口定義。

        2)框架主模塊

        (1)啟動(dòng)軟件的框架:包括了軟件的圖片資源等;

        (2)軟件的主窗體及相關(guān)應(yīng)用服務(wù);

        3)插件模塊

        插件模塊是對基礎(chǔ)模塊中所有已經(jīng)抽象定義的功能接口的具體實(shí)現(xiàn),其作為一個(gè)插件存在系統(tǒng)中,可以自由添加、替換,通過配置文件的配置管理,系統(tǒng)軟件在啟動(dòng)時(shí)動(dòng)態(tài)加載。在T/R組件自動(dòng)測試系統(tǒng)中,其擴(kuò)展性及通用性主要由插件模塊的不斷更新來體現(xiàn)。

        例如:儀器驅(qū)動(dòng)插件庫中,可以存放管理同為信號源的不同廠家、型號的驅(qū)動(dòng)庫,以插件形式存在,在需要更換儀器時(shí),只要在配置文件中配置所使用儀器對應(yīng)的驅(qū)動(dòng)即可,無需更改代碼和編譯程序,從而在框架的頂層設(shè)計(jì)時(shí)就保證了系統(tǒng)軟件的通用和可擴(kuò)展。

        4 基于SharpDevelop的T/R組件自動(dòng)測試系統(tǒng)軟件的設(shè)計(jì)方法

        基于SharpDevelop構(gòu)建的T/R組件自動(dòng)測試系統(tǒng)軟件采用了基于“接口—插件”系統(tǒng)的原理,其開發(fā)過程實(shí)質(zhì)就是各個(gè)功能模塊插件的開發(fā),在該軟件架構(gòu)基礎(chǔ)上開發(fā)T/R組件自動(dòng)測試系統(tǒng)程序的流程如圖2、圖3所示。

        T/R組件自動(dòng)測試系統(tǒng)中常用的矢量網(wǎng)絡(luò)分析儀的驅(qū)動(dòng)程序的開發(fā)過程如下:

        在系統(tǒng)軟件的框架基礎(chǔ)模塊中已定義矢量網(wǎng)絡(luò)分析儀驅(qū)動(dòng)接口InetWorkAnalysis,則新開發(fā)驅(qū)動(dòng)的過程為:

        1)以插件開發(fā)的方式,添加一個(gè)儀器驅(qū)動(dòng)的類庫。如:

        public class NetworkAnalyzerZNB8:DeviceDriver-Base.InetworkAnalyzerDriver,在此類庫中完成矢網(wǎng)驅(qū)動(dòng)控制功能的實(shí)現(xiàn)后,將其編譯生成應(yīng)用程序可調(diào)用的驅(qū)動(dòng)文件,其格式為動(dòng)態(tài)鏈接庫,將其命名為“NetworkAnalyzerZNB8.dll”。

        2)添加或修改系統(tǒng)軟件中的儀器驅(qū)動(dòng)描述配置文件,其示例代碼如下:

        <Path name= "/Workspace/DeviceDriver/">

        <DeviceDriver id= "NetworkAnalyzerZNB8"

        label="RS ZNB8 DriverModule"version="1.0"type="10"description="create by gratten on 2014-04-27"

        class= "NetworkAnalyzerZNB8.NetworkAnalyzerZNB8"/>

        </Path>

        在示例中,type表示的是儀器的ID號,分別代表不同類型的儀器,如電源“1”、信號源“2”、頻譜儀“3”等,以此類推。

        3)系統(tǒng)軟件中調(diào)用矢量網(wǎng)絡(luò)分析儀的驅(qū)動(dòng)

        T/R組件自動(dòng)測試系統(tǒng)軟件中驅(qū)動(dòng)的調(diào)用代碼如下:

        InetworkAnalyzerDriver_handlerNA;

        _handlerNA=DeviceDriverSession.Instance().Get-DriverInstance(InsIDService.Ins_NetowrkAnalyzer_ID.ToString())as InetworkAnalyzerDirver;

        if(_handlerNA!=null)

        {

        _handlerNA.Initialize();

        }

        else

        {

        MessageService.ShowError(NetworkAnalyzerDriver Initialize Faild);

        return;

        }

        在調(diào)用過程中,對儀器驅(qū)動(dòng)通過儀器ID主鍵來識別,這個(gè)ID主鍵來源于外配置文件。也就是說,軟件調(diào)用什么驅(qū)動(dòng)完全取決于外部配置內(nèi)容而不是內(nèi)部代碼,這樣就很好地保證了儀器替換的有效實(shí)現(xiàn)。同理,T/R組件測試軟件的其他諸如參數(shù)測試、系統(tǒng)校準(zhǔn)等功能模塊都可以通過同樣的機(jī)制實(shí)現(xiàn)。

        基于SharpDevelop構(gòu)建的T/R組件自動(dòng)測試系統(tǒng)軟件在架構(gòu)上保證了通用、可擴(kuò)展、可維護(hù),同時(shí)也提供了T/R組件自動(dòng)測試系統(tǒng)中儀器設(shè)備替換、測試程序復(fù)用的實(shí)現(xiàn)機(jī)制。雷達(dá)T/R組件自動(dòng)測試程序應(yīng)用實(shí)例如圖4所示。

        圖4 基于SharpDevelop開發(fā)的T/R組件自動(dòng)測試系統(tǒng)軟件

        5 結(jié)束語

        本文參考開源IDE軟件SharpDevelop的原理及組成,介紹了如何以SharpDevelop軟件框架為基礎(chǔ)來構(gòu)建軟件的架構(gòu),并以T/R組件自動(dòng)測試系統(tǒng)程序開發(fā)流程為例,說明在此架構(gòu)下構(gòu)建的自動(dòng)測試系統(tǒng)軟件程序具有更好的通用性及擴(kuò)展性。

        [1]蔣曉紅,李為玉,石 慧.T/R組件自動(dòng)測試系統(tǒng)的研制[C]//2007航空試驗(yàn)測試技術(shù)學(xué)術(shù)交流會.烏魯木齊:航空試驗(yàn)測試技術(shù)學(xué)術(shù)交流會,2007:11-12.Jiang Xiaohong,Li Weiyu,Shi Hui.Development of T/R module automatic test system[C]//meet of 2007 Aviation test and testing technology academic exchange.Urumqi:Meet of Aviation Test and Testing Technology Academic Exchange,2007:11-12.

        [2]方 鵬,趙秀才.自動(dòng)測試系統(tǒng)中儀器可互換技術(shù)及其應(yīng)用[J].儀器儀表學(xué)報(bào),2007,28(4):70-73.Fang Peng,Zhao Xiucai.Instruments exchangeability technique and its application in ATS[J].Chinese Journal of Scientific Instrument,2007,28(4):70-73.

        [3]張 軍,李志秀,王 銳,等.基于SharpDevelop插件架構(gòu)的研究及應(yīng)用[J].云南大學(xué)學(xué)報(bào)(自然科學(xué)報(bào)),2011.Zhang Jun,Li Zhixiu,Wang Rui,et al.SharpDevelop plug-in architecture based on the research and apply[J].Journal of Yunnan University(Natural Sciences Edition),2011.

        [4]裴 英.雷達(dá)數(shù)字T/R組件自動(dòng)測試系統(tǒng)設(shè)計(jì)[J].現(xiàn)代雷達(dá),2013(6):73-76.Pei Ying.Design of a digital T/R module automatic measuring system[J].Modern Radar,2013(6):73-76.

        [5]李為玉.TR組件S參數(shù)自動(dòng)測試軟件的設(shè)計(jì)和應(yīng)用[J].現(xiàn)代電子技術(shù),2012,35(13):123-125.Li Weiyu.Design and application of automatic testing software for TR component S-parameter[J].Modern Electronics Technique,2012,35(13):123-125.

        [6]盧 晨.T/R組件自動(dòng)測試技術(shù)研究[J].電子工程師,2003,29(9):35-42.Lu Chen.Study of T/R module auto-testing technology[J].Electronic Engineer,2003,29(9):35-42.

        猜你喜歡
        自動(dòng)測試功能模塊插件
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        JXG-50S型相敏軌道電路接收器自動(dòng)測試臺
        可并行測試的電磁兼容自動(dòng)測試系統(tǒng)的實(shí)現(xiàn)
        電子測試(2018年13期)2018-09-26 03:29:14
        關(guān)于某型雷達(dá)自動(dòng)測試系統(tǒng)的幾點(diǎn)認(rèn)識和建議
        電子制作(2018年11期)2018-08-04 03:26:00
        基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
        輸電線路附著物測算系統(tǒng)測算功能模塊的研究
        M市石油裝備公服平臺網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
        石油知識(2016年2期)2016-02-28 16:20:16
        MapWindowGIS插件機(jī)制及應(yīng)用
        功能模塊的設(shè)計(jì)與應(yīng)用研究
        基于Revit MEP的插件制作探討
        久久久诱惑一区二区三区| 国产啪亚洲国产精品无码| 国产精品久久久久久52avav | 麻豆91蜜桃传媒在线观看| 精品无码久久久久久国产| 国产精品半夜| 国产不卡一区二区av| 日韩精品一二三区乱码| 免费a级毛片18禁网站app| 老少交欧美另类| 无码一区二区三区在| 一个人午夜观看在线中文字幕| 公与淑婷厨房猛烈进出| 人妻少妇被猛烈进入中文字幕 | 日韩av在线手机免费观看| 国色天香中文字幕在线视频| 人人玩人人添人人澡| 日韩久久av电影| 91久久精品一区二区| 少妇粉嫩小泬喷水视频| 久久久精品久久日韩一区综合| 在线视频一区二区亚洲| 一区二区三区日本伦理| 国产男女无遮挡猛进猛出| 久久国产精彩视频| 白白白色视频在线观看播放 | 97碰碰碰人妻无码视频| 熟妇人妻中文字幕无码老熟妇| 免费国产在线精品三区| 精品少妇一区二区三区免费| 国产精品 人妻互换| 午夜亚洲AV成人无码国产| 激情免费视频一区二区三区| 欧洲成人一区二区三区| 亚洲成a人片在线观看天堂无码| 2022AV一区在线| 一区二区三区激情免费视频| 无码国模国产在线观看| 婷婷第四色| 日韩精品极视频在线观看免费 | 午夜一区二区视频在线观看|