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

三種設計模式在頻率干擾分析軟件中的應用*

2016-06-21 09:20:41
計算機與數字工程 2016年5期

任 亮

(中國西南電子技術研究所 成都 610036)

?

三種設計模式在頻率干擾分析軟件中的應用*

任亮

(中國西南電子技術研究所成都610036)

摘要為了提前預警機場多部電臺共同工作時可能出現的相互通信干擾,需要根據電臺的工作參數和干擾分析規則進行頻率干擾分析,并將分析結果進行全員分享。針對實際工程中遇見的問題,筆者主要應用工廠模式實現各條分析規則、適配器模式實現頻率干擾分析軟件與已有的電臺控制軟件的兼容工作,以及應用單件模式實現頻率干擾分析結果的共享。通過三種軟件設計模式的應用,實現了頻率干擾分析的預警功能,并在實際工程應用中得到了較好的使用效果。

關鍵詞頻率干擾分析; 工廠模式; 適配器模式; 單件模式

Class NumberTP319

1引言

當機場地面多部電臺(包括短波電臺、甚高頻電臺和超短波電臺)在復雜多變的電磁環境中同時工作時,時常出現相互通信干擾的問題,造成通信質量下降,影響飛行安全。地面操作人員經常只能根據經驗進行通信模式和通信頻率的規劃和設定[4~5]。為了實現通信干擾的提前預警,筆者在機場通信系統升級改進工程中增加了頻率干擾分析功能,以解決此問題。

增加頻率干擾分析預警的功能主要要面對三方面的問題:

1) 機場每次所需的頻率干擾規則有可能發生變化,以應對不同的天氣情況和工作條件。這就需要地面操作員根據實際情況對頻率干擾分析規則(以下簡稱“規則”)進行動態靈活配置;

2) 在盡量少修改現有電臺監控軟件的基礎上,如何設計頻率干擾分析模塊,使其和現有的電臺監控軟件實現無縫鏈接,達到擴充現有電臺監控軟件功能的目的;

3) 頻率干擾分析的數據和結果需要網絡共享,可以供不同席位的操作員同時查看和參考。

本文提出了一種軟件解決方法,希望能為相關的應用提供有益的借鑒和參考。

2規則的設計與規則組合

為了實現不同天氣情況和工作條件下規則的靈活配置和調用,各項規則需要實現相同的接口,以便于軟件程序調用和組合。基于這種考慮,規則的創建與實現采用了工廠方法(Factory Method)[1~2]。

2.1工廠方法介紹

工廠方法(Factory Method)的意圖在于:定義一個用于創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。其結構如圖1所示。

圖1 工廠模式結構圖

其中:

1) Product:定義工廠方法所創建的對象接口;

2) ConcreteProduct:實現Product接口;

3) Creator:聲明工廠方法,返回一個Product類型的對象。也可以定義一個工廠方法的缺省實現,返回一個缺省的ConcreteProduct對象;

4) ConcreteCreator:重定義工廠方法以創建一個ConcreteProduct實例。

以下情況下適合使用工廠模式:

1) 當一個類不知道它所必須創建的對象的類的時候;

2) 當一個類希望由它的子類來指定它所創建的對象的時候;

3) 當類將創建對象的職責委托給多個幫助子類中的某一個,并且希望將哪一個幫助子類是代理者這一信息局部化的時候。

工廠模式存在兩種不同的實現情況:

1) Creator類是一個抽象類并且不提供它所聲明的工廠方法的實現。這種情況下需要子類來定義實現。這種情況也是我們在實際工程中運用的實現方式;

2) Creator是一個具體的類而且為工廠方法提供一個缺省的實現。它保證了子類的設計者能夠在必要的時候改變父類所實例化的對象的類。

2.2工程中工廠方法的實現

根據實際工程的需要,我們對各條規則進行公共接口的抽象,并將抽象的接口定義在父類CommonInterface中[9]。

公共接口說明:

1) GetDisturbInfo:獲取干擾信息描述;

2) GetRuleName:獲取規則描述;

圖2 CommonInterface類圖

3) GetJoinLinkNumber:參與頻率干擾分析的鏈路(或電臺)數量;

4) GetWorkInfoSign:規則是否需要電臺工作參數的標識,如果需要電臺參數,則需要將電臺工作參數以固定的格式作為參數傳入,以便于后續的頻率干擾分析;

5) SetAnalyseGrade:設置頻率干擾分析強度等級(包括基本規則分析和嚴格規則分析),不同的分析強度包含了不同數量、等級的規則,這根據實際應用中的需要進行動態地配置;

6) Start:規則分析(返回值說明:0:無干擾;1:輕微干擾;2:較強干擾;3:嚴重干擾)。

每一條具體規則作為父類的子類,根據具體的要求和需要各自實現父類公共的接口,并封裝為動態連接庫(Dynamic-Link Library,DLL),規則參數(如規則描述、規則干擾描述、規則等級等)通過XML文件進行配置,實現規則參數的動態配置。應用這種方式來實現規則,也便于規則的后續擴展與補充。

在此基礎上,筆者共設計、實現了23條涵蓋了短波(HF)電臺、甚高頻(VHF)電臺和超短波(UV)電臺相互間的干擾分析規則。作為頻率干擾分析軟件所需的規則素材,在實際應用中根據操作員的意圖和需要進行規則的組合和應用。

2.3規則的組合實現方法

各條具體規則實現后,如何將這些規則組合起來使用,也是需要解決的問題。由于各項規則各自實現了公共接口(見圖2),在規則的組合實現中就找到了實現的方法,這也是采用工廠模式的目的。

2.3.1規則的初始配置

首先要對23條規則進行初始配置。配置具體某條規則的規則描述、干擾信息描述、規則等級等。

2.3.2設定干擾分析等級

操作員根據不同天氣情況和工作條件設定干擾分析的等級。后續的干擾分析將根據該設定值對所有的規則進行遍歷和等級判斷,從而實現了規則的靈活配置和調用。

2.3.3傳遞電臺工作參數

通過父類CommonInterface中GetWorkInfoSign函數將電臺的工作參數傳遞給各項具體規則使用。具體規則根據整機的需要提取適合的工作參數以便于后續的干擾分析使用。

2.3.4規則集合的干擾分析

當操作員開始頻率干擾分析時,軟件流程圖如圖3所示。

圖3 頻率干擾分析流程圖

3與電臺監控軟件的兼容性設計

機場現有的電臺監控軟件集成了短波(HF)電臺、甚高頻(VHF)電臺和超短波(UV)電臺工作參數設置和監視功能。但在設置電臺工作參數時,操作員只能根據經驗或者通信效果來判斷電臺之間是否存在相互干擾,無法預先、直觀地判定干擾性質和干擾強度。

在已實現若干條規則的基礎上,需要擴展現有電臺監控軟件的功能。在控制電臺(包括短波電臺、甚高頻電臺和超短波電臺)時將電臺的工作參數同時傳遞給頻率干擾分析組件,以實時進行電臺間的頻率干擾分析,并將干擾分析結果顯示給操作員供評估。與用戶方交流過程中,用戶方希望盡量少修改現有電臺監控軟件代碼以保持原有軟件的穩定性。為實現這一目的,我們設計了一個軟件模塊,在電臺監控軟件與頻率干擾分析模塊之間架起一座相互通信的“橋梁”。經過分析決定采取適配器(Adapter Method)模式來實現。

3.1適配器方法介紹[7]

適配器方法(Adapter Method)的目的在于:將一個類的接口轉換成客戶希望的另外一個接口,是的原本由于接口不兼容而不能一起工作的那些類可以一起工作。適配器的結構如圖4所示。

圖4 適配器模式結構圖

其中:

1) Client:與符合Target接口的對象協同。在筆者參與的工程中是已經存在的電臺監控軟件;

2) Target:定義Client使用的與特定領域相關的接口;

3) Adapter:適配器類,對Adaptee的接口與Target接口進行適配,在該類中實現已有電臺監控軟件和頻率干擾分析模塊的兼容工作;

4) Adaptee:定義一個已經存在的接口,這個接口需要適配,在參與的工程中是頻率干擾分析類。

Client在Adapter實例上調用一些操作,適配器調用Adaptee的操作來實現這個請求。

以下情況下適用于適配器模式:

1) 想使用一個已經存在的類,但它的接口不符合需求;

2) 想創建一個可復用的類,該類可以與其他不相關的類協同工作;

3) 想使用一些已經存在的子類,但不可能對每一個都進行子類化以匹配它們的接口。

3.2工程中適配器方法的實現

在實際工程中,適配器類實現了電臺監控軟件和頻率干擾分析模塊之間接口轉換的封裝。電臺監控軟件通過適配器類提供的接口實現頻率干擾分析的運行,同時通過界面預先顯示頻率干擾分析的結果,供操作員參考。

通過應用適配器模式,實現了頻率干擾分析類與電臺監控軟件的無縫鏈接,使得以前無法一起工作的電臺監控軟件和頻率干擾分析模塊實現了兼容工作,同時電臺監控軟件的修改工作量也壓縮到了最小程度。

4頻率干擾分析的共享

為了實現頻率干擾分析數據和結果的共享,以供不同席位的操作員同時查看和參考,我們采用了單件模式(Singleton Method)來實現此功能。

4.1單件模式介紹

單件模式保證了一個類僅有一個實例,并提供了一個訪問它的全局訪問點。單件模式的結構圖如圖5所示。

圖5 單件模式結構圖

其中:

1) Singleton:定義了一個Instance操作,允許客戶訪問它的唯一實例。Instance是一個類操作,負責創建它自己的唯一實例。

客戶只能通過Singleton的Instance操作訪問一個Singleton的實例。單件模式的優點主要包括:

1) 對唯一實例的受控訪問:Singleton類封裝它的唯一實例,它可以嚴格的控制客戶怎樣以及何時訪問它;

2) 縮小名空間:Singleton模式是對全局變量的一種改進,避免了那些存儲唯一實例的全局變量污染名空間;

3) 允許對操作和表示的精化:Singleton類可以有子類,而且用這個擴展類的實例來配置一個應用是很容易的事情;

4) 允許可變數目的實例:這種模式使得根據用戶的需求進行修改變得非常簡單可行。

4.2工程中單件模式的實現

在C++中我們采用Singleton類的靜態成員函數Instance來定義這個類操作,同時還定義了一個靜態成員變量m_Instance,它包含了一個指向它的唯一實例的指針。

CRuleMediator類定義如下[3,6]。

class CRuleMediator

{

public:

static CRuleMediator* Instance();

virtual ~CRuleMediator();

protected:

CRuleMediator();

private:

static CRuleMediator* m_Instance; //單鍵實例對象指針

}

相應的實現是[8,10]

CRuleMediator* CRuleMediator::m_Instance = 0;

CRuleMediator* CRuleMediator::Instance()

{

if(m_Instance == 0)

{

m_Instance = new CRuleMediator;

}

return m_Instance;

}

通過單件模式,不同席位的操作員通過調用CRuleMediator類的全局訪問點Instance()訪問該類的唯一實例m_Instance。從而實現了頻率干擾分析數據和結果的共享。

5頻率干擾分析軟件的效果

通過應用工廠模式、適配器模式和單件模式,實現了頻率干擾分析規則的封裝、與電臺監控軟件的兼容工作和頻率干擾信息的共享,在機場電臺改進升級的工程項目中達到了很好的效果。圖6為頻率干擾分析結果的截屏。

圖6 頻率干擾分析的效果

6結語

本文以作者參與的一個工程項目為背景,著重討論了頻率干擾分析模塊的軟件模式設計。主要應用了工廠模式、適配器模式和單件模式來實現。在此基礎上,開發出符合項目需要的頻率干擾分析軟件,并在實際應用中獲得了較好的效果。

參 考 文 獻

[1] Erich Gamma Richard Helm Ralph Johnson John Vlissides.設計模式[M].北京:機械工業出版社,2007:458-466.

Erich Gamma Richard Helm Ralph Johnson John Vlissides. Design Patterns[M]. Beijing: China Machine Press,2007:458-466.

[2] Martin Fowler.重構—改善既有代碼的設計[M].北京:中國電力出版社,2008:186-197.

Martin Fowler. Refactoring: Improving the Design of Existing Code[J]. Beijing: China Infopower Press,2008:186-197.

[3] David J. Kruglinski. Visual C++技術內幕[M].第四版.北京:清華大學出版社,2003:286-290.

David J. Kruglinski. Visual C++[M]. 4th Edition. Beijing: Tsinghua Press,2003:286-290.

[4] 楊萬全,熊淑華,等.現代通信技術[M].成都:四川大學出版社,2000:81-91.

YANG Wanquan, XIONG Shuhua. Modern Communication Technology[M]. Chengdu: Sichuan University Press,2000:81-91.

[5] 曹志剛,錢亞生.現代通信原理[M].北京:清華大學出版社,1992:100-115.

CAO Zhigang, QIAN Yasheng. Modern Communication Principle[M]. Beijng: Tsinghua Press,1992:100-115.

[6] Stephen R. Davids. C++編程指南[M].北京:電子工業出版社,1996:121-125.

Stephen R. Davids. C++ Programme Guide[M]. Beijing: Publishing House of Electronics Infustry,1996:121-125.

[7] Kent Beck.重構過程如何運作[M].北京:中國電力出版社,1997:19-24.

Kent Beck. Make it Run, Make it Right: Design Through Refactoring[M]. Beijing: China Infopower Press,1997:19-24.

[8] Bertrand Meyer.面向對象設計[M].北京:清華大學出版社,1997:126-128.

Bertrand Meyer. Object Oriented Software Construcion[M]. Beijing: Tsinghua Press,1997:126-128.

[9] 官章全,劉加明.Visual C++ 6.0類庫大全[M].北京:電子工業出版社,1999:243-250.

GUAN Zhangquan, LIU Jiaming. Visual C++ 6.0 Microsoft Foundation Class Library[M]. Beijing: Publishing House of Electronics Infustry,1999:243-250.

[10] 錢能.C++程序設計[M].北京:清華大學出版社,2003:349-352.

QIAN Neng. C++ Programme Design[M]. Beijing: Tsinghua Press,2003:349-352.

Application of Three Design Patterns in Frequency-Disturb Analysis Software

REN Liang

(Southwest China Institute of Electronic Technology, Chengdu610036)

AbstractIn order to analyse the condition of frequency-disturb among broadcasting stations in airport when these stations do work in double harness. And sharing these analysis result are needed. Aiming at the problems encountered in practical engineering, factory method is applied to realize each analysis rule, adapter method is applied to realize the cooperation work between the frequency-disturb analysis software and the broadcasting station control software, and singleton method is applied in sharing of frequency interference analysis result. Though the application of three kinds of software design patterns, the early warning function of frequency interference analysis is realized, the frequency-disturb analysis software do the work well in project.

Key Wordsfreq-disturb analyse, factory method, adapter method, singleton method

* 收稿日期:2015年11月2日,修回日期:2015年12月13日

作者簡介:任亮,男,碩士,研究方向:通信電子技術。

中圖分類號TP319

DOI:10.3969/j.issn.1672-9722.2016.05.042

主站蜘蛛池模板: 97视频精品全国免费观看| 性色生活片在线观看| 成人精品免费视频| 日韩a级片视频| 亚洲色中色| 久久无码免费束人妻| 亚洲aaa视频| 91视频99| 欧美成人第一页| 亚洲免费福利视频| 亚洲性影院| 欧美亚洲日韩不卡在线在线观看| 日本高清免费不卡视频| 热re99久久精品国99热| 日韩国产黄色网站| 国产高潮流白浆视频| 亚洲浓毛av| 国产亚洲视频在线观看| 免费看一级毛片波多结衣| 在线欧美日韩| 國產尤物AV尤物在線觀看| 国产美女自慰在线观看| 色妞永久免费视频| 网友自拍视频精品区| 高清视频一区| 天堂成人av| 在线精品视频成人网| 久草热视频在线| 国产精品无码制服丝袜| 亚洲AⅤ波多系列中文字幕| 色吊丝av中文字幕| 99久久性生片| 99国产在线视频| 久久成人免费| 中文字幕天无码久久精品视频免费| 亚洲成人精品在线| 99在线免费播放| 91成人免费观看| 国产成人综合亚洲欧美在| 久久精品国产在热久久2019| 91精品国产综合久久不国产大片| 免费网站成人亚洲| 色综合久久无码网| 欧美一区福利| 99热这里都是国产精品| 美女无遮挡免费视频网站| 东京热一区二区三区无码视频| 日韩一区二区在线电影| 狠狠色婷婷丁香综合久久韩国 | 亚洲精品在线观看91| 国产人在线成免费视频| 日本a∨在线观看| 亚洲色图欧美| 丁香五月激情图片| 免费a级毛片18以上观看精品| 亚洲中文在线看视频一区| 亚洲av无码专区久久蜜芽| 亚洲欧美成人网| 国产黄在线免费观看| 久热re国产手机在线观看| 欧美精品色视频| 中文天堂在线视频| 亚洲无码高清免费视频亚洲| 日本道中文字幕久久一区| 91在线精品免费免费播放| 国产波多野结衣中文在线播放| 国产成人精品亚洲日本对白优播| 国内精品小视频在线| 欧美亚洲第一页| 欧美日韩一区二区在线播放| 亚洲三级影院| 亚洲欧美自拍视频| 久久毛片免费基地| 国产精品网拍在线| 亚洲色欲色欲www在线观看| 国产成人你懂的在线观看| 国产精品无码在线看| 亚洲欧美极品| 日本人真淫视频一区二区三区| 国产69囗曝护士吞精在线视频 | 亚洲男人天堂2020| 又黄又爽视频好爽视频|