譚仕釗 陸光照
(廣西廣播電視技術中心河池分中心)
此前,臺站維護人員面對臺站設備通信故障的主要檢測方式是使用網線直接連接待測設備及調試電腦,并通過CMD命令提示符發送Ping指令來確定該設備的通信狀況。該方法存在操作繁瑣、面對多臺設備時效率低下等問題。
經過數次升級改造工作,目前廣西省境內所有廣播電視無線發射臺站的設備均已接入臺站交換機,并入內部局域網。這給臺站的維護工作提供了便利,但仍缺少一款能對臺站設備綜合進行檢測的軟件工具。因此,設計并實現這樣一款方便易用、能夠快速定位故障設備的軟件工具對提高維護人員的工作效率、保證安全播出工作的進行具有重要意義。
Ping指令全稱“因特網包探索器”,通過發送ICMP報文并接收ICMP回聲應答來確定網絡鏈路是否通暢,是TCP/IP協議的一部分。本文基于此原理,通過編程語言調用該指令并將獲得的反饋結果直觀展示。
本文所設計的通信快速檢測工具是在Windows10系統平臺下使用Microsoft Visual Studio 2017集成開發環境來完成設計和測試。使用C#語言編寫,運行在.NET Framework 3.5框架上。
臺站設備眾多,每一臺設備都有對應的操作軟件及成熟完善的故障處理方法,若全部整合則工作量巨大且屬于重復工作。因此本工具只需要檢測臺站內各式設備與交換機之間的通信情況即可。若設備與交換機之間的通信正常,則說明該設備與遠程監控平臺系統的通信亦正常,可以正常回傳上報數據進行監測,發現問題則可以及時處理。為了提高工作效率,本工具還應該適當加入一些快捷設置功能,方便維護人員跳過繁瑣的設置IP等步驟。在測試完成之后,本工具還應可直觀的保存檢測結果,遇到未能及時解決的問題時方便下次維護進行解決。
根據需求分析,本程序的主要功能可以分為IP配置模塊、查詢模塊、單項通信檢測模塊、集合檢測模塊以及保存模塊來實現。
1.IP 配置模塊
IP配置模塊在設計的時候應該考慮到易用性和直觀性,可以讓使用者直接通過選擇選項來確定IP地址,無需手動輸入,避免輸入錯誤等情況發生。同時直接顯示出當前的IP地址,讓使用者能確認IP地址的修改狀態。
程序啟動時,模塊下方的文本框內會顯示當前默認網卡的IP地址,如果存在多張網卡(例如虛擬機等程序創建的虛擬網卡)無法直接確定當前正在使用的網卡時,則彈出提示,使用者可以進入Windows網絡管理界面內右鍵禁用未使用的網卡后再操作。在下拉列表里選擇對應臺站后,文本框內會出現相應臺站的IP地址,此時只需要點擊“修改”按鈕即可將檢修電腦的IP修改為顯示的地址。修改完成后或IP地址發生變化時可以通過點擊“刷新”按鈕來讓文本框內顯示當前的IP。另外軟件會判斷文本框內的IP地址格式是否正確,如果格式錯誤則點擊修改按鈕的時候會提示錯誤。成功修改后也會有提示IP修改成功。
模塊功能的主要功能實現方法如下:
選擇臺站變更文本框內容:在ComboBox控件的選擇變更事件(SelectedIndexChanged)內使用switch case語句進行判斷,讓下方TextBox控件的內容隨選擇的值進行變更即可。
默認顯示當前IP(刷新按鈕):使用C#的ManagementClass類來獲取并顯示IP地址。
判斷IP地址格式是否正確:引用System.Text.RegularExpressions命名空間后調用Regex類,通過正則表達式來判斷IP地址是否正確。
2.查詢模塊
查詢模塊主要通過一個單獨的窗體來展示IP規劃表,使用者選擇對應的項目即可查看到對應設備的IP地址及端口等信息。由于IP規劃表主要劃分為1至3級臺站及鄉鎮臺站兩大部分。由于臺站IP都為統一規劃,只需在類別設置內添加鄉鎮臺站和1至3級臺站兩個選項即可。對臺站還可以更詳細的劃分為數字電視發射機系統、調頻發射機系統、信源及其他系統等多個選項以方便查閱。具體界面設計如圖1。
窗體使用兩個panel控件隔開,上方的panel內放置選擇窗體,下方的panel內放置存有IP規劃表的picturebox控件,通過comboBox控件的選擇事件來控制圖片的visible屬性進而實現對應圖片的顯示與隱藏。
3.單項通信檢測模塊
單項通信模塊用于單獨測試某設備的通信狀況。主要用在部分未接入遠程監控系統的設備(如鄉鎮臺站某品牌50W數字電視發射機功放單元)及單獨調試某設備時使用。如果設備支持網頁管理功能,則還可以調用瀏覽器直接打開管理頁面。
當在模塊內的文本框輸入一個IP地址,點擊測試按鈕即可對該IP地址的通信狀況進行檢測,并能實時反饋檢測結果。點擊模塊下方對應按鈕即可調用系統默認瀏覽器打開該IP所指向的網頁。

圖1 查詢模塊界面設計
測試通信功能主要使用System.Net.NetworkInformation命名空間下的Ping類來實現,使用Ping.Send()方法來進行通信狀態檢測,PingReply類則用來存儲返回的結果,如果PingReply對象的Status屬性和枚舉IPStatus.Success的值相同則表示通信正常。
4.集合通信檢測模塊
集合通信檢測模塊是整個程序的核心部分,其主要功能為檢測臺站內所有已經接入遠程監控系統設備的通信情況,并將檢測結果展示給使用者。
該模塊的檢測內容分為鄉鎮臺站和三級臺站兩個部分。考慮到調試電腦顯示分辨率可能不一致,同時為了方便控制總窗體的界面大小,使用tabControl控件來進行分隔放置。
某些設備存在多個檢測內容(如某品牌調頻發射機)或有主備機等多臺相同設備,為了方便查看將其整合到同一窗體,只需點擊“詳情”按鈕即可在彈出的窗口內看到該類型設備的通信情況。
點擊選項標簽后,窗體上方會顯示對應項目名稱,左側為設備名稱(或編號),右側為狀態。將檢修電腦接入臺站交換機后,點擊測試按鈕即可進行檢測。如未選擇檢測內容或沒有在IP配置模塊選擇對應臺站,則點擊測試按鈕會彈出提示窗口進行提醒。根據設備的通信狀態,檢測所需時間長短也各不相同,可以點擊“暫停”或“繼續”選項來暫停或中止檢測過程。
檢測過程使用Ping類來實現,但有一點需要注意:檢測過程對界面的控件狀態有較多更改,若用主線程直接操作控件,在同時處理大量界面刷新請求會導致界面卡死無響應,導致程序無法正常運行,因此必須使用委托(delegate)來進行對界面控件的操作。
5.保存模塊
保存模塊的主要功能是將檢測結果保存存檔,可直接調用.Net的System.Drawing.Bitmap類來截取當前窗體內容,并使用SaveFileDialog類將其截獲的圖片保存為以時間日期命名的文件。
各模塊設計完成后,將其整合為一個能正常運行、方便使用的軟件工具,設計階段基本完成。最終的軟件界面如圖2所示。
根據軟件設計規范,各模塊的工作應獨立進行,因此必須使用Threading類創建多線程來進行操作,否則會造成系統資源的搶占導致程序崩潰、卡死等。為每個模塊分配一個獨立的線程,同時在線程內再調用委托方法,確保程序正確運行。

圖2 軟件主界面
對該工具進行系統、全面的測試,程序運行過程中全部功能正常,未發現明顯Bug。投入實際維護工作中進行檢驗,亦能夠正確運行。圖3為某次測試得出的結果展示。

圖3 測試結果
隨著時代的發展,計算機技術與我們的生活工作變得密不可分。使用計算機技術實現高效管理,取代效率低下的人工管理,不僅僅是“互聯網+”概念在我們廣播電視工作中的實際應用,更是一種創新精神的體現。通過計算機技術來發揚創新精神,不但能極大的優化我們的工作方式,提高工作效率,更能為安全播出增添全新保障,確保整個廣播電視系統工作有序進行。