亚洲免费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)鍵詞:功能模塊系統(tǒng)

        楊為祿,樓紅英

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

        0 引言

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

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

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

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

        儀器設(shè)備中的驅(qū)動程序是測試系統(tǒng)中最重要的組成部分之一,用來實(shí)現(xiàn)儀器硬件的通信和控制功能[2],為降低開發(fā)成本,縮短開發(fā)周期,要求測試系統(tǒng)中的儀器硬件設(shè)備能夠不受生產(chǎn)廠家、型號的限制,通過系統(tǒng)軟件對配置的設(shè)備驅(qū)動程序自適應(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)行某個功能的擴(kuò)充,則必須要修改代碼重新編譯發(fā)布。這種傳統(tǒng)的軟件設(shè)計(jì)架構(gòu)給軟件的開發(fā)、測試、維護(hù)等帶來極大困難,往往軟件設(shè)計(jì)階段的耦合性控制不好就會在設(shè)計(jì)期和維護(hù)期遇到巨大的麻煩。通過引入插件技術(shù)能很好地解決該問題。

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

        2 SharpDevelop的原理及組成

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

        1)插件(AddIn)

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

        2)插件樹(AddInTree)

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

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

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

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

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

        </Extension>

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

        4)Codon

        Codon的功能是描述(包裝)一個功能模塊(一個功能模塊對應(yīng)一個實(shí)現(xiàn)了具體功能的命令類)。為了方便訪問各個插件中的功能模塊,Codon給各種功能定義了基本的屬性,分別是功能模塊的標(biāo)識(ID)、功能模塊的類型(Name)。這個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)部定義了一個 Codon,<Class...>表示該Codon是一個Class,接著定義了該Codon的 ID和具體實(shí)現(xiàn)該Codon的類名,在該示例中,類名為 ICSharpCode.SharpDevelop.Services.NetAmbience。運(yùn)行期間將通過反射來找到對應(yīng)的類并創(chuàng)建其運(yùn)行對象。

        5)命令(Command)

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

        6)服務(wù)(Service)

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

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

        T/R組件是雷達(dá)的核心,各種參數(shù)的自動化測試至關(guān)重要[4],T/R組件自動測試系統(tǒng)軟件通過儀器接口總線發(fā)出各類儀器的操作命令,同時控制被測組件的狀態(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ū)動管理以及校準(zhǔn)參數(shù)管理。

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

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

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

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

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

        (2)儀器驅(qū)動接口模塊:該模塊抽象出系統(tǒng)中常用的儀器功能接口,作為后期二次開發(fā)或替換時的契約協(xié)議。T/R組件的自動測試常用設(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)啟動軟件的框架:包括了軟件的圖片資源等;

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

        3)插件模塊

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

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

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

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

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

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

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

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

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

        <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ū)動

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

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

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

        5 結(jié)束語

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

        [1]蔣曉紅,李為玉,石 慧.T/R組件自動測試系統(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]方 鵬,趙秀才.自動測試系統(tǒng)中儀器可互換技術(shù)及其應(yīng)用[J].儀器儀表學(xué)報,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é)報(自然科學(xué)報),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組件自動測試系統(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ù)自動測試軟件的設(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組件自動測試技術(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.

        猜你喜歡
        功能模塊系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        商業(yè)模式是新媒體的核心
        中國廣播(2016年11期)2016-12-26 10:02:01
        基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
        風(fēng)景區(qū)潮汐性人流與可移動建筑設(shè)計(jì)研究
        科技視界(2016年11期)2016-05-23 12:04:33
        輸電線路附著物測算系統(tǒng)測算功能模塊的研究
        亚洲午夜无码久久yy6080| 粗大的内捧猛烈进出看视频| 国模丽丽啪啪一区二区| 免费啪啪视频一区| 亚洲国产一区二区三区在观看 | 欧美人与动zozo| 国产肥熟女视频一区二区三区| 9久久婷婷国产综合精品性色 | 日本精品一区二区三区试看| 精品国产一区二区三区2021| 国产精品久久一区二区三区| 国产精品国产三级在线高清观看 | 日韩亚洲国产av自拍| 亚洲av天堂一区二区| 在线观看免费无码专区| 亚洲av无码成人精品区在线观看| 无码91 亚洲| 国产的自拍av免费的在线观看| 和黑人邻居中文字幕在线 | 免费人成激情视频在线观看冫| 美女胸又www又黄的网站| 午夜日本精品一区二区| 插入日本少妇一区二区三区| 50岁熟妇大白屁股真爽| 亚洲动漫成人一区二区| 黄页免费人成网址大全| 久久人妻少妇嫩草av| 国产精品视频一区二区噜噜| 99久久精品国产亚洲av天| 青青草在线这里只有精品| 无码任你躁久久久久久久| AV成人午夜无码一区二区| 日本免费精品一区二区三区视频 | 国产成人无码免费看片软件| 人妻少妇人人丰满视频网站| 午夜视频一区二区三区播放| 久久成人国产精品免费软件| 精品国产AⅤ无码一区二区| 亚洲偷自拍国综合第一页国模| 国产在热线精品视频| 国产A√无码专区|