井福榮
摘要:信息系統(tǒng)旨在幫助高速公路收費(fèi)站的后臺(tái)一體化運(yùn)營(yíng)管理,實(shí)現(xiàn)后臺(tái)服務(wù)中心與各個(gè)收費(fèi)站點(diǎn)的信息的同步和智能化的管理。信息的實(shí)時(shí)與同步是每個(gè)企業(yè)增強(qiáng)管理、提高工作效率的基礎(chǔ),該文設(shè)計(jì)實(shí)現(xiàn)的車道實(shí)時(shí)對(duì)講系統(tǒng)就是做到每個(gè)收費(fèi)站點(diǎn)的信息與后方服務(wù)中心的實(shí)時(shí)同步,確保后臺(tái)服務(wù)中心與各個(gè)站點(diǎn)的無障礙交流。
關(guān)鍵詞:實(shí)時(shí)通信;信息同步;車道系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)20-0066-04
Design and Implementation of Lane System Based on C++
JING Fu-rong
(School of Information Engineering, Jiangxi University of Science and Technology, Ganzhou 341000, China)
Abstract: Information system is designed to help the highway toll station in the background of integrated operations management, to achieve the background service center and the information of the various toll stations to synchronize and intelligent management. Each enterprise should strengthen management of Information real-time and synchronization and improve work efficiency. This paper presents the design and implementation of lane real-time intercom system is to achieve real-time synchronization for each charge of site information and the rear service center, to ensure that the background service center and each site of barrier free communication.
Key words: real time communication; information synchronization; lane system
當(dāng)今社會(huì),互聯(lián)網(wǎng)的飛速發(fā)展,給人們的工作和生活帶來了極大的便利和效率,信息化,電子化的管理,實(shí)時(shí)的相互通訊成為了人們工作中的一部分;近年來,我國道路交通事業(yè)的飛速發(fā)展,取得諸多輝煌的成績(jī),但同一些發(fā)達(dá)國家比起來,我國的交通運(yùn)輸業(yè)還是存在一定的差距,尤其在智能交通領(lǐng)域這一塊,我國的普及率遠(yuǎn)不及一些歐美發(fā)達(dá)國家,那么如何實(shí)現(xiàn)交通領(lǐng)域的智能化管理,節(jié)約運(yùn)營(yíng)成本,提高交通事業(yè)的運(yùn)營(yíng)效率,就成了我們?cè)谖磥韼啄陙斫煌ㄊ聵I(yè)發(fā)展的關(guān)鍵指標(biāo),車道實(shí)時(shí)對(duì)講系統(tǒng)旨在幫助高速公路收費(fèi)站的后臺(tái)一體化運(yùn)營(yíng)管理,實(shí)現(xiàn)后臺(tái)服務(wù)中心與各個(gè)收費(fèi)站點(diǎn)的信息的同步和智能化的管理。
信息的實(shí)時(shí)與同步是每個(gè)企業(yè)增強(qiáng)管理、提高工作效率的基礎(chǔ),車道實(shí)時(shí)對(duì)講系統(tǒng)就是要做到每個(gè)收費(fèi)站點(diǎn)的信息與后方服務(wù)中心的實(shí)時(shí)同步,并且實(shí)現(xiàn)后臺(tái)服務(wù)中心與各個(gè)站點(diǎn)的無障礙交流,后臺(tái)服務(wù)中心可以方便的對(duì)其管理的每個(gè)站點(diǎn)進(jìn)行信息的廣播、交流,站點(diǎn)在也可以方便實(shí)時(shí)的告知后方服務(wù)中心自己目前的狀況,真正做到信息的實(shí)時(shí)同步。
本系統(tǒng)是車道收費(fèi)系統(tǒng)中的一個(gè)子系統(tǒng),主要用于加強(qiáng)收費(fèi)站的各個(gè)車道站點(diǎn)與后臺(tái)服務(wù)中心的聯(lián)系,由于高速公路收費(fèi)站點(diǎn)的特殊性,大多處在偏僻的地方,遠(yuǎn)離社區(qū),那么確保各個(gè)站點(diǎn)的信息的同步以便及時(shí)處理相關(guān)的收費(fèi)站點(diǎn)信息就顯得至關(guān)重要,本系統(tǒng)很好的實(shí)現(xiàn)了這個(gè)目標(biāo)。
1 系統(tǒng)需求分析[]
1.1 功能需求
1)功能需求分析
系統(tǒng)構(gòu)建的過程中最主要的步驟之一就是先做好需求分析,需求分析是軟件生存周期中的關(guān)鍵一步。根據(jù)軟件工程學(xué)中開發(fā)軟件的要求,對(duì)系統(tǒng)全部功能和相關(guān)的技術(shù)進(jìn)行具體的分析,分析時(shí)采用結(jié)構(gòu)化的分析方法,自頂向下、逐層分解問題。結(jié)合企業(yè)要求以及實(shí)際的具體分析,要求本系統(tǒng)具有以下功能:
服務(wù)器端界面要求有:管理界面要求美觀大方,個(gè)性化;各模塊無間隙融合,操作簡(jiǎn)潔,功能豐富;能夠很好的識(shí)別出各個(gè)車道站點(diǎn)的信息,具有默認(rèn)排序功能;能夠記錄最近通話的站點(diǎn),當(dāng)前報(bào)警的站點(diǎn)、通話請(qǐng)求的站點(diǎn)。
客戶端端因內(nèi)嵌在window xp操作系統(tǒng)中,默認(rèn)開啟的服務(wù)形式,所以沒有任何界面顯示,主要響應(yīng)系統(tǒng)按鈕:報(bào)警按鈕、對(duì)講按鈕、音量控制(+、-,靜音)等。
2)功能詳細(xì)需求
服務(wù)器端具有的功能有:
①對(duì)講、接受對(duì)講:服務(wù)器可以單擊相應(yīng)模塊直接和客戶端進(jìn)行對(duì)講;當(dāng)客戶端請(qǐng)求通話時(shí),服務(wù)器單擊相對(duì)應(yīng)的客戶端模塊,就可以接受對(duì)講。
②廣播:服務(wù)器端可以對(duì)所有當(dāng)前連接的客戶端進(jìn)行廣播,通知重要的消息。
③錄音:客戶端和服務(wù)器進(jìn)行對(duì)講通話的時(shí)候,可以對(duì)通話內(nèi)容進(jìn)行錄音,以便備用。
④音量控制(+、-、靜音):控制調(diào)節(jié)音量大小。
⑤收費(fèi)車道信息提示包括:車道號(hào)、收費(fèi)員姓名、收費(fèi)時(shí)間等,客戶端連接到服務(wù)器時(shí),會(huì)在服務(wù)器這邊進(jìn)行相應(yīng)的顯示其當(dāng)前的具體的一些信息。
⑥狀態(tài)提示:每個(gè)客戶端上班、下班、請(qǐng)求通話、通話中、報(bào)警,網(wǎng)絡(luò)錯(cuò)誤等狀態(tài)都會(huì)在服務(wù)器進(jìn)行相應(yīng)的顯示,客戶端和服務(wù)器實(shí)時(shí)保持狀態(tài)信息同步。
客戶端具有的功能有:
①報(bào)警:當(dāng)收費(fèi)員收費(fèi)過程中難免會(huì)遇到一些緊急情況,如車主違規(guī)操作,收費(fèi)員人身收費(fèi)威脅等情況,這種情況下一鍵報(bào)警的功能就很有必要,系統(tǒng)實(shí)現(xiàn)了這個(gè)功能。
②請(qǐng)求通話:如果客戶端有需要和后臺(tái)通話的情況時(shí),可以很方便的使用通話按鈕進(jìn)行請(qǐng)求通話,后臺(tái)服務(wù)中心接受之后,就可以進(jìn)行通話。
③音量控制(+、-、靜音):服務(wù)器廣播或客戶端服務(wù)器進(jìn)行對(duì)講通話時(shí)可以隨時(shí)調(diào)節(jié)控制客戶端的音量大小。
1.2 系統(tǒng)性能要求
1) 時(shí)間性能要求:在實(shí)際應(yīng)用中由于客戶端的大量頻繁的訪問,服務(wù)器響應(yīng)時(shí)間應(yīng)該盡可能縮短,對(duì)于有特殊需求的應(yīng)用,還要求達(dá)到實(shí)時(shí)響應(yīng)。
2)存儲(chǔ)性能要求:根據(jù)應(yīng)用中的實(shí)際情況配置適當(dāng)容量的存儲(chǔ)設(shè)備,特別是音頻存儲(chǔ)設(shè)備容量方面要適當(dāng)?shù)门渲谩?/p>
3) 穩(wěn)定性安全性要求:要求軟件盡可能的穩(wěn)定,對(duì)于一般的應(yīng)用系統(tǒng),對(duì)安全性要求不高,對(duì)于特殊的應(yīng)用,還需要在安全性方面加以保證,所以要相應(yīng)提高服務(wù)器端的配置。
2 總體設(shè)計(jì)
1)車道對(duì)講系統(tǒng)原理及示意圖
車道對(duì)講系統(tǒng)本質(zhì)是語音通訊和文本通訊的結(jié)合,服務(wù)器和客戶端是一對(duì)多的連接,服務(wù)端和客戶器的整體設(shè)計(jì)如圖1所示:
圖1 整體設(shè)計(jì)圖
① 音通訊
語音通訊在windows操作系統(tǒng)下可以采用Microsoft提供的WaveX低級(jí)音頻函數(shù)實(shí)現(xiàn),主要的原理就是音頻采集、編碼、發(fā)送、解碼、播放等幾個(gè)階段。
②文本通訊
文本通訊相比語音通訊比較簡(jiǎn)單,這里我們利用文本通訊發(fā)送自定義的協(xié)議消息包,在客戶端和服務(wù)器使用TCP/IP協(xié)議進(jìn)行socket連接之后,主要發(fā)送自定義的協(xié)議消息包:
圖2 文本通訊原理圖
2)總體結(jié)構(gòu)及示意圖
車道對(duì)講系統(tǒng)客戶端和服務(wù)器端的交互其本質(zhì)上最終是語音和文本的交叉通訊,其總體結(jié)構(gòu)示意圖如圖3:
圖3 總體結(jié)構(gòu)
① 音通訊:
圖4 語音通訊結(jié)構(gòu)圖
②文本通訊:
圖5 文本通訊結(jié)構(gòu)圖
3)總體程序流程及示意圖
圖6 總體流程圖
車道對(duì)講系統(tǒng)有客戶端和服務(wù)器兩部分組成,服務(wù)器可以連接多個(gè)客戶端,客戶端連接之后,都會(huì)在服務(wù)器的具體位置顯示其指定的標(biāo)識(shí),當(dāng)客戶端和服務(wù)器連接之后,就可以進(jìn)行語音文本等具體信息的交互、客戶端和服務(wù)器連接的程序流程圖如圖6。
3 車道系統(tǒng)的詳細(xì)實(shí)現(xiàn)
3.1整個(gè)系統(tǒng)的開發(fā)
系統(tǒng)開發(fā)采用的是C++ builder,為了說明代碼的編寫,下面以“網(wǎng)絡(luò)音頻數(shù)據(jù)傳輸”模塊為例進(jìn)行闡述:
網(wǎng)絡(luò)數(shù)據(jù)流不間斷的傳送與接收是語音通訊流暢的基礎(chǔ),本系統(tǒng)采用TCP/IP協(xié)議來實(shí)現(xiàn)這個(gè)目的。C++ builder提供了用于socket通信的控件,使用socket控件clientsocket控件和serversocket控件可以很方便的使服務(wù)器和客戶端進(jìn)行通信,只要clientsocket控件和serversocket控件設(shè)置的通信端口號(hào)一致,serversocket控件設(shè)置為偵聽狀態(tài),clientsocket控件這邊連接即可實(shí)現(xiàn)通信,具體流程圖如圖7:
圖7 音頻數(shù)據(jù)的輸入輸出
代碼具體實(shí)現(xiàn)如下:
1)socket連接:
本段代碼由于客戶端和服務(wù)器socket連接,當(dāng)serversocket和clientsocket的Active屬性為true,且端口號(hào)一致的情況下,客戶端和服務(wù)器就建立了連接。
2)音頻輸入輸出設(shè)備打開:
本段代碼封裝了Microsoft低級(jí)音頻打開音頻輸入輸出函數(shù),方便用于接收輸出音頻數(shù)據(jù)流。
3)音頻數(shù)據(jù)發(fā)生和接收:
Socket控件提供了用于接收發(fā)發(fā)送數(shù)據(jù)流的函數(shù),即上面的SendBuf和ReceiveBuf函數(shù),可以用于接收音頻數(shù)據(jù)數(shù)據(jù)流。
4)音頻輸入輸出設(shè)備關(guān)閉:
當(dāng)斷開通話時(shí),需要關(guān)閉音頻輸出輸出設(shè)備,停止數(shù)據(jù)流的輸入輸出,可以使用上面的兩個(gè)函數(shù)。
3.2 界面模塊劃分及其實(shí)現(xiàn)
本系統(tǒng)服務(wù)器端劃分為5個(gè)模塊,車站列表顯示模塊、車道信息顯示模塊、功能按鍵操作模塊、當(dāng)前報(bào)警記錄模塊及通話請(qǐng)求記錄模塊,其結(jié)構(gòu)圖如圖8。
1)系統(tǒng)主界面
①服務(wù)器主界面
服務(wù)器主界面的簡(jiǎn)單易用是應(yīng)用程序人性化的基本要素,本系統(tǒng)服務(wù)器充分考慮到了這一點(diǎn),下面是服務(wù)器主界面,如圖8:
圖8 服務(wù)器主界面
②客戶端主界面
客戶端默認(rèn)開啟服務(wù)的形式,即實(shí)際是沒有界面的,配置在便攜式路橋收費(fèi)計(jì)算機(jī)上,由于條件限制,這里用一個(gè)模擬測(cè)試界面如圖9:
圖9 客戶端模擬界面
2)服務(wù)器端界面設(shè)計(jì)
①車站列表顯示模塊
該模塊主要顯示站點(diǎn)信息,顯示后臺(tái)服務(wù)中心控制的所有站點(diǎn),單擊選中狀態(tài)可以在車道信息顯示模塊顯示該站點(diǎn),未選中則不顯示,如圖10:
圖10 車站列表顯示模塊
②車道信息顯示模塊
收費(fèi)車道信息顯示模塊是服務(wù)器端顯示界面的基礎(chǔ),其他模塊的操作多多少少都依賴于收費(fèi)車道信息模塊顯示的收費(fèi)車道信息,所以,它的實(shí)現(xiàn)就顯得至關(guān)重要,收費(fèi)車道界面如圖11:
圖11 車道信息顯示模塊
由于界面較多,考慮到篇幅,只提供了以上界面。
4 結(jié)束語
本文詳細(xì)闡述了基于C++實(shí)現(xiàn)車道對(duì)講系統(tǒng),通過測(cè)試和試運(yùn)行基本滿足了收費(fèi)站的需求。但本系統(tǒng)的局限在于指定在局域網(wǎng)內(nèi)進(jìn)行通訊、而非在廣域網(wǎng)通訊,且以讀取配置文件的形式進(jìn)行提前的配置,所以在客戶端和服務(wù)器使用之前需要確保配置文件的正確性、一致性;客戶端配置中包含服務(wù)器的IP,如果服務(wù)器端的IP改變的話,所有的客戶端都要相應(yīng)的改變,所以在便捷性上存在缺陷,配置文件中預(yù)設(shè)了通訊需要的端口號(hào),客戶端和服務(wù)器是一致的,但當(dāng)有其他應(yīng)用程序占用該端口號(hào)時(shí),客戶端和服務(wù)器通訊就會(huì)出現(xiàn)問題,需要更改端口號(hào),由于服務(wù)器和客戶端端口號(hào)要保持一致性,所以端口號(hào)是不能隨便更改的,這點(diǎn)不具有便捷性,也是本文后續(xù)研究的方向之一。
參考文獻(xiàn):
[1] Andrew Konenig,Barbara E Moo. Accelerated C++中文版[M]. 靳志偉, 譯.北京: 機(jī)械工業(yè)出版社, 2007.
[2] Stanley B LippmanBarbara, E Moo JoséeLaJoie. C++Primer[M]. 李師賢, 蔣愛軍, 譯. 4版.北京: 人民郵電出版社, 2006.
[3] Steve McConnell.代碼大全[M]. 金戈, 湯凌, 陳碩,等, 譯. 2版. 北京:電子工業(yè)出版社, 2006.
[4] 姚光起. 一種氧氣鎬材料的制備方法[P]. 中國專利. 891056088, 1980-07-03.
[5] 王青. 高速公路不停車收費(fèi)車道系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 大連: 大連海事大學(xué), 2012.