999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-05-17 06:51:08楊為祿樓紅英
現(xiàn)代雷達 2015年11期
關(guān)鍵詞:功能模塊系統(tǒng)

楊為祿,樓紅英

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

0 引言

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

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

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

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

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

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

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

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

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

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

2 SharpDevelop的原理及組成

SharpDevelop是一個使用C#開發(fā)而成的,并為用于開發(fā)C#或者VB.NET項目軟件而設(shè)計的編輯器軟件,是完全開源的IDE開發(fā)工具。它基于插件技術(shù)來實現(xiàn)整個系統(tǒng),完全通過XML配置文件進行插接配置,是一個穩(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)是通過擴展點(Extension)中定義的路徑(Path)來關(guān)聯(lián)的,類似一個文件系統(tǒng)的目錄結(jié)構(gòu)。系統(tǒng)中的每一個插件都在配置文件中指定了 Extension,通過Extension中指定的 Path掛到這棵插件樹上。在系統(tǒng)中可以通過 AddTreeSingleton對象來訪問各個插件,以實現(xiàn)插件之間的互動。

3)擴展點(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>

指定了擴展點路徑為 /SharpDevelop/Workbench/Ambiences,也就是在插件樹中的位置。

4)Codon

Codon的功能是描述(包裝)一個功能模塊(一個功能模塊對應(yīng)一個實現(xiàn)了具體功能的命令類)。為了方便訪問各個插件中的功能模塊,Codon給各種功能定義了基本的屬性,分別是功能模塊的標識(ID)、功能模塊的類型(Name)。這個Name是addin文件定義中Codon的XML結(jié)點的名稱,ID才是真正的名稱,其中,Name可能是類(Class)、菜單項(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和具體實現(xiàn)該Codon的類名,在該示例中,類名為 ICSharpCode.SharpDevelop.Services.NetAmbience。運行期間將通過反射來找到對應(yīng)的類并創(chuàng)建其運行對象。

5)命令(Command)

正如前文所述,Codon描述了一個功能模塊,而每個功能模塊都是一個 ICommand的實現(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組件是雷達的核心,各種參數(shù)的自動化測試至關(guān)重要[4],T/R組件自動測試系統(tǒng)軟件通過儀器接口總線發(fā)出各類儀器的操作命令,同時控制被測組件的狀態(tài)切換,并接收系統(tǒng)中所有儀器設(shè)備的測試數(shù)據(jù)信息,對其進行分析處理,從而完成T/R組件參數(shù)的測試過程以及后期的數(shù)據(jù)分析和計算。

從功能上對系統(tǒng)軟件進行劃分,主要包括:(1)系統(tǒng)管理,包括用戶管理、數(shù)據(jù)庫管理和日志管理等;(2)T/R組件測試管理,包括被測件管理、測試參數(shù)管理、測試程序管理、測試結(jié)果管理、儀器驅(qū)動管理以及校準參數(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)度整個軟件在后臺運行,提供各種服務(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ù)進行抽象即可完成測試程序接口的定義。

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

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

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

2)框架主模塊

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

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

3)插件模塊

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

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

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

基于SharpDevelop構(gòu)建的T/R組件自動測試系統(tǒng)軟件采用了基于“接口—插件”系統(tǒng)的原理,其開發(fā)過程實質(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ū)動控制功能的實現(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)部代碼,這樣就很好地保證了儀器替換的有效實現(xiàn)。同理,T/R組件測試軟件的其他諸如參數(shù)測試、系統(tǒng)校準等功能模塊都可以通過同樣的機制實現(xiàn)。

基于SharpDevelop構(gòu)建的T/R組件自動測試系統(tǒng)軟件在架構(gòu)上保證了通用、可擴展、可維護,同時也提供了T/R組件自動測試系統(tǒng)中儀器設(shè)備替換、測試程序復(fù)用的實現(xiàn)機制。雷達T/R組件自動測試程序應(yīng)用實例如圖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)軟件程序具有更好的通用性及擴展性。

[1]蔣曉紅,李為玉,石 慧.T/R組件自動測試系統(tǒng)的研制[C]//2007航空試驗測試技術(shù)學(xué)術(shù)交流會.烏魯木齊:航空試驗測試技術(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]裴 英.雷達數(shù)字T/R組件自動測試系統(tǒng)設(shè)計[J].現(xiàn)代雷達,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è)計和應(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無人機系統(tǒng)
ZC系列無人機遙感系統(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標準的采購管理系統(tǒng)研究
風(fēng)景區(qū)潮汐性人流與可移動建筑設(shè)計研究
科技視界(2016年11期)2016-05-23 12:04:33
輸電線路附著物測算系統(tǒng)測算功能模塊的研究
主站蜘蛛池模板: 在线观看免费人成视频色快速| a色毛片免费视频| 国产91av在线| 亚洲欧美成人在线视频| 欧美成人怡春院在线激情| 色视频久久| 狠狠综合久久| 国产在线视频自拍| 久久五月天综合| 久久综合五月婷婷| 91麻豆国产视频| A级毛片无码久久精品免费| 99在线视频精品| 国产av色站网站| 中文字幕亚洲综久久2021| 成人永久免费A∨一级在线播放| 日本人又色又爽的视频| 久久久无码人妻精品无码| 中文字幕在线永久在线视频2020| 久久无码av三级| 亚洲免费播放| 91在线视频福利| 亚洲欧美日韩天堂| 色香蕉影院| 成人福利在线观看| 国产精品综合色区在线观看| 国产主播喷水| 亚洲无码免费黄色网址| 国产精品视频导航| 久久精品人妻中文系列| m男亚洲一区中文字幕| 亚洲国产日韩在线观看| 国产精品不卡永久免费| 一级爱做片免费观看久久| 一本一道波多野结衣一区二区| 亚洲天堂色色人体| 99在线观看国产| 成AV人片一区二区三区久久| 国产精品成人一区二区| 国产精品无码AⅤ在线观看播放| 亚洲va视频| 毛片一级在线| 久久天天躁狠狠躁夜夜2020一| 国产精品一老牛影视频| 亚洲第一综合天堂另类专| 国产在线一二三区| 日日噜噜夜夜狠狠视频| 欧美国产精品不卡在线观看 | 重口调教一区二区视频| 国产美女视频黄a视频全免费网站| 99精品影院| 国产系列在线| 在线精品视频成人网| 国产欧美日韩专区发布| 亚洲黄色视频在线观看一区| 国产三区二区| 国产精品一区二区国产主播| 国产精品3p视频| 日本爱爱精品一区二区| 日韩精品免费在线视频| 亚洲国产精品一区二区第一页免 | 成人免费午夜视频| 国产精品香蕉| 波多野结衣中文字幕一区| 欧美成人免费| 黄色一及毛片| 国产精品理论片| a级免费视频| h网站在线播放| 成人午夜免费观看| 国产日韩欧美成人| 精品亚洲国产成人AV| 爆乳熟妇一区二区三区| 91精品免费久久久| 国产第一色| 在线a网站| 国产精品一区二区久久精品无码| 亚洲国产天堂久久综合| 欧美在线导航| 激情午夜婷婷| 91原创视频在线| 久久久久中文字幕精品视频|