周明輝
(中央廣播電視總臺,北京 100866)
廣播電臺主控的主要作用是各頻率播出信號的傳輸、路由、監(jiān)測及應(yīng)急。傳輸是指播出信號從信號源端到主控的對外輸出端之間的信號鏈路及其相關(guān)設(shè)備。路由主要包含兩個功能,其一,各頻率播出機房之間的信號互用;其二,外部信號進(jìn)入主控后路由到所需頻率播出機房使用。路由功能主要通過基于基帶信號的矩陣和基于網(wǎng)絡(luò)架構(gòu)的IP 化音頻(Audio over IP,AOIP)系統(tǒng)完成。監(jiān)測主要包括視頻和音頻監(jiān)測兩個方面,音頻監(jiān)測要實現(xiàn)對傳輸過程的關(guān)鍵點實時監(jiān)測、監(jiān)看和監(jiān)聽。應(yīng)急是指對信號傳輸各個關(guān)鍵點出現(xiàn)的異態(tài)要有策略應(yīng)對,保障信號傳輸?shù)牟婚g斷性。主控應(yīng)急模擬系統(tǒng)基于Python 和PySide2 語言設(shè)計,實現(xiàn)了模擬各個關(guān)鍵點信號傳輸中斷時,系統(tǒng)實時產(chǎn)生應(yīng)急策略,并能一鍵應(yīng)急。模擬系統(tǒng)使用PySide2 語言設(shè)計和完成用戶界面[1],基于Python 語言完成邏輯代碼,系統(tǒng)分為信號傳輸端和應(yīng)急端。
信號傳輸端主要模擬主控信號傳輸鏈路,包括模擬傳輸鏈路上的設(shè)備以及各個監(jiān)測點信號產(chǎn)生中斷,鏈路從播出信號入主控接入音分開始,到播出信號進(jìn)入對外傳輸光端機結(jié)束。整個鏈路設(shè)計以實際運用為參考,分主、備兩路,具體如圖1所示。
圖1 信號傳輸端
信號傳輸端中的實線框體表示設(shè)備,箭頭代表信號傳輸方向,虛線框體顯示‘ON’表示信號通路正常,點擊虛線框體會變成灰色,模擬信號在該點中斷;再次點擊該框體,又恢復(fù)為虛線,表示信號恢復(fù)。信號源即從播出機房送達(dá)的主、備信號,首先分別進(jìn)入主控的主入和備入音頻分放,再分別傳輸給主矩陣和備矩陣。之后主、備信號分別通過主、備矩陣傳輸給主切換器和備切換器,也就是主、備切換器的第一路輸入信號均是主矩陣傳輸過來的播出主信號,第二路輸入信號均是備矩陣傳輸過來的播出備信號。主、備切換器的默認(rèn)輸出均是其第一路輸入信號,即主、備切換器的輸出信號均是機房傳輸過來的播出主信號。主、備切換器均有4 路輸入,其第三路和第四路輸入分別是AoIP 系統(tǒng)傳輸過來的信號和代播站傳輸過來的信號。AoIP 信號是采集的播出機房的輸出信號,該信號直接來自播出調(diào)音臺的輸出,未經(jīng)過延時器,而送給切換器第一路和第二路的主、備播出信號是分別經(jīng)過播出機房主、備延時器后的信號。代播信號在頻率直播情況下是備播節(jié)目,在頻率錄播情況下,是跟頻率實時節(jié)目相同的錄播節(jié)目。主、備切換器均輸出兩路信號,第一路輸出分別給主、備直通開關(guān),再分別傳輸給主、備光端機,由光端機對外傳輸信號;第二路輸出分別給主、備出音分,再傳輸給其他信號需求終端。
信號傳輸端要達(dá)到模擬實際信號鏈路傳輸?shù)男Ч?,需要設(shè)計和實現(xiàn)以下3 種邏輯功能。
從實際情況看,假設(shè)播出機房信號中斷,即進(jìn)入主控主入、備入音頻分放的信號均中斷,這種情況下主控傳輸鏈路后端各主、備監(jiān)測點均信號中斷,主、備切換器的輸入中只有代播信號正常,其他3 路輸入均中斷。在應(yīng)急端尚未應(yīng)急的情況下,切換器的兩路輸出均信號中斷,主、備光端機返送信號同樣也中斷。再比如,切換器的第二路備矩陣信號、第三路AoIP 信號或第四路代播信號中斷,并不影響切換器的輸出及其后端信號。
假設(shè)主入信號中斷,那么其后級的主、備切換器的第一路輸入主矩信號、切換器的兩路輸出信號、主和備光端機的返送信號均中斷,這些監(jiān)測點的中斷信息應(yīng)實時發(fā)送給應(yīng)急端。應(yīng)急端根據(jù)發(fā)送過來的信息做出對應(yīng)的應(yīng)急策略。模擬應(yīng)急系統(tǒng)采用套接字實現(xiàn)監(jiān)測點中斷信息在信號傳輸端與應(yīng)急端之間的傳輸[2],代碼如下:
self.udp_socket.sendto(send_data.encode(“gbk”),(self.sendip,self.sport))
傳輸?shù)臄?shù)據(jù)send_data 包含主、備切換器所有輸入監(jiān)測點及主、備返送監(jiān)測點的狀態(tài),每個監(jiān)測點有一個代碼,如果監(jiān)測點信號中斷,發(fā)送代碼,如果正常,發(fā)送字符“blue”。“sendip”和“sport”分別是應(yīng)急端的IP 地址和端口號。
這個功能具體是指,信號傳輸端接收來自應(yīng)急端的信息,信息包含應(yīng)急端采用應(yīng)急策略后,切換器輸出改變?yōu)槟囊宦份斎胄盘柤捌浜蠹壉O(jiān)測點的狀態(tài)變化。這個功能需要信號傳輸端不間斷地保持接收狀態(tài),采用了循環(huán)語句,具體如下。
strlist 是一個列表,里面的元素包含監(jiān)測點的改變信息。信號傳輸端根據(jù)收到的strlist 列表中的信息改變各監(jiān)測點的狀態(tài),從而實現(xiàn)應(yīng)急端應(yīng)急后,信號傳輸端監(jiān)測點能做出相應(yīng)變化[3]。
此外,從實踐來看,每一套頻率的設(shè)備相對獨立,因此每一套播出頻率對應(yīng)一個信號傳輸端。比如有兩套頻率,產(chǎn)生兩個信號傳輸端,模擬系統(tǒng)采用多進(jìn)程實現(xiàn)這個功能,代碼如下。
其中createroot01 和createroot02 函數(shù)用來產(chǎn)生兩個不同的信號傳輸端界面,且分別有不同的套接字參數(shù)udp_socket01 和udp_socket02[4]。只要這兩個函數(shù)的sendip 和sport 相同,它們就能向同一個應(yīng)急端發(fā)送數(shù)據(jù),同一個應(yīng)急端根據(jù)套接字綁定的不同IP 和端口號向多個信號傳輸端分別發(fā)送數(shù)據(jù)。
應(yīng)急端是包含所有頻率的應(yīng)急終端,每套頻率為一獨立應(yīng)急顯示單元,模擬系統(tǒng)按6 套頻率設(shè)計,界面如圖2 所示。
圖2 應(yīng)急端
每套頻率的應(yīng)急單元包括主、備切換器的4 個輸入監(jiān)測點狀態(tài)和主、備返送監(jiān)測點的狀態(tài),以及對主、備切換器進(jìn)行應(yīng)急操作的應(yīng)急按鈕。每套頻率對應(yīng)一個應(yīng)急按鈕,這樣在多套頻率出現(xiàn)異態(tài)需要點應(yīng)急按鈕應(yīng)急時會更快、更明確。應(yīng)急端需要實現(xiàn)4 種邏輯功能。
接收信息功能是在循環(huán)語句中使用套接字不間斷接收來自信號傳輸端的信息。接收到信息后,應(yīng)急端立即分析信息,首先判斷是哪個頻率的信息,然后將信息反映到相應(yīng)頻率應(yīng)急單元各監(jiān)測點狀態(tài),如果信號中斷則顯示紅色,正常則為綠色。
根據(jù)信號應(yīng)急實踐的邏輯,應(yīng)急按鈕有5 種不同的狀態(tài)顯示:按下切換、正在代播、代播更換、取消代播以及正常狀態(tài)顯示應(yīng)急按鈕,如圖3 所示。
圖3 應(yīng)急按鈕狀態(tài)
切換器的主矩陣輸入中斷時,應(yīng)急端從其他可用輸入信號中選擇優(yōu)先級最高的信號作為準(zhǔn)備切換的輸入,這時應(yīng)急按鈕顯示“按下切換”,點擊按鈕應(yīng)急,切換器的輸出就變更為準(zhǔn)備切換的輸入信號。此時,應(yīng)急按鈕顯示“正在代播”,即切換器的輸出不是來自主矩陣輸入信號,而是其他3 路輸入信號的情況。如果切換器切換到代播輸入信號,這時備矩陣或AoIP 信號恢復(fù),應(yīng)急端就會產(chǎn)生代播更換邏輯,提示切換器輸出代播信號切換到輸出備矩陣或AoIP 信號,應(yīng)急按鈕顯示“代播更換”,點擊按鈕完成代播更換,又回到“正在代播”狀態(tài)。如果主矩陣信號恢復(fù),應(yīng)急端提示切換器輸出切換到主矩陣信號,應(yīng)急按鈕顯示“取消代播”,點擊按鈕應(yīng)急,則應(yīng)急按鈕恢復(fù)正常狀態(tài)。
切換器的4 個輸入由高到低的優(yōu)先級為主矩陣、備矩陣、AoIP、代播,切換器會優(yōu)先選擇可用信號中優(yōu)先級最高的輸入作為輸出。模擬系統(tǒng)采用了數(shù)學(xué)模型來實現(xiàn)這個邏輯功能。建一個切換器輸入名稱的列表stuszh=[“主矩”,“備矩”,“AoIP”,“代播”],切換器在應(yīng)急狀態(tài)下窗口顯示的一般格式為“at>>>bt”,at 和bt 均是列表stuszh 中的元素,其中at 為切換器正在使用的輸入信號,而bt 表示應(yīng)急端給出的應(yīng)急策略,建議切換器輸出更換輸入為bt 的信號[5]。比如切換器狀態(tài)窗口顯示“主矩>>>備矩”,表示主矩信號中斷,應(yīng)急端提示切換器切換使用備矩信號,頻率顯示單元如圖4 所示。
圖4 應(yīng)急單元
當(dāng)切換器顯示“at>>>bt”時,有兩種可能:一種是at 優(yōu)先級高于bt,另一種是at 優(yōu)先級低于bt。當(dāng)出現(xiàn)前一種情況時,表示應(yīng)急按鈕應(yīng)顯示“按下切換”;當(dāng)出現(xiàn)后一種情況時,表示應(yīng)急按鈕應(yīng)顯示“取消代播”或“代播更換”。應(yīng)急端利用列表的索引號為以上邏輯關(guān)系建立起數(shù)學(xué)模型,設(shè)置at和bt 在列表stuszh 中的索引號分別為ax 和bx,索引號越小,優(yōu)先級越高。當(dāng)ax >bx,即表示bt 的優(yōu)先級高,當(dāng)ax <bx,即表示at 的優(yōu)先級高。同時,使用一個函數(shù)從信號傳輸端返回的信息中選擇切換器的最優(yōu)輸入信號et,其對應(yīng)列表stuszh 中元素的索引號為ex,如果切換器的所有4 路輸入信號均中斷,則給ex 設(shè)置一個大于3 的值,因為列表stuszh 的索引號最大值為3。當(dāng)ax >bx 時,有5 種情況,具體如表1 所示。
當(dāng)ax >bx >ex 時,如果ex 對應(yīng)的et 為主矩,則應(yīng)急操作為取消代播,否則為代播更換。表中變更后狀態(tài)即表示應(yīng)急端收到信號傳輸端傳來的信息后,切換器的應(yīng)急策略發(fā)生了變化。從表1 可以看出,盡管應(yīng)急端收到信號后會有5 種情況,但變更后的策略只有兩種:at>>>et 和at。當(dāng)ax <bx,也有類似5 種情況,分析的結(jié)果也同樣是變更后的策略只有兩種:at>>>et 和at。通過上述分析,可以將ax >bx 和ax <bx 兩種情況下分別出現(xiàn)的5 種可能共10 種可能合并,這樣可以簡化編寫的代碼,如下所示。
表1 應(yīng)急端切換策略表
其中,stus 是切換器4 個輸入的代碼列表,與stuszh 對應(yīng);qhuan 是切換器的狀態(tài)窗口。此外,還有兩種可能性,即et 或at 不在列表stuszh 中,此時表示切換器的4 個輸入均已中斷,已無法使用切換器應(yīng)急,應(yīng)采取其他辦法。比如直通信號或跳線應(yīng)急,模擬系統(tǒng)應(yīng)急端切換器狀態(tài)窗口顯示為“直通”,此時切換器也會有一個保持的輸入選擇狀態(tài)。如果切換器有輸入信號恢復(fù)正常,應(yīng)急端會提示切換器從保持選擇的輸入更換到最優(yōu)可用輸入信號。
應(yīng)急端應(yīng)急對切換器的后級監(jiān)測點會有影響,而對切換器的前級監(jiān)測點無法應(yīng)急,因為應(yīng)急端應(yīng)急是通過控制切換器選擇不同的輸入來改變切換器的輸出狀態(tài)。應(yīng)急端應(yīng)急成功后,切換器后級的主出、備出、主返送和備返送監(jiān)測點信號就會從信號中斷狀態(tài)變更為有信號狀態(tài),這種狀態(tài)變化需要應(yīng)急端發(fā)送給信號傳輸端,信號傳輸端根據(jù)應(yīng)急端發(fā)送過來的信息改變相應(yīng)監(jiān)測點的顏色狀態(tài)。應(yīng)急端發(fā)送信息同樣是通過套接字發(fā)送,因為模擬系統(tǒng)各頻率的信號傳輸端使用同一個IP 但端口號不同,所以給不同頻率信號傳輸端發(fā)送信息的套接字綁定的端口號各不相同。
主控應(yīng)急模擬系統(tǒng)能夠?qū)⒅骺貞?yīng)急系統(tǒng)的基本流程和現(xiàn)象模擬出來。設(shè)計和開發(fā)模擬系統(tǒng),對深入認(rèn)識和掌握實踐中主控應(yīng)急系統(tǒng)的建設(shè)大有裨益,尤其是其中包含的邏輯關(guān)系和流程。掌握了模擬系統(tǒng)設(shè)計,在對實踐中主控應(yīng)急系統(tǒng)進(jìn)行測試時,就能更加深入到邏輯細(xì)節(jié),有利于完善實踐應(yīng)急系統(tǒng)。主控應(yīng)急模擬系統(tǒng)還可以加入一些智能元素和功能,進(jìn)一步探索智能化的應(yīng)急系統(tǒng)。