陳榮超 楊 廳
(蘭州交通大學(xué)光電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室 甘肅 蘭州 730070)
?
基于TCP Socket和HTTP POST的現(xiàn)代有軌電車定位系統(tǒng)
陳榮超楊廳
(蘭州交通大學(xué)光電技術(shù)與智能控制教育部重點(diǎn)實(shí)驗(yàn)室甘肅 蘭州 730070)
為實(shí)現(xiàn)實(shí)時(shí)獲取現(xiàn)代有軌電車車輛的運(yùn)行狀態(tài)以及更穩(wěn)定可靠的傳輸數(shù)據(jù),設(shè)計(jì)一個(gè)基于TCP Socket和HTTP的POST請(qǐng)求的現(xiàn)代有軌電車定位系統(tǒng)。使用BDS/GPS雙模定位模塊獲取車輛的坐標(biāo)等數(shù)據(jù),中心平臺(tái)以基于TCP協(xié)議的Socket通信服務(wù)器端軟件為主、HTTP的POST請(qǐng)求配合PHP頁面為輔的方式接收數(shù)據(jù),用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),在TCP服務(wù)器端軟件和百度地圖上顯示列車的運(yùn)行狀態(tài)。該系統(tǒng)能夠?qū)崟r(shí)獲取、存儲(chǔ)并顯示列車的運(yùn)行數(shù)據(jù),在TCP服務(wù)器端軟件出故障時(shí)能自動(dòng)切換到HTTP的POST請(qǐng)求方式發(fā)送數(shù)據(jù)。測(cè)試結(jié)果表明,該系統(tǒng)定位精度高,收發(fā)數(shù)據(jù)及運(yùn)行穩(wěn)定可靠,可作為現(xiàn)代有軌電車的一種可選擇的定位方式。
BDS/GPSTCP SocketHTTP的POST請(qǐng)求百度地圖
現(xiàn)代有軌電車具有載客量大、安全舒適、節(jié)能環(huán)保、快速便捷等優(yōu)勢(shì)[1],2012年至2020年我國(guó)工程總投資預(yù)計(jì)達(dá)3000億元。現(xiàn)代有軌電車作為現(xiàn)代化交通工具應(yīng)實(shí)時(shí)獲取全線列車的位置,而目前中心平臺(tái)多采用基于傳輸控制協(xié)議TCP的Socket通信服務(wù)器端軟件接收數(shù)據(jù)(以下簡(jiǎn)稱TCP服務(wù)器端軟件)[2,3],一旦TCP服務(wù)器端軟件出現(xiàn)故障,就無法獲取列車位置。針對(duì)這一情況,本系統(tǒng)將超文本傳輸協(xié)議HTTP的POST請(qǐng)求作為發(fā)送數(shù)據(jù)的第二種方式,使用此方式時(shí)中心平臺(tái)電腦無需開啟軟件,配合PHP網(wǎng)頁就可以接收并儲(chǔ)存數(shù)據(jù)。
本文將中國(guó)北斗衛(wèi)星導(dǎo)航系統(tǒng)BDS/全球定位系統(tǒng)GPS、通用分組無線服務(wù)技術(shù)GPRS、百度地圖、TCP socket、微軟基礎(chǔ)類庫(kù)MFC、超文本預(yù)處理器PHP、MySQL、Apache服務(wù)器等多項(xiàng)技術(shù)相結(jié)合,使用主備方式接收數(shù)據(jù),設(shè)計(jì)了一個(gè)更穩(wěn)定可靠的現(xiàn)代有軌電車定位系統(tǒng)。
本系統(tǒng)由定位終端和中心平臺(tái)兩大部分組成,如圖1所示。
定位終端將獲取的位置坐標(biāo)等數(shù)據(jù)通過GPRS網(wǎng)絡(luò)發(fā)送到中心平臺(tái)服務(wù)器。中心平臺(tái)對(duì)數(shù)據(jù)處理后存儲(chǔ)到數(shù)據(jù)庫(kù),WEB顯示界面借助強(qiáng)大的百度地圖應(yīng)用程序編程接口API,在百度地圖上直觀的顯示列車運(yùn)行狀態(tài),用戶可以通過PC端、PAD端、手機(jī)端的瀏覽器隨時(shí)進(jìn)行查看。
圖1 系統(tǒng)框圖
2.1定位終端的系統(tǒng)架構(gòu)
定位終端主要由BDS/GPS模塊、GPRS模塊、MCU模塊、USB轉(zhuǎn)串口模塊構(gòu)成。
BDS/GPS模塊采用高靈敏度的ATGM332D,它包含32個(gè)跟蹤通道,可同時(shí)接收所有的GPS和BDS可見衛(wèi)星,支持GPS和BDS的單系統(tǒng)定位和雙系統(tǒng)聯(lián)合定位,雙系統(tǒng)聯(lián)合定位時(shí)精度可達(dá)到2.5 m,用3.3 V單電源供電。
GPRS模塊采用SIM900A,其內(nèi)置TCPIP協(xié)議,可實(shí)現(xiàn)TCP/UDP數(shù)據(jù)傳輸[4],它的GPRS網(wǎng)絡(luò)理論最大接入速率為上行42.8 kbps、下行85.6 kbps,用4 V單電源供電。
MCU模塊采用STC15W4K32S4芯片,它是一種STC低功耗增強(qiáng)型8051單片機(jī),速度是普通51單片機(jī)的7~12倍[5],片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM)為4 KB,有四個(gè)完全獨(dú)立的高速異步串行通信端口,工作電壓為5 V。
USB轉(zhuǎn)串口模塊采用CH340G芯片。定位終端用USB連接線外接5 V電源,再用穩(wěn)壓芯片將5 V電壓轉(zhuǎn)換為4 V和3.3 V給其他模塊供電。
2.2功能
BDS/GPS模塊用來獲取列車的當(dāng)前經(jīng)度、緯度、時(shí)間、速度數(shù)據(jù)。ATGM332D上電后通過串口每秒輸出一個(gè)NMEA-0183協(xié)議格式的定位數(shù)據(jù)包[6],由最小定位信息(GNRMC)、接收機(jī)速度和航向信息(GNVTG)、時(shí)間與日期信息(GNZDA)、軟件、硬件、廠家等信息(GPTXT)、定位信息(GNGGA)、定位和時(shí)間信息(GNGLL)、GPS當(dāng)前衛(wèi)星信息(GPGSA)、北斗當(dāng)前衛(wèi)星信息(BDGSA)、GPS可見衛(wèi)星信息(GPGSV)、北斗可見衛(wèi)星信息(BDGSV)組成。其中的GNRMC包含了本系統(tǒng)要用到的所有信息,格式為:“數(shù)據(jù)類型,UTC時(shí)間,定位狀態(tài),緯度,緯度方向,經(jīng)度,經(jīng)度方向,對(duì)地速度,對(duì)地航向,日期,磁偏角,磁偏角方向,模式指示,校驗(yàn)和”,如:“GNRMC,033244.000,A,3606.3735,N,10343.5830,E,0.00,0.00,010415,,,A*79”。為減小數(shù)據(jù)傳輸量,本系統(tǒng)從GNRMC中提取出UTC時(shí)間、經(jīng)度、緯度、速度處理后再進(jìn)行傳輸。
MCU模塊對(duì)獲取的數(shù)據(jù)進(jìn)行采集、處理、打包,GPRS模塊將打包好的數(shù)據(jù)發(fā)送給服務(wù)器,USB轉(zhuǎn)串口模塊使定位終端可以用USB口下載程序及供電。
2.3工作流程
定位終端工作流程如圖2所示,各模塊初始化后,GPRS模塊分別以TCP/IP協(xié)議方式、中國(guó)移動(dòng)互聯(lián)網(wǎng)CMNET作為發(fā)送數(shù)據(jù)方式和移動(dòng)分組數(shù)據(jù)業(yè)務(wù)的接入方式,連接中心平臺(tái)服務(wù)器IP的指定端口建立TCP連接,所有配置用AT指令完成,部分關(guān)鍵指令如下:
AT+MIPCALL=1,″CMNET″(創(chuàng)建無線連接)。
AT+MIPOPEN=3,″TCP″,″112.124.27.15″,8118,2000(打開一個(gè)Socket連接服務(wù)器IP的8118端口建立TCP連接)。
圖2 定位終端工作流程圖
BDS/GPS模塊通過串口1每秒輸出一個(gè)定位信息數(shù)據(jù)包,單片機(jī)通過中斷接收處理,先檢測(cè)GNRMC中的定位狀態(tài)位,如果為A說明獲取的是有效信息,提取出時(shí)間、經(jīng)度、緯度、速度4條數(shù)據(jù)后打包處理。如果GPRS模塊TCP連接成功,數(shù)據(jù)包通過串口2發(fā)送至GPRS模塊,GPRS模塊再通過基站將數(shù)據(jù)包傳送到中心平臺(tái)IP的指定端口。
2.4傳輸協(xié)議
為保證數(shù)據(jù)傳輸?shù)耐暾院蜏?zhǔn)確性,定位終端和中心平臺(tái)以發(fā)送-應(yīng)答協(xié)議方式傳輸數(shù)據(jù),定位終端每成功發(fā)送一個(gè)數(shù)據(jù)包,中心平臺(tái)返回一個(gè)應(yīng)答包,表示成功收到數(shù)據(jù)。發(fā)送的數(shù)據(jù)包格式為“頭標(biāo)識(shí),數(shù)據(jù)編號(hào),數(shù)據(jù)包字符長(zhǎng)度,定位內(nèi)容,校驗(yàn)碼”,其中定位內(nèi)容由設(shè)備ID、經(jīng)緯度、速度、UTC時(shí)間組成,中間以“|”隔開。校驗(yàn)碼的簡(jiǎn)單計(jì)算方式為經(jīng)度小數(shù)部分減緯度小數(shù)部分。
中心平臺(tái)用Apache作服務(wù)器,MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),有一固定的公網(wǎng)IP地址。接收數(shù)據(jù)采用主備方式,主要以MFC編寫的TCP服務(wù)器端軟件監(jiān)聽其IP的8118端口來接收,這種方式最為常用,收發(fā)數(shù)據(jù)操作簡(jiǎn)便,并且相對(duì)安全和穩(wěn)定可靠。在TCP服務(wù)器端軟件出現(xiàn)故障時(shí),采用HTTP的POST請(qǐng)求方式,直接將數(shù)據(jù)發(fā)送給服務(wù)器端為HTTP開放的80端口下的storage.php頁面,并由此PHP頁面處理數(shù)據(jù)后存入數(shù)據(jù)庫(kù),將TCP服務(wù)器端軟件出現(xiàn)故障時(shí)帶來的損失降到最小。
顯示界面也分為兩部分,一部分以WEB網(wǎng)頁形式呈現(xiàn),調(diào)用百度地圖API,用PHP、JavaScript等語言編寫。而另一部分直接在TCP服務(wù)器端軟件上顯示,方便管理人員查看。
3.1TCP服務(wù)器端軟件
TCP服務(wù)器端軟件可以收發(fā)數(shù)據(jù)、向MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)、顯示列車實(shí)時(shí)運(yùn)行狀態(tài)等。它由一個(gè)偵聽Socket和多個(gè)用于應(yīng)答的Socket組成,每個(gè)應(yīng)答Socket與客戶端建立一對(duì)一的數(shù)據(jù)流通道[7]。工作流程如圖3所示,首先初始化Socket,創(chuàng)建并綁定端口,對(duì)端口進(jìn)行監(jiān)聽,等待客戶端GPRS模塊的連接請(qǐng)求,如果收到GPRS模塊的連接請(qǐng)求,則雙方建立連接,就可以相互發(fā)送數(shù)據(jù)。
TCP服務(wù)器端軟件收到數(shù)據(jù)后先查看數(shù)據(jù)包的頭標(biāo)識(shí),如果符合要求就接收定位內(nèi)容;然后統(tǒng)計(jì)實(shí)際收到數(shù)據(jù)的字符總長(zhǎng)度,如果和數(shù)據(jù)包里的字符長(zhǎng)度相同說明數(shù)據(jù)完整;查看數(shù)據(jù)編號(hào),如果和上一個(gè)連續(xù)說明沒有丟失數(shù)據(jù);再計(jì)算效驗(yàn)碼,如果正確說明數(shù)據(jù)準(zhǔn)確。TCP服務(wù)器端軟件成功收取一次數(shù)據(jù)就給GPRS模塊發(fā)送一次“TCPOK”,表示數(shù)據(jù)成功收到,如果GPRS模塊連續(xù)發(fā)送4次數(shù)據(jù)后都沒有收到“TCPOK”,則說明TCP服務(wù)器端軟件出現(xiàn)故障,定位終端自動(dòng)切換到HTTP的POST請(qǐng)求方式發(fā)送數(shù)據(jù),并給預(yù)設(shè)手機(jī)號(hào)碼發(fā)送短信通知管理人員進(jìn)行修復(fù)。
圖3 TCP服務(wù)器端工作流程圖
3.2HTTP的POST請(qǐng)求
HTTP以請(qǐng)求-應(yīng)答協(xié)議方式工作,設(shè)計(jì)的目的是使客戶端和服務(wù)器順利進(jìn)行通信[8]。HTTP 方法有多種,GET和POST最為常用, POST方法相比GET方法可傳更大的數(shù)據(jù)量,而且安全性更高。
使用POST方法時(shí),請(qǐng)求參數(shù)作為請(qǐng)求體的一部分向服務(wù)器發(fā)送請(qǐng)求,要求服務(wù)器接受附在后面的數(shù)據(jù)[9]。例如本系統(tǒng)中定位終端將“POST /storage.php HTTP/1.1 Host:112.124.27.15:80 Content-Type: application/x-www-form-urlencoded Content-Length: 63 point2=103.7262&point1=36.1062&riqi=0&time=11:29:05&carnumber=1 ”發(fā)給服務(wù)器IP地址的80端口。其中“POST /storage.php HTTP/1.1”意為請(qǐng)求的方式為POST方式,要請(qǐng)求的子路徑為/storage.php,例如我使用的服務(wù)器IP地址和端口號(hào)為112.124.27.15:80,則此請(qǐng)求的完整路徑是 112.124.27.15:80/storage.php,接下來說明HTTP協(xié)議的版本號(hào)為1.1;Host為客戶端要訪問的HTTP服務(wù)器的域名或者IP地址和端口號(hào); ContentType用來指定響應(yīng)的HTTP內(nèi)容類型,使用POST請(qǐng)求發(fā)送表單數(shù)據(jù)的默認(rèn)編碼類型為“application/x-www-form-urlencoded”;Content-Length用于描述HTTP消息實(shí)體的傳輸長(zhǎng)度;最后是要傳遞的參數(shù),用&連接各個(gè)參數(shù),需要注意的是Content-Length行和參數(shù)行必須間隔一行。提交成功服務(wù)器的返回值為“HTTP/1.1 200 OK”,提交失敗則返回“HTTP/1.1 404 (NOT FOUND) ”。
參數(shù)傳遞給storage.php頁面后,此PHP頁面用_POST[′參數(shù)名′]獲取相應(yīng)的參數(shù)值,進(jìn)行處理后再存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)。
3.3原始坐標(biāo)轉(zhuǎn)百度地圖坐標(biāo)
百度地圖功能豐富、交互性強(qiáng)、使用完全免費(fèi),本系統(tǒng)WEB顯示頁面調(diào)用百度地圖的JavaScript API,將獲取到的坐標(biāo)等信息直觀的顯示在百度地圖上。BDS/GPS模塊獲取的坐標(biāo)是原始坐標(biāo),而百度地圖使用的坐標(biāo)是在由國(guó)測(cè)局制定的GCJ-02對(duì)地理位置進(jìn)行首次加密的基礎(chǔ)上,又進(jìn)行了BD-09二次加密[10],所以使用時(shí)要將原始坐標(biāo)轉(zhuǎn)換為百度坐標(biāo)。
本系統(tǒng)使用百度地圖提供的坐標(biāo)轉(zhuǎn)換接口:http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=103.724350&y=36.104422 (其中x、y后的數(shù)據(jù)為原始坐標(biāo)經(jīng)、緯度) ,返回結(jié)果是json格式的{″e(cuò)rror″:0,″x″:″MTAzLjczMzQxODE0NDI1″,″y″:″MzYuMTA5OTU3MDkyODk=″} (其中x、y后面的數(shù)據(jù)為經(jīng)過base64加密的百度坐標(biāo)) 。
使用TCP服務(wù)器端軟件接收數(shù)據(jù)轉(zhuǎn)換坐標(biāo)時(shí),MFC編程中創(chuàng)建一個(gè)類CWinApp的CInternetSession成員,調(diào)用OpenURL在Internet上打開此URL讀取結(jié)果,提取出經(jīng)過base64加密的百度坐標(biāo),此時(shí)的坐標(biāo)可直接被百度地圖讀取,但為了查看更直觀,編寫base64解密程序解密此坐標(biāo)。在使用HTTP的POST請(qǐng)求方法接收數(shù)據(jù)時(shí),坐標(biāo)轉(zhuǎn)換在接收數(shù)據(jù)的storage.php頁面進(jìn)行,用file_get_contents() 函數(shù)獲取該URL的json格式返回值,再用json_decode() 函數(shù)將此返回值轉(zhuǎn)換為PHP變量,經(jīng)過base64_decode()函數(shù)解碼后就可以得到百度坐標(biāo)。
3.4坐標(biāo)間距離
本系統(tǒng)在實(shí)現(xiàn)報(bào)站、判斷是否安全距離等功能時(shí)要計(jì)算兩坐標(biāo)點(diǎn)間的地表距離。一般情況下此距離和地球周長(zhǎng)相比足夠小,因此可將地球近似看作球體,并且兩坐標(biāo)間的弧度和地球表面地形的誤差都可忽略不計(jì)。以0度經(jīng)線為基準(zhǔn),任意兩點(diǎn)的間距就可以根據(jù)此兩點(diǎn)的經(jīng)緯度算出,根據(jù)三角推導(dǎo)可以得到計(jì)算公式如下:
(1)
式中L為所求坐標(biāo)1、2之間距離,p=180/π,a為坐標(biāo)1緯度,c為坐標(biāo)1經(jīng)度,b為坐標(biāo)2緯度,d為坐標(biāo)2經(jīng)度,R為地球近似半徑6 366 000米。
為提高定位終端的可靠性,采用冗余技術(shù),兩臺(tái)定位終端同時(shí)工作,互為備用;對(duì)定位終端的工作流程建立一個(gè)功能邏輯流程表,包含所有可能會(huì)出現(xiàn)的正常、異常情況,根據(jù)結(jié)果執(zhí)行相應(yīng)動(dòng)作,保證所有狀況都在預(yù)料之中,都可以正確解決;出現(xiàn)故障時(shí),程序按照邏輯關(guān)系,重新執(zhí)行相關(guān)代碼或重新熱啟動(dòng)相關(guān)模塊等操作。
為提高TCP服務(wù)器端軟件可靠性,MFC編程過程中,將接收數(shù)據(jù)、顯示數(shù)據(jù)、向數(shù)據(jù)庫(kù)存數(shù)據(jù)等功能模塊化,各模塊相互獨(dú)立,且劃分用戶權(quán)限,不同權(quán)限用戶查看和操作的內(nèi)容不同;每個(gè)窗口的功能專一,聯(lián)系簡(jiǎn)單;關(guān)鍵位置設(shè)置出錯(cuò)提示點(diǎn),出錯(cuò)時(shí)提示錯(cuò)誤信息;連接MySQL數(shù)據(jù)庫(kù)出現(xiàn)問題時(shí),自動(dòng)用Excel臨時(shí)存儲(chǔ)數(shù)據(jù)并提示。
分別對(duì)整個(gè)系統(tǒng)的運(yùn)行,中心平臺(tái)收發(fā)數(shù)據(jù)情況,定位精度進(jìn)行測(cè)試。
首先測(cè)試整個(gè)系統(tǒng)是否能正常工作。在空曠的位置放置好BDS/GPS模塊的天線,電腦1用USB轉(zhuǎn)UART線連接定位終端并運(yùn)行串口調(diào)試助手,服務(wù)器端的電腦2運(yùn)行TCP服務(wù)器端軟件對(duì)8118端口進(jìn)行監(jiān)聽。等待一段時(shí)間后,串口調(diào)試助手收到“TCPOK”,此時(shí)關(guān)閉TCP服務(wù)器端軟件并等待20 s左右。串口調(diào)試助手收到“HTTP/1.1 200OK”,如圖4所示,且預(yù)設(shè)的手機(jī)號(hào)收到短信提示TCP服務(wù)器端軟件異常,MySQL數(shù)據(jù)庫(kù)存儲(chǔ)整個(gè)過程中成功發(fā)來的所有數(shù)據(jù),說明整個(gè)系統(tǒng)能正常工作。在TCP服務(wù)器端軟件出現(xiàn)故障的情況下可以自動(dòng)切換到HTTP的POST請(qǐng)求方式發(fā)送數(shù)據(jù)。
圖4 串口助手收到的數(shù)據(jù)
圖5 TCP服務(wù)器端軟件
接下來對(duì)中心平臺(tái)收發(fā)數(shù)據(jù)情況進(jìn)行測(cè)試。首先在校園里選取的一段路線上設(shè)置6個(gè)坐標(biāo)點(diǎn)作為站臺(tái),測(cè)試人員1、2分別攜帶外接移動(dòng)電源的定位終端1、2在此線路上騎自行車移動(dòng),同時(shí)測(cè)試人員3打開TCP服務(wù)器端軟件觀察數(shù)據(jù)接收情況,如圖5所示。定位終端每分鐘發(fā)送12次數(shù)據(jù),中心平臺(tái)絕大多數(shù)情況下能正確收到12次數(shù)據(jù)。點(diǎn)擊TCP服務(wù)器端軟件上的按鈕可以控制定位終端相應(yīng)的LED燈的亮滅,說明本系統(tǒng)收發(fā)數(shù)據(jù)能力強(qiáng)。
最后對(duì)定位終端的精度進(jìn)行測(cè)試,測(cè)試人員3打開中心平臺(tái)WEB界面的各個(gè)頁面在地圖上查看運(yùn)行狀態(tài),列車1的運(yùn)行軌跡如圖6所示。隨著定位終端的移動(dòng),網(wǎng)頁中坐標(biāo)點(diǎn)也在實(shí)時(shí)變動(dòng),對(duì)比我校實(shí)際地理信息誤差在3m左右,定位精度較高。
圖6 中心平臺(tái)WEB界面
測(cè)試結(jié)果表明本系統(tǒng)的軟硬件運(yùn)行穩(wěn)定,收發(fā)數(shù)據(jù)穩(wěn)定可靠,定位精度高,可作為現(xiàn)代有軌電車的一種可選擇的定位方式。數(shù)據(jù)傳輸采用TCP服務(wù)器端軟件和HTTP的POST請(qǐng)求主備方式,使得數(shù)據(jù)傳輸更穩(wěn)定可靠;顯示界面以WEB網(wǎng)頁為主,用戶可以在各個(gè)平臺(tái)的瀏覽器上查看而無需安裝其他軟件;BDS/GPS雙模定位模塊的使用使得定位精度更高。相信隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)和4G技術(shù)的發(fā)展與普及,本系統(tǒng)能發(fā)揮出更佳的性能。
[1]AndreaMacdonald,SelbyCoxon.TowardsaMoreAccessibleTramSysteminMelbourne-challengesforinfrastructuredesign[C].AustralasianTransportResearchForum2011Proceedings28~30September2011:2-3.
[2] 沈陽.基于GPRS網(wǎng)絡(luò)電動(dòng)汽車遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)的研究[D].上海:上海交通大學(xué),2013.
[3] 朱振茂.無線網(wǎng)絡(luò)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)上位機(jī)軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連海事大學(xué),2008.
[4] 張晶如,邵建華,于篤發(fā).基于SIM900A的智能心電監(jiān)護(hù)系統(tǒng)客戶端[J].通信技術(shù),2013,46(7):109-111,114.
[5] 丁向榮.單片微機(jī)原理與接口技術(shù)-基于STC15W4K32S4系列單片機(jī)[M].北京:電子工業(yè)出版社,2015.
[6] 鄧婷.RFID/GPS/BDS技術(shù)在危險(xiǎn)品運(yùn)輸監(jiān)控中的應(yīng)用[J].太赫茲科學(xué)與電子信息學(xué)報(bào),2014,12(5):716-720.
[7] 呂鑫.VC++就業(yè)培訓(xùn)寶典之MFC視頻教程[M].北京:機(jī)械工業(yè)出版社,2014:490.
[8] 祝瑞,車敏.基于HTTP協(xié)議的服務(wù)器程序分析[J].現(xiàn)代電子技術(shù),2012,35(4):117-119,122.
[9] 陳雷,劉嘉勇.基于HTTP協(xié)議的POST數(shù)據(jù)分析與還原[J].通信技術(shù),2011,44(4):132-134,169.
[10] 百度開發(fā)者中心.百度地圖API開發(fā)指南[EB/OL].(2013-05-14).[2013-05-14].http://developer.baidu.com/map/jsdevelop-1.htm.
MODERN STREETCAR POSITIONING SYSTEM BASED ON TCP SOCKET AND HTTP POST
Chen RongchaoYang Ting
(KeyLaboratoryofOpto-electronicTechnologyandIntelligentControloftheMinistryofEducation,LanzhouJiaotongUniversity,Lanzhou730070,Gansu,China)
In order to timely get the running status of modern streetcars and to transmit data in a more stable and reliable way, we designed a positioning system for modern streetcars, it is based on transmission control protocol (TCP) socket and hypertext transfer protocol (HTTP) POST requests protocol. It uses dual-mode positioning module of BeiDou Navigation Satellite System (BDS)/Global Positioning System (GPS) to retrieve vehicles coordinates data, its centre platform receives data in the way of mainly using TCP protocol-based Socket communication server software but having HTTP POST request together with Hypertext Preprocessor (PHP) page as the supplement, its data is stored in MySQL database. The streetcars running status is displayed on Baidu map and TCP server software. Finally the system is capable of receiving, storing and displaying the operation data of streetcar in real time, and can automatically switch to HTTP Post request model to send data when the software at TCP server is down. Test result indicates that the system has high positioning precision, is stable and reliable in sending and receiving data as well as in operation, it is an optional positioning way for modern streetcar.
BDS/GPSTCP socketPOST requests of HTTPBaidu map
2015-07-06。甘肅省自然科學(xué)基金項(xiàng)目(145RJZA2 13)。陳榮超,碩士生,主研領(lǐng)域:通信與信息系統(tǒng)。楊廳,碩士生。
TP391
A
10.3969/j.issn.1000-386x.2016.10.002