戴村供 初仁義
基于C/S結(jié)構(gòu)的城市公交監(jiān)控系統(tǒng)設(shè)計
戴村供 初仁義
福建工程學(xué)院機電及自動化工程系
介紹了一種基于C/S結(jié)構(gòu)的城市公交車監(jiān)控系統(tǒng),闡述了在Delphi編程環(huán)境下如何利用socket編程機制實現(xiàn)客戶端與服務(wù)器的數(shù)據(jù)交換,實現(xiàn)了城市公交監(jiān)控系統(tǒng)的設(shè)計。
城市公交;監(jiān)控系統(tǒng);全球定位系統(tǒng);客戶/服務(wù)器
先進的公共交通系統(tǒng)(Advanced Public Transportation System, APTS)是智能交通系統(tǒng)(ITS)的重要子系統(tǒng)之一,通過綜合利用信息技術(shù)、計算機技術(shù)、控制技術(shù)、傳感器技術(shù),使先進的公交系統(tǒng)具有了高效的公交客運組織模式、快速靈活的應(yīng)變能力及完善的乘客信息服務(wù)等特點,從而在信息、價格、速度、效率、舒適性等方面提高公眾吸引力[1]。隨著計算機技術(shù)和移動網(wǎng)絡(luò)技術(shù)的快速發(fā)展,無線網(wǎng)絡(luò)通訊技術(shù)在各個行業(yè)得到廣泛應(yīng)用,目前GPRS/CDMA作為移動通訊網(wǎng)絡(luò)已經(jīng)實現(xiàn)了全方位的覆蓋,使無線監(jiān)控系統(tǒng)的建設(shè)非常便利,無線監(jiān)控系統(tǒng)特別適用于被監(jiān)控對象在地域上分散分布或有移動監(jiān)控需求的情況[2]。通過GPRS/CDMA接入設(shè)備實現(xiàn)TCP/IP協(xié)議,利用Socket技術(shù)可以靈活地實現(xiàn)數(shù)據(jù)交換。因此,文中設(shè)計了一種基于TCP/IP協(xié)議,實現(xiàn)嵌入式開發(fā)環(huán)境下Client/Server結(jié)構(gòu)的監(jiān)控系統(tǒng)。軟件編程平臺采用Delphi語言,通過TCP/IP網(wǎng)絡(luò)協(xié)議進行數(shù)據(jù)傳遞, 采用先進的GPS定位、數(shù)據(jù)通信、電子地圖和數(shù)據(jù)庫管理等技術(shù),對車輛進行實時跟蹤與監(jiān)測,從而實現(xiàn)車輛管理調(diào)度的現(xiàn)代化和科學(xué)化。
監(jiān)控系統(tǒng)由車載單元、監(jiān)控中心和Internet網(wǎng)絡(luò)3個單元組成。
車載單元接收GPS衛(wèi)星傳來的星歷信息,分離出當(dāng)前車輛所處的地理位置坐標并計算出車輛的速度及加速度,輔以其他信息以一定數(shù)據(jù)格式通過Internet網(wǎng)絡(luò)傳送到監(jiān)控中心,監(jiān)控中心接收到數(shù)據(jù)后,立刻對數(shù)據(jù)加以分析處理,分離出目標坐標、速度、加速度、站點信息等,并把這些信息在監(jiān)控中心大屏幕電子地圖上定位顯示,若目標車輛超速,則以紅燈閃爍的形式顯示并發(fā)送語音信號到車載單元以提示安全駕駛。監(jiān)控中心具有站點查詢及監(jiān)視功能,可以幫助監(jiān)控室工作人員快速查詢各條線路上的各車輛運營信息,包括線路名稱、班次、發(fā)車時間、車牌號碼、司機姓名等,可以監(jiān)視車內(nèi)實時情況。若分離出來的信息中有車輛報警信號,則具有存儲車內(nèi)動態(tài)影像的功能并定時把車輛坐標以文件形式存儲在本地硬盤上,為以后的法律問題提供依據(jù)。
為了能夠方便地開發(fā)網(wǎng)絡(luò)應(yīng)用軟件,由美國伯克利大學(xué)在Unix系統(tǒng)上推出了一種應(yīng)用程序訪問通信協(xié)議的操作系統(tǒng)調(diào)用socket(套接字)[3]。socket的出現(xiàn),使程序員可以很方便地訪問TCP/IP,從而開發(fā)各種網(wǎng)絡(luò)應(yīng)用的程序。Socket 通訊建立在TCP/IP 通訊協(xié)議之上,前提是通訊雙方的網(wǎng)絡(luò)均以TCP/IP 協(xié)議為基礎(chǔ),雙方的通訊就得以實現(xiàn),且不受網(wǎng)絡(luò)類型、傳輸距離等因素的限制[4]。
系統(tǒng)運行時,服務(wù)器端初始化完成后,開啟監(jiān)聽端口并建立新線程用以處理接收到的數(shù)據(jù)并刷新顯示??蛻舳塑浖\行后,連接服務(wù)器得以實現(xiàn),設(shè)置如下:
if threadsend=false
then begin //以下是連接過程
IdTCPClient1.Host:=EditIpAddress.Text; //取得IP地址
IdTCPClient1.Port:=strtoint(EditPort.Text); //取得端口
threadsend:=true; //允許發(fā)送線程開啟
if IdTCPClient1.Connected=false
then IdTCPClient1.Connect(1000); //連接監(jiān)控臺
end
else begin//以下是斷開的過程
threadsend:=false; //停止發(fā)送線程
if IdTCPClient1.Connected=true then
begin
IdTCPClient1.Disconnect;
IdTCPClient1.DisconnectSocket;
end;
end;
電子地圖是由電子計算機控制所生成的地圖,是基于數(shù)字制圖技術(shù)的屏幕地圖,是可視化的實地圖,可以實現(xiàn)快速存取顯示,可以對電子地圖進行任意比例尺、任意范圍的繪圖輸出,可以很方便地與衛(wèi)星影像、航空照片等其他信息源結(jié)合,生成新的圖種。Google繼在收購Keyhole后,首次向廣大用戶推出一個免費的基于衛(wèi)星圖片的地圖軟件Google Map。本文正是利用在html中嵌入javascript,調(diào)用Google Map得以實現(xiàn)在監(jiān)控中心屏幕上顯示,并實時對車輛的GPS信息在屏幕上刷新顯示,實時定位界面如圖1所示。具體例程如下:
webbrowser1.Navigate(getcurrentdir()+' esgooglemap.dat'); //加載地圖
CreateThread(nil,0,@NewThreadEntranceFun,nil,0,ThreadID); //創(chuàng)建新線程,用來刷新數(shù)據(jù)
CreateThread(nil,0,@NewThreadjiansi,nil,0,ThreadIDJiansi); //創(chuàng)建監(jiān)視線程。
WebBrowser1.OleObject.Document.parentWindow.execScript('magnify()','javascript'); //放大地圖
WebBrowser1.OleObject.Document.parentWindow.execScript('reduce()','javascript'); //縮小地圖
Athread.Connection.ReadBuffer(msg,sizeof(msg));//讀數(shù)據(jù),放在msg這個結(jié)構(gòu)體中。
WebBrowser1.OleObject.document.parentWindow.movetopos(msg.weidu,msg.jingdu); //刷新地圖中的車輛位置。
圖1 實時定位界面
站點查詢功能主要是通過建立并操作數(shù)據(jù)庫,包括:線路名稱、站點等線路信息,車牌號碼、班次、發(fā)車時間等車輛信息及司機姓名、性別、年齡、家庭住址等司機信息,需要時從數(shù)據(jù)庫中提取顯示,圖2是站點查詢界面。
圖2 站點查詢界面
文中試驗依托福建工程學(xué)院車輛工程試驗室,在大學(xué)城郊區(qū)及市區(qū)道路上進行,系統(tǒng)服務(wù)器及客戶機通訊均能正常,能很好的調(diào)用google map,并能實時顯示;系統(tǒng)運行時定時記錄保存車輛所處的經(jīng)緯度坐標,在軌跡回放的過程中能正?;胤牛辉趯噧?nèi)情況進行視頻記錄過程中,能正常的記錄圖像,并保存為JPG或BMP格式,但在記錄一整段的視頻時,效果不太理想,算法或是記錄方式還有待提高。
基于C/S結(jié)構(gòu)的城市公交監(jiān)控系統(tǒng)以GPRS/CDMA網(wǎng)絡(luò)為數(shù)據(jù)傳輸手段建立遠程監(jiān)控系統(tǒng),具有極大的組網(wǎng)靈活性,利用GPS定位系統(tǒng)、TCP/IP傳輸協(xié)議以及計算機處理技術(shù),初步展示了一個全天候衛(wèi)星定位、車輛實時跟蹤、電子地圖顯示的公交監(jiān)控系統(tǒng)的框架。能使公交系統(tǒng)借助高科技的手段大大提高服務(wù)質(zhì)量, 讓人們更喜歡乘坐公交服務(wù), 有利于緩解城市交通擁擠的狀況, 有利于環(huán)保, 有很高的推廣價值。實踐表明,Socket 編程方便快捷,可以實現(xiàn)可靠的數(shù)據(jù)傳輸。
[1] 周大森,劉小明. 汽車智能運輸[M].北京:國防工業(yè)出版社,2004.
[2] 李洪彪,等.基于Socket 的遠程無線監(jiān)控系統(tǒng)設(shè)計及應(yīng)用[J].自動化與儀器儀表, 2009(3).
[3] 張傳生.數(shù)字通信原理[M].西安:西安交通大學(xué)出版社,1990.
[4] 鄧多洪.基于Socket 通訊方式接口數(shù)據(jù)處理的應(yīng)用[J].安徽冶金, 2009(2).
[5] 張向果.GIS、GPS在車輛監(jiān)控系統(tǒng)中的應(yīng)用和研究[D].吉林,2004.
[6] 劉基余,等.全球定位系統(tǒng)原理及應(yīng)用[M] . 北京:測繪出版社,1993.
[7] 房俊龍,董守田,于壽磐.車載GPS定位系統(tǒng)中移動站的硬件和軟件設(shè)計[J].農(nóng)機化研究,2002(1).
[8] 趙文浩,劉建業(yè),何秀風(fēng).GPS車輛監(jiān)控系統(tǒng)中短消息通信技術(shù)研究[J].工業(yè)控制計算機,2002, 15(2).
Design of Urban Public Transportation Monitoring System Based on Client/server Architecture
Dai Cungong, Chu Renyi
(Electromechanical and Automation Engineering Department, Fujian University of Technology, Fuzhou 350108, China)
An unban public transportation monitoring system based on client/server was described. Code samples were given to illustrate how to implement the functions of data communication between the client and server using socket in Delphi.
urban public transportation; monitoring system; global positioning system (GPS); client/server
福建省科技平臺建設(shè)項目(2008J1002),福建省科技平臺建設(shè)項目(2007H2009)