胡 巍 喻 芳 曾建成
(作者單位:湖南廣播電視臺(tái)廣播傳媒中心)
?
吉兆調(diào)頻發(fā)射機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)
胡 巍 喻 芳 曾建成
(作者單位:湖南廣播電視臺(tái)廣播傳媒中心)
摘 要:本文簡(jiǎn)述基于Windows平臺(tái)下,運(yùn)用c#編寫的程序使用SOCKET與服務(wù)器通信,服務(wù)器通過串口對(duì)吉兆發(fā)射機(jī)進(jìn)行遠(yuǎn)程控制,實(shí)現(xiàn)發(fā)射機(jī)的遠(yuǎn)程開機(jī)、關(guān)機(jī)、發(fā)送短信及郵箱給通知指定的用戶。
關(guān)鍵詞:C#;串口;SOCKET
湖南人民廣播電臺(tái)立體聲臺(tái)的德雅村機(jī)房,現(xiàn)在作為備用機(jī)房,承擔(dān)著7個(gè)頻道長(zhǎng)株潭地區(qū)發(fā)射覆蓋的任務(wù),6個(gè)頻道頻率為5kW,1個(gè)頻道頻率為10kW。6個(gè)頻率發(fā)射系統(tǒng)采用的是國(guó)產(chǎn)吉兆5kW發(fā)射機(jī),6工器,開關(guān)切換板,雙饋饋電,上下半幅四面八層水平偶極子天線發(fā)射。1個(gè)頻率為國(guó)產(chǎn)吉兆10kW發(fā)射機(jī),一副垂直極化單頻點(diǎn)南面6個(gè)北面2個(gè)振子的定向天線發(fā)射[1]。
為了更好地發(fā)揮計(jì)算機(jī)網(wǎng)絡(luò)在調(diào)頻臺(tái)的作用,由于現(xiàn)在德雅村機(jī)房作為備用機(jī)房,使用頻率比較少,為了節(jié)省人力資源,提高工作效率,將這里改為無(wú)人值守遠(yuǎn)程開關(guān)機(jī)控制機(jī)房,定期進(jìn)行維護(hù)。因此,決定開發(fā)德雅村機(jī)房遠(yuǎn)程開關(guān)機(jī)系統(tǒng)(文中簡(jiǎn)稱“該系統(tǒng)”),該系統(tǒng)是在Windows平臺(tái)下,利用c#語(yǔ)言編寫的遠(yuǎn)程開關(guān)機(jī)系統(tǒng),通過串口對(duì)機(jī)器進(jìn)行遠(yuǎn)程控制,并且實(shí)時(shí)采集發(fā)射機(jī)狀態(tài)的數(shù)據(jù)。
德雅村機(jī)房遠(yuǎn)程開關(guān)機(jī)系統(tǒng)是由客戶端,服務(wù)以及服務(wù)管理端組成。該系統(tǒng)可以在WINXP,WIN7,WIN8,WIN10等系統(tǒng)上運(yùn)行,并且通過串口接入湖南廣播電視臺(tái)的7個(gè)頻道,通過socket實(shí)現(xiàn)通信。
客戶端供員工使用,員工可在客戶端直接了解到當(dāng)前各發(fā)射臺(tái)的狀態(tài)、頻率、發(fā)射功率、反射功率等數(shù)據(jù),并能對(duì)各接入頻道進(jìn)行開關(guān)機(jī)操作(或一鍵對(duì)所有頻道進(jìn)行開關(guān)機(jī)),查詢到發(fā)射機(jī)的實(shí)時(shí)數(shù)據(jù),以及員工的登錄記錄。
服務(wù)端是為客戶端提供數(shù)據(jù)支持,以及對(duì)接收到的客戶端指令進(jìn)行解密并執(zhí)行,然后對(duì)發(fā)射機(jī)進(jìn)行指定的操作。服務(wù)端是軟件中的樞紐機(jī)構(gòu),任何相關(guān)指定都在此處匯總。服務(wù)管理端是對(duì)服務(wù)端進(jìn)行監(jiān)控管理的軟件,它會(huì)時(shí)刻監(jiān)控服務(wù)當(dāng)前的狀態(tài),并可控制服務(wù)端。發(fā)射機(jī)系統(tǒng)控制見圖1。
2.1 開發(fā)環(huán)境及使用工具
該系統(tǒng)是使用微軟的技術(shù),在.net的環(huán)境下開發(fā)的一套軟件,使用C#語(yǔ)言進(jìn)行編寫,包括了WINFORM管理端開發(fā)、window server開發(fā)、WPF界面開發(fā)。整個(gè)系統(tǒng)是Visual studio2013中進(jìn)行編譯,通過Access2010,串口調(diào)試助手,TCP/ UDP調(diào)試助手將服務(wù)器與設(shè)備相連接。
2.2 WPF界面
WPF是微軟推出的基于WINDOWS VISTA的用戶界面框架,屬于.NET3.0的一部分。WINDOWS VISTA見圖2。
2.3 Socket Tcp通訊
由于服務(wù)端運(yùn)行于放置在廣播臺(tái)內(nèi)部的使用固定公網(wǎng)IP電腦上,而客戶端運(yùn)行于可連接網(wǎng)絡(luò)的任意電腦上,所以服務(wù)端與客戶端必須使用socket進(jìn)行通信互聯(lián),客戶端才能獲取到服務(wù)器傳輸過來(lái)的數(shù)據(jù)。通信協(xié)議為自定協(xié)議,包括包頭、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)內(nèi)容、校驗(yàn)位、包尾。
圖1 發(fā)射機(jī)系統(tǒng)控制圖
2.4 串口通信
服務(wù)端與發(fā)射機(jī)采用串口通信,發(fā)射機(jī)提供串口通信協(xié)議,服務(wù)端開啟之后一直與發(fā)射機(jī)保持連接狀態(tài),每隔1秒發(fā)送獲取狀態(tài)的協(xié)議,即每秒更新一次發(fā)射機(jī)的當(dāng)前狀態(tài),可獲取到發(fā)射機(jī)的頻率、發(fā)射功率、反射功率等參數(shù)。然后,當(dāng)接收到客戶端訪問的時(shí)候,將發(fā)射機(jī)狀態(tài)轉(zhuǎn)換為對(duì)應(yīng)的byte數(shù)據(jù),發(fā)還給對(duì)應(yīng)的客戶端。
圖2 WINDOWS VISTA界面
2.5 Window 服務(wù)
由于服務(wù)端是時(shí)刻運(yùn)行著的程序,當(dāng)系統(tǒng)在注銷或多用戶的狀態(tài)下,也需要為客戶端提供服務(wù),所以服務(wù)端必須采用Window服務(wù)的方式進(jìn)行開發(fā)。程序開啟后,立即開始監(jiān)聽本地9872端口,客戶端可使用任意端口進(jìn)行連接,連接完成后即可開始服務(wù)。
2.6 DES加密
服務(wù)器與客戶端通信時(shí),為驗(yàn)證數(shù)據(jù)來(lái)源是否可靠,在數(shù)據(jù)接收后,第一時(shí)間使用DES進(jìn)行解密,只有解密通過的數(shù)據(jù)才認(rèn)為是可靠數(shù)據(jù),該數(shù)據(jù)將被轉(zhuǎn)換成命令進(jìn)行執(zhí)行,所以客戶端在發(fā)送數(shù)據(jù)時(shí),也應(yīng)該對(duì)發(fā)送的數(shù)據(jù)進(jìn)行DES加密。
2.7 短信郵件通知
為防止系統(tǒng)故障,或人為異常開關(guān)機(jī),系統(tǒng)采用了短信和郵件通知機(jī)制,當(dāng)系統(tǒng)開機(jī)或關(guān)機(jī)成功時(shí),系統(tǒng)會(huì)主動(dòng)發(fā)送短信和郵件到指定的手機(jī)上。短信由短信貓(一種短信發(fā)送設(shè)備)進(jìn)行發(fā)送,短信貓的協(xié)議也是串口通信。郵件使用了163郵件服務(wù)器。
3.1 客戶端
客戶端使用典型的三層架構(gòu)進(jìn)行區(qū)分,不過不同于傳統(tǒng)的三層架構(gòu)(傳統(tǒng)的三層架構(gòu)為UI,BLL,DAL三層),該系統(tǒng)由于客戶端數(shù)據(jù)是通過通信所獲取,即把該架構(gòu)調(diào)整為UI、BLL、通信層。
3.2 服務(wù)端
服務(wù)端使用工廠模式,設(shè)定一個(gè)命令基類,然后將所有執(zhí)行子類繼承于命令基類,根據(jù)傳輸?shù)拿铑愋?,工廠中創(chuàng)建相對(duì)應(yīng)的子命令,然后執(zhí)行命令。
通過筆者和同事的一起努力,吉兆調(diào)頻發(fā)射機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)準(zhǔn)備的控制發(fā)射機(jī)的開關(guān),及時(shí)準(zhǔn)確地發(fā)送開關(guān)機(jī)狀態(tài)到指定的郵箱,為無(wú)人值守奠定基礎(chǔ)。當(dāng)然,筆者也是處于試驗(yàn)階段,當(dāng)然還存在不可確定因素,也需要不斷完善,希望能和大家同步學(xué)習(xí),使電子化使日常的管理更加方便、高效。
參考文獻(xiàn):
[1]陳小珊,劉勇.大功率多工共饋系統(tǒng)的建設(shè)實(shí)踐[J].廣播與電視技術(shù),2013(10).