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