□畢數(shù)學(xué)
阜陽轉(zhuǎn)播臺有7 個播出頻率,月末周二和平時周二的播出時間不同,需要由人工對每個頻率的播出時間進(jìn)行修改,月末周二修改一次,平時再改回來一次。每次修改耗時十余分鐘,還要對照表格仔細(xì)修改,以防出錯,對操作者的電腦水平要求較高。為了提高工作效率,確保播出時間不出錯,需要設(shè)計(jì)一款智能化的程序,用來快速準(zhǔn)確地修改發(fā)射機(jī)的播出時間。
開始,我們設(shè)計(jì)的程序使用JAVA編程語言,主要運(yùn)用了socket 編程技術(shù),對發(fā)射機(jī)的控制單元下發(fā)相關(guān)指令。由于研究不仔細(xì),對發(fā)射機(jī)自動監(jiān)控系統(tǒng)不熟悉,以為只要對監(jiān)控軟件的配置文件進(jìn)行修改替換即可,程序開發(fā)經(jīng)歷了兩次失敗。
歷失敗后,和同事進(jìn)行交流,對發(fā)射機(jī)監(jiān)控系統(tǒng)的有關(guān)資料進(jìn)行深入分析,我終于明白發(fā)射機(jī)播出時間等信息的修改是由電腦和發(fā)射機(jī)控制單元進(jìn)行數(shù)據(jù)交互來實(shí)現(xiàn)的,電腦本地的配置文件只是緩存,不起決定作用。
首先,使用抓包工具進(jìn)行抓包,獲得了監(jiān)控系統(tǒng)和控制單元之間的指令交互內(nèi)容。不過交互內(nèi)容非常多,需要根據(jù)端口和IP 進(jìn)行過濾篩選。
以圖1 為例進(jìn)行詳細(xì)解釋,鼠標(biāo)選中部分是一條修改播音時間的指令內(nèi)容。
52 01 00 04 00 01 00 00 01 04 00 02 00 00 02 04 00 02 17 00 ……
52 01 就是修改播音時間。后面每3 個16 進(jìn)制字符串就是一個時間,2 個時間構(gòu)成一個播音區(qū)間:00 04 00 01 00 00,就是星期日4:00 開機(jī)到星期一0:00 關(guān)機(jī);01 04 00 02 00 00 就是星期一4:00 開機(jī)到星期二0:00 關(guān)機(jī);02 04 00 02 17 00 就是星期二4:00 開機(jī)到星期二23:00 關(guān)機(jī)(十六進(jìn)制,17代表1×16+7=23)。
圖1 抓包信息
掌握了指令的規(guī)則,就可以模擬其內(nèi)容發(fā)送批量指令,達(dá)到一鍵修改發(fā)射機(jī)工作時間的目的。
在普通電腦上運(yùn)行監(jiān)控系統(tǒng),因?yàn)闊o法與發(fā)射機(jī)通信,監(jiān)控系統(tǒng)持續(xù)報(bào)錯,無法操作,更別提抓包。因此開發(fā)過程中最大的困難還是必須在機(jī)房真實(shí)環(huán)境進(jìn)行開發(fā),同時又不能影響安全播出。
使用本程序,修改多臺發(fā)射機(jī)工作時間,只需要鼠標(biāo)點(diǎn)擊幾下,靜候半分鐘就可以完成修改。智能化程序代替人工修改,杜絕了出錯的可能,保障了臺站的安全播出。教訓(xùn)是開始設(shè)想工具能全天運(yùn)行,到時間自動切換發(fā)射機(jī)工作時間,完全不用人工干預(yù)。但是因?yàn)楹驮瓉淼谋O(jiān)控軟件有端口沖突,不能同時運(yùn)行,使用工具時需要臨時關(guān)閉監(jiān)控軟件。如果要推廣到所有臺站,因?yàn)楦髋_站配置的IP、端口以及發(fā)射機(jī)頻率等條件不同,還需要做到根據(jù)配置文件智能適配,生成對應(yīng)的指令。多臺發(fā)射機(jī)開機(jī)時間相同,同時開機(jī)對電壓沖擊較大,改為錯開幾秒開機(jī),使整個系統(tǒng)穩(wěn)定。
①Elliotte Rusty Harold:《Java 網(wǎng)絡(luò)編程(第4 版)》,北京,中國電力出版社,2014,52-118。
②UllmanJ.D.:《數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程》,北京,機(jī)械工業(yè)出版社,2009,30-200。
③Bruce Eckel.:《Java 編程思想》,北京,機(jī)械工業(yè)出版社,2013,100-320。