專利名稱:軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種地鐵綜合監(jiān)控系統(tǒng)(ISCS,Intergrate Supervision and ControlSystem)和廣播系統(tǒng)通訊協(xié)議方法,屬于城市軌道交通領(lǐng)域。
背景技術(shù):
隨著國內(nèi)城市軌道交通以及自動化技術(shù)的迅速發(fā)展,越來越多的地鐵線路開始考慮或已經(jīng)在實施綜合監(jiān)控系統(tǒng),通過綜合監(jiān)控系統(tǒng)統(tǒng)一的軟硬件平臺將地鐵的比如環(huán)境監(jiān)控、火災監(jiān)控、供電、視頻監(jiān)控、廣播、乘客信息、售檢票、安全門、門禁等子系統(tǒng)全部接入實現(xiàn)系統(tǒng)間資源共享和共同維護管理等。綜合監(jiān)控系統(tǒng)和大量的子系統(tǒng)之間經(jīng)常涉及到通訊協(xié)議的方法,例如綜合監(jiān)控和廣播子系統(tǒng)之間的操作指令為簡單的基于過程的控制,而且在不同地鐵綜合監(jiān)控軟件使用 者可能會有不同的要求,隨時會更改或者增減某些功能,這就需要一種靈活開放的通訊語言來實現(xiàn)這一功能,并且需要將協(xié)議解釋這一塊單獨寫成一個模塊,以免增加一個參數(shù)而需要重新編譯整個前置通訊層的程序。XML是跨平臺的與軟硬件無關(guān)的處理信息工具,使用一系列簡單的標記描述數(shù)據(jù),而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數(shù)據(jù)要占用更多的空間,但XML極其簡單易于掌握和使用采用。XML格式語言進行交互可以靈活實現(xiàn)綜合監(jiān)控和廣播系統(tǒng)之間的簡單控制功能,還可以屏蔽操作系統(tǒng)的差異以及開發(fā)語言的差異。Libxml2是一個C語言的XML程序庫,它可以簡單方便的提供對XML文檔的各種操作,并且支持XPATH查詢,利用Libxml2庫我們可以很簡單的實現(xiàn)一些基于過 程的協(xié)議信息的XML打包與解析功能。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,能實現(xiàn)屏蔽操作系統(tǒng)差異和開發(fā)語言的差異,在不改動其它模塊的情況下修改或者增加多種操作功能。為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案分析ISCS和PA (廣播系統(tǒng))之間的通訊接口的特征將指令信息用XML格式文本來描述,并用程序來實現(xiàn)它。ISCS和PA之間的接口主要就是一些登陸、發(fā)布廣播、撤銷廣播、話筒廣播、背景音樂等操作,我們可以將這些命令分類歸納,總結(jié)出相應的數(shù)據(jù)描述形式,然后通過程序?qū)⑦@一數(shù)據(jù)描述進行封裝,當PA需要增加某些命令或改變某個命令的參數(shù)形式數(shù)量等都可以直接修改這一封裝庫。一種軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,包括以下步驟
(1)根據(jù)綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)的通訊協(xié)議說明文本提取信息建立XML解釋協(xié)議
庫;
(2)前置通訊層在接收到由應用層發(fā)送的操作指令后,由XML協(xié)議解釋模塊進行XML格式文件封裝,并將封裝好的XML數(shù)據(jù)流發(fā)送到網(wǎng)絡通信模塊;
(3)XML協(xié)議打包解釋模塊輪詢網(wǎng)絡通訊模塊接收的PA返回的XML數(shù)據(jù)流并負責對其進行解包分析并將結(jié)果反饋給應用層。前述的軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,其特征在于在所述步驟(I)中,包括以下處理過程分析通訊協(xié)議文本,提取通訊協(xié)議報文結(jié)構(gòu),并將該協(xié)議通過XML庫封裝成語法解釋模塊庫,支持跨平臺。前述的軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,其特征在于所述通訊協(xié)議內(nèi)容包括報文格式、報文指令類型以及指令所附帶的參數(shù)。本發(fā)明披露了一種軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,特點是它能夠靈活的處理和實現(xiàn)綜合監(jiān)控和廣播系統(tǒng)的通訊,能實現(xiàn)屏蔽操作系統(tǒng)差異和開發(fā)語言的差異,還能夠在不改動其它模塊的情況下輕松的修改或者增加多種操作功能,降低了修改程序的難度。
圖I綜合監(jiān)控系統(tǒng)ISCS和廣播系統(tǒng)PA通訊流程圖。圖2前置通訊層內(nèi)部結(jié)構(gòu)圖。
具體實施例方式下面是本發(fā)明的一個實際案例的實施方式,本發(fā)明的目的和特點也可以從案例的說明中看出。應當理解此處描述的實例僅僅用于說明和解釋本發(fā)明,并不限定本發(fā)明。圖I綜合監(jiān)控系統(tǒng)ISCS和廣播系統(tǒng)PA通訊流程圖,首先根據(jù)綜合監(jiān)控和PA子系統(tǒng)之間的事先約定的協(xié)議文本找出每一種操作命令XML封裝描述,例如發(fā)布一則廣播消息應該用怎樣的描述方法,然后將這些描述用程序的方式來實現(xiàn),我們利用開源的libxml2庫為程序提供函數(shù)去解析XML格式的文件,并將XML協(xié)議打包與解析工具開發(fā)成一個動態(tài)庫模塊M3,通訊程序作為另外一個獨立的動態(tài)庫模塊M4,專門從網(wǎng)絡接受和發(fā)送數(shù)據(jù)到PA子系統(tǒng),這樣通訊和協(xié)議解釋相互獨立,互不相干,當需要修改或者增減某些功能時可以直接修改協(xié)議庫模塊即可。前置通訊層內(nèi)部結(jié)構(gòu)如圖2,前置通訊層的XML協(xié)議打包解釋模塊包括主線程模塊和協(xié)議處理線程模塊,主線程模塊負責啟動網(wǎng)絡通訊模塊和協(xié)議處理線程模塊,同時負責管理接收發(fā)送緩沖隊列和檢測網(wǎng)絡通訊模塊和協(xié)議處理線程模塊的健康狀態(tài);網(wǎng)絡通訊模塊負責網(wǎng)絡數(shù)據(jù)的收發(fā),不停地將從網(wǎng)絡收到的有效數(shù)據(jù)寫入到接收數(shù)據(jù)隊列,并從發(fā)送隊列取出待發(fā)送數(shù)據(jù)發(fā)送到網(wǎng)絡;而協(xié)議處理線程模塊主要從接收數(shù)據(jù)隊列讀取XML數(shù)據(jù)流,根據(jù)雙方規(guī)定的具體通訊協(xié)議來做相應的解析,將相應的結(jié)果反饋到應用層去,然后將應用層接收的指令打包成XML描述文件數(shù)據(jù)流寫入到發(fā)送數(shù)據(jù)隊列等待網(wǎng)絡通訊模塊發(fā)送到PA子系統(tǒng)。下面結(jié)合一個實例進行詳細的說明。首先考慮一個綜合監(jiān)控和PA子系統(tǒng)之間簡單交互命令例如發(fā)布一條普通的預錄制語音廣播命令需要的參數(shù)為
1)發(fā)布類型,ISCS對PA的操作有很多種,如登陸、普通預錄制語音廣播發(fā)布、話筒廣播、廣播監(jiān)聽等;
2)操作員優(yōu)先級,子系統(tǒng)根據(jù)優(yōu)先級優(yōu)先播高優(yōu)先級廣播;
3)操作員ID,記錄操作者的ID號;4)預錄制語音編號,子系統(tǒng)事先錄制好的語音編號,每一個編號對應唯一的一個預錄制語首;
5)廣播區(qū)域選擇,只在選中的廣播區(qū)播放此次預錄制語音。我們根據(jù)每以上參數(shù)擬定一個合適的XML報文描述格式,描述如下
〈ACTION〉
<session_id> 會話 id</ session_id>
<seq_no> 操作流水號 </seq_no> <type>PRE_RECODE_AUDIO_START</type>
<params>
〈param name=,,operator_priority,,> 優(yōu)先級 </param>
〈param name=,,operator」d,,> 操作員 id〈/param>
〈param name=,,audio_id,,> 予頁錄制語音 id〈/param>
〈param name=,,area,,> 區(qū)域選擇 </param>
</params>
〈/ACTION〉
以上會話ID為ISCS系統(tǒng)通過PA指定的賬號向PA系統(tǒng)發(fā)出登錄請求,認證通過后,PA系統(tǒng)向ISCS返回成功標志及SessionID,否則返回失敗標志,成功后每次ISCS向PA系統(tǒng)發(fā)送操作時都將帶上這一個SessionID ;seq_no為操作流水號,每一個流水號對應一個唯一的一次操作。操作類型type為PRE_REC0DE_AUDI0_START表示為預錄制語音廣播,后面的4個參數(shù)分別為優(yōu)先級、操作員id、語音id、區(qū)域選擇。區(qū)域選擇為一串由0、1組成的字符串,對應的區(qū)域為0表示不選中,為I表示選中該區(qū)域。接著我們來看一下PA子系統(tǒng)回復的XML格式的描述如下
〈RESPONSE〉
<seq_no > 操作流水號 </seq_no >
〈code〉反饋代碼〈/code〉
〈results〉反饋結(jié)果〈/results〉
〈/RESPONSE〉
以上反饋就是對一般的操作的反饋,操作流水號即為ISCS向PA發(fā)布命令時候帶的流水號,反饋代碼即執(zhí)行結(jié)果代碼code,一般用0表示執(zhí)行成功,如果不等于0則可以從results的反饋結(jié)果中得到具體的失敗的原因,例如由于高優(yōu)先級占用,廣播失敗?,F(xiàn)在例如ISCS發(fā)布一條普通預錄制廣播信息命令過程如下首先應用層向前置通訊層發(fā)送一個普通廣播消息并附帶操作員優(yōu)先級1,操作員id 1001,語音id 100以及所選區(qū)域11110000等參數(shù),選區(qū)域11110000表示本車站一共8個廣播區(qū)域,只選擇前四個區(qū)域進行廣播,前置的協(xié)議解釋模塊將參數(shù)取出重新根據(jù)上面定義好數(shù)據(jù)格式打包封裝成XML格式的數(shù)據(jù)流,并將該數(shù)據(jù)流發(fā)送到通訊模塊最后發(fā)送到PA子系統(tǒng)。發(fā)送數(shù)據(jù)格式如下
〈ACTION〉
<session_id>123456</session_id>
<seq_no>l</seq_no><type>PRE—RECODE—AUDIO—START〈/type>
<params>
〈param name=,,operator—priority,,>l〈/param>
〈param name=,,operator—id,,>1001〈/param>
〈param name=,,audio」d,,>100〈/param>
〈param name=,,area,,>11110000</param>
</params>
〈/ACTION〉 如果PA反饋結(jié)果如下
〈RESPONSE〉
<seq_no >l〈/seq_no >
<code>0</code〉
<results>0</results>
〈/RESPONSE〉
則表發(fā)布成功。 如果PA反饋結(jié)果如下
〈RESPONSE〉
<seq_no >l〈/seq_no >
<code>l</code>
〈results〉高優(yōu)先級占用,發(fā)布失敗〈/results〉
〈/RESPONSE〉
則表示發(fā)布失敗,失敗代碼1,原因高優(yōu)先級占用。 協(xié)議解釋模塊將這一結(jié)果提取出來通知到后臺應用層,從而完成了整個廣播發(fā)布的過程。如果需要增加或者修改某個參數(shù),只需要修改協(xié)議解釋的模塊動態(tài)庫的程序代碼,無需修改主程序結(jié)構(gòu)。上述實施例不以任何形式限制本發(fā)明,凡采用等同替換或等效變換的方式所獲得的技術(shù)方案,均落在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,包括以下步驟 (1)根據(jù)綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)的通訊協(xié)議說明文本提取信息建立XML解釋協(xié)議庫; (2)前置通訊層在接收到由應用層發(fā)送的操作指令后,由XML協(xié)議解釋模塊進行XML格式文件封裝,并將封裝好的XML數(shù)據(jù)流發(fā)送到網(wǎng)絡通信模塊; (3)XML協(xié)議打包解釋模塊輪詢網(wǎng)絡通訊模塊接收的PA返回的XML數(shù)據(jù)流并負責對其進行解包分析并將結(jié)果反饋給應用層。
2.根據(jù)權(quán)利要求I所述的軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,其特征在 于在所述步驟(I)中,包括以下處理過程分析通訊協(xié)議文本,提取通訊協(xié)議報文結(jié)構(gòu),并將該協(xié)議通過XML庫封裝成語法解釋模塊庫,支持跨平臺。
3.根據(jù)權(quán)利要求I所述的軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,其特征在于前置通訊層的XML協(xié)議打包解釋模塊包括主線程模塊和協(xié)議處理線程模塊,主線程模塊負責啟動網(wǎng)絡通訊模塊和協(xié)議處理線程模塊,同時負責管理接收發(fā)送緩沖隊列和檢測網(wǎng)絡通訊模塊和協(xié)議處理線程模塊的健康狀態(tài);網(wǎng)絡通訊模塊負責網(wǎng)絡數(shù)據(jù)的收發(fā),不停地將從網(wǎng)絡收到的有效數(shù)據(jù)寫入到接收數(shù)據(jù)隊列,并從發(fā)送隊列取出待發(fā)送數(shù)據(jù)發(fā)送到網(wǎng)絡;而協(xié)議處理線程模塊主要從接收數(shù)據(jù)隊列讀取XML數(shù)據(jù)流,根據(jù)雙方規(guī)定的具體通訊協(xié)議來做相應的解析,將相應的結(jié)果反饋到應用層去,然后將應用層接收的指令打包成XML描述文件數(shù)據(jù)流寫入到發(fā)送數(shù)據(jù)隊列等待網(wǎng)絡通訊模塊發(fā)送到PA子系統(tǒng)。
4.根據(jù)權(quán)利要求I所述的軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,其特征在于所述通訊協(xié)議內(nèi)容包括報文格式、報文指令類型以及指令所附帶的參數(shù)。
全文摘要
本發(fā)明公開了一種軌道交通綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)通訊協(xié)議方法,包括以下步驟(1)根據(jù)綜合監(jiān)控系統(tǒng)和廣播系統(tǒng)的通訊協(xié)議說明文本提取信息建立XML解釋協(xié)議庫;(2)前置通訊層在接收到由應用層發(fā)送的操作指令后,由XML協(xié)議解釋模塊進行XML格式文件封裝,并將封裝好的XML數(shù)據(jù)流發(fā)送到網(wǎng)絡通信模塊;(3)XML協(xié)議打包解釋模塊輪詢網(wǎng)絡通訊模塊接收的PA返回的XML數(shù)據(jù)流并負責對其進行解包分析并將結(jié)果反饋給應用層。通過本發(fā)明提高了協(xié)議解釋的靈活性,縮短了開發(fā)周期。
文檔編號H04L12/18GK102739413SQ20121019680
公開日2012年10月17日 申請日期2012年6月14日 優(yōu)先權(quán)日2012年6月14日
發(fā)明者尹濤, 李巍巍, 沈滌凡, 陸艮峰 申請人:國電南瑞科技股份有限公司