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