王雅飛
[摘要]本文利用UML及其工具RationalR.ose對仿真系統進行總體設計,可視化描述了系統的功能需求、功能流程、類的結構與關系等;利用IP組播技術和雙緩沖區交替錄音(放音)解決了通信子網內語音傳遞的實時性問題。
[關鍵詞]通信仿真系統;UML;1Kadonal Rose;IP組播技術
1.通信仿真系統總體設計
依據現代網絡技術的發展和各終端擔負的功能,設計了基于C/S模式的通信仿真系統,系統分為訓練子系統和監控臺子系統。
訓練子系統由仿真終端和通控機,作為前端訓練平臺。仿真通信終端是在計算機端通過軟件模擬實際通信終端的外形和功能來實現。在同一通信子網內,通信終端通過TP組播技術相互通信。
監控子系統包括監控臺和監控屏幕,以監控臺為服務器,各仿真通信終端和操作工作臺作為客戶端。監控臺可根據通信終端參數的變化動態維護通信子網,查詢通信終端工作狀態。
2.通信仿真系統的UML建模
2.1建立系統類圖
系統類圖包括通信終端類圖和監控臺類圖兩部分。在通信終端類圖中,通信終端的主要功能依賴語音類、操作工作臺類、客戶端通信類實現。語音類通過對等網通信類接收或發送語音,而操作工作臺類與操作工作臺通過USB接口類傳遞參數信息,更新顯示界面。通控機與數傳通信終端的類圖相似。在監控臺類圖中,監控臺將功能分布在與其相關聯的各個類上,通過與這些關聯類的交互實現其功能。通信子網鏈表類負責管理通信子網的建立與銷毀,而通信子網由工作參數相同的通信終端組成,通控機鏈表類負責管理通控機,考核類同數據庫相結合進行考題的發送、更新及成績的處理。監控臺與各通信終端的通信依賴于服務器端通信類。
2.2系統動態模型
(1)通信終端狀態圖模型。在通信仿真系統中,以通信終端的狀態變化最為繁雜。通信終端開機經過自檢以后進入到待機狀態,待機狀態屬于組合狀態,通過模式開關的撥轉進行狀態轉換,待機狀態還有一個歷史狀態標記,用來記錄上次離開組合狀態時的最后一個活動子狀態,每當通信終端進入到組合狀態時,便恢復到上次離開該組合狀態時的最后一個活動子狀態。在待機狀態下,通過按壓通信終端界面上頻率、選項、抗干擾、PPT、數傳和w單按d,可以進入頻率設置狀態、工作方式設置狀態、密口或頻參數設置狀態、話傳狀態、數傳接口設置狀態和w單操作狀態。
(2)數傳通信終端操作過程活動圖模型。首先執行選擇所屬單位的操作,通信終端自檢結束后進入接收狀態。通信終端參數設置有手動方式和通控機遙控兩種方式。在手動方式下,通信終端需要同步更新液b屏幕顯示,以圖形或符號的形式反應通信終端的工作狀態或者提供操作提示,并且將變化的參數信息傳遞給通控機;在通控機方式下,通信終端則根據來自通控機的參數信息更新屏幕顯示以及操作工作臺的開關狀態。
(3)通信組網過程序列圖模型
監控臺的主要任務組織各通信操作人員進行通信組網訓練。其工作具體為根據各個通信終端的工作參數和所承擔的通信任務對通信終端進行分組,并為每組通信終端分配一個組播號,作為一個通信子網,子網內的通信終端可以進行組播通話。
2.3組件圖與配置圖
組件圖和配置圖是面向對象系統在物理方面進行建模時要用到的兩種圖,組件表示物理抽象,使用組件圖能夠可視化物理組件以及他們之間的關系,并描述其細節。配置圖描述了運行軟件的系統中硬件和軟件的物理結構,即系統執行處理過程中系統資源元素的配置情況以及軟件到這些資源元素的映射。
3.通信仿真系統關鍵技術實現
3.1組播技術的實現
通信終端在工作時需要向同一通信子網內的其它多部通信終端發送語音和數據,采用TP組播方式非常適合于分布式仿真系統中同時向多個接受者發送數據的情形。
TP組播網絡的實現依賴于IP組播地址,每一個地址代表一組主機,當進程向某個TP組播地址發送數據時,就是向該組中的每一個主機發送同樣的數據。
系統實現時采用基于Winsock2.0的API f數進行組播編程,通過f數WSASocket0設置組播為“無根”類型,在這種類型下,通信終端相當于葉節點,它可以加入任意一個組播組,而從葉節點發送的數據會組播到每一個葉節點。
3.2語音錄放功能的實現
在交互式系統中,需要采集實時音頻數據,并對聲音進行實時處理,這時必須借助于底層音頻服務f數,這些f數允許應用程序直接與底層音頻驅動程序通信,對播放和錄制提供更強、更靈活的控制。在具體實現時,系統采用底層的Windows音頻采樣API f數,為此需要一加Winmm.1ib庫。由于錄音和放音的過程具有實時性的特點,因此為錄音和放音分別開辟了一個工作線程,在錄音線程中,為錄音設備定義了兩塊音頻緩沖區交替錄音,即一塊緩沖區錄音滿后立即將音頻數據M貝到預先定義的數據緩沖區待處理,同時將另一塊音頻緩沖區裝入錄音設備,兩塊緩沖區如此循環使用,提高了工作效率。在播放線程中,接收和播放的工作原理也類似。
3.3監控臺的程序實現
監控臺軟件系統采用基于CFormView的單文檔程序架構來開發,應用多線程編程技術,主線程負責管理=口界面的更新和切換,以及處理用戶輸入請求;通信線程監聽終端的連接請求并負責發送和接收信息;數據處理線程將接收到的信息進行格式化,并更新數據庫。endprint