gps車載系統(tǒng)項(xiàng)目設(shè)計(jì)要點(diǎn)_第1頁(yè)
gps車載系統(tǒng)項(xiàng)目設(shè)計(jì)要點(diǎn)_第2頁(yè)
gps車載系統(tǒng)項(xiàng)目設(shè)計(jì)要點(diǎn)_第3頁(yè)
gps車載系統(tǒng)項(xiàng)目設(shè)計(jì)要點(diǎn)_第4頁(yè)
gps車載系統(tǒng)項(xiàng)目設(shè)計(jì)要點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1.概要車載終端與調(diào)度中心通訊協(xié)議。背景:GPS車載系統(tǒng)是安裝在出租車上的一款集導(dǎo)航,調(diào)度,娛樂,遠(yuǎn)程刷卡,電話等為一體的智能移動(dòng)終端設(shè)備。此設(shè)備硬件環(huán)境為ARM9,ARM11等設(shè)備,操作系統(tǒng)可能為WINCE,LINUX,android等。有了GPS車載終端和調(diào)度中心這個(gè)平臺(tái),可以最優(yōu)化駕駛員和乘客的出車和求車的資源配置。本項(xiàng)目為模擬GPS車載系統(tǒng)調(diào)度應(yīng)用,使得初學(xué)者能很快了解到此項(xiàng)目的大概需求,為以后在實(shí)際工作中積累一點(diǎn)實(shí)戰(zhàn)經(jīng)驗(yàn)。本項(xiàng)目有些應(yīng)用無法模擬的地方均作了簡(jiǎn)化。請(qǐng)學(xué)員們小心推敲琢磨。另外,文中提到的通信格式(協(xié)議)通俗講是一種封裝,就像收發(fā)信件需要信封一樣。每條協(xié)議都是有加heade

2、r頭的,一是考慮安全,二是考慮你這條協(xié)議是干什么的,這樣socket通信中的網(wǎng)絡(luò)數(shù)據(jù)互不干擾,各自處理??蛻舳撕头?wù)器端模型均采用linux+select IO復(fù)用去實(shí)現(xiàn)。2.通訊格式和消息類型2.1通訊格式start(0x02)0長(zhǎng)度注 112FLAG%2563FLAG/2564消息體(body)5n校驗(yàn)碼注 2n+1end(0x03)n+2注1:長(zhǎng)度= FLAG + 消息內(nèi)容 + 校驗(yàn)碼(字段的長(zhǎng)度)低位在前 (小端字節(jié))注 2:校驗(yàn)碼 = 從長(zhǎng)度到消息體字節(jié)異或(data0data1datan)2.2車載終端發(fā)起消息類型FLAG消息類型附0x03e0參數(shù)讀取0X03e1參數(shù)設(shè)置0x03e

3、2駕駛員登錄簽到0x03e3駕駛員登出簽退0x03e4請(qǐng)求駕駛員相片url信息0x03e5url請(qǐng)求下載駕駛員相片0x03e6駕駛員注冊(cè)2.3調(diào)度中心發(fā)起的消息類型FLAG類型附0x03d01秒的定位信息0x03d1業(yè)務(wù)信息處理要求保存最大5條消息記錄,客戶端能模擬查詢3.消息體定義3.1參數(shù)讀取車載終端發(fā)送(一次讀取3個(gè))參數(shù)ID0參數(shù)ID1參數(shù)ID注12調(diào)度中心返回(一次返回3個(gè)參數(shù)內(nèi)容)參數(shù)ID0參數(shù)長(zhǎng)度(len1)1參數(shù)內(nèi)容2len1參數(shù)IDLen1+1參數(shù)長(zhǎng)度(len2)注2len1+2參數(shù)內(nèi)容len1+3 注1:當(dāng)車載終端讀取參數(shù)時(shí)一次讀取3個(gè)參數(shù) 注2:有3個(gè)參數(shù)以此類推可讀取的

4、參數(shù)列表(選前3個(gè)即可)參數(shù)ID:1=允許撥出電話(MAX16字節(jié)) 2=調(diào)度中心IP(4字節(jié)) 3=調(diào)度中心端口號(hào)(2個(gè)字節(jié))3.2參數(shù)設(shè)置車載終端發(fā)送:參數(shù)ID0參數(shù)長(zhǎng)度(n)1參數(shù)數(shù)據(jù)2nMDT返回,成功后需要改寫數(shù)據(jù)庫(kù) 結(jié)果碼1-成功, 0-失敗)0參數(shù)ID:1=允許撥出電話(MAX16字節(jié)) 2=調(diào)度中心IP(4字節(jié)) 3=調(diào)度中心端口號(hào)(2個(gè)字節(jié))注意:設(shè)置IP和port時(shí)候請(qǐng)返回失敗,目前只能設(shè)置允許撥出電話3.3駕駛員登錄簽到車載終端發(fā)送駕駛員賬號(hào)(10)01.9駕駛員密碼(10)10.19調(diào)度中心返回 結(jié)果碼1-簽到成功,0-簽到失敗03.4駕駛員簽退車載終端發(fā)送 消息內(nèi)容空

5、調(diào)度中心返回,注意簽退后不能下載相片了,故需要記錄狀態(tài) 結(jié)果碼1-簽退成功,0-簽退失敗03.5請(qǐng)求駕駛員相片url信息車載終端發(fā)送 消息內(nèi)容空調(diào)度中心返回(模擬返回mypic1.jpg和mypic2.jpg的URL)測(cè)試選2張相片即可相片個(gè)數(shù)0第一張相片URL的長(zhǎng)度1相片URL數(shù)據(jù) (n=后面URL字節(jié)長(zhǎng)度)(23.第二張相片的長(zhǎng)度以此類推注1.相片URL數(shù)據(jù) (n=后面URL字節(jié)長(zhǎng)度)(.注1:相片URL長(zhǎng)度+數(shù)據(jù) 3.6 url請(qǐng)求下載駕駛員相片(注意:3.5返回后3.6自動(dòng)請(qǐng)求,不需要手動(dòng)選擇,是個(gè)自動(dòng)請(qǐng)求的過程)車載終端發(fā)送 消息內(nèi)容空調(diào)度中心返回(模擬下載mypic1.jpg和 m

6、ypic2.jpg)消息內(nèi)容空做簡(jiǎn)單模擬:(使用127.0.0.1回路地址測(cè)試才有效),在本機(jī)中使用system(cmd)系統(tǒng)命令,cmd為cp -rf車載終端絕對(duì)路徑 調(diào)度中心路徑 ,車載終端收到以后稍微提示下,打開文件以后會(huì)看到車載終端絕對(duì)路徑下有2個(gè)圖片文件,前提是調(diào)度中心有2個(gè)圖片文件。3.7駕駛員登錄簽到車載終端發(fā)送駕駛員賬號(hào)(10)01.9駕駛員密碼(10)10.19調(diào)度中心返回(成功則寫到數(shù)據(jù)庫(kù)中(模擬用配置文件) 結(jié)果碼1-注冊(cè)成功,0-注冊(cè)失敗03.8 一秒的定位信息(模擬來自美國(guó)全球衛(wèi)星GPS定位數(shù)據(jù))調(diào)度中心發(fā)送(模擬每秒發(fā)送,數(shù)據(jù)幀$GPRMC中只修改秒數(shù),從1-5秒循

7、環(huán)發(fā)送(把緩沖GPS數(shù)據(jù)放入數(shù)組中,共5組數(shù)據(jù)),此處去掉GPS本身的校驗(yàn))參考數(shù)據(jù):$GPRMC,100119.999,A,2236.8226,N,11403.7299,E,0.62,120.87,220506,*(詳解見下文)車載終端收到即解析數(shù)據(jù),不作返回GPS解析知識(shí)提取定位數(shù)據(jù)GPS接收機(jī)只要處于工作狀態(tài)就會(huì)源源不斷地接收GPS導(dǎo)航定位信息。把數(shù)據(jù)放入緩存發(fā)送到車載終端進(jìn)程處理,在沒有進(jìn)一步處理之前緩存中是一長(zhǎng)串字節(jié)流,這些信息在沒有經(jīng)過分類提取之前是無法加以利用的。因此,必須通過程序?qū)⒏鱾€(gè)字段的信息從緩存字節(jié)流中提取出來,將其轉(zhuǎn)化成有實(shí)際意義的。同其他通訊協(xié)議類似,對(duì)GPS進(jìn)行信息

8、提取必須首先明確其幀結(jié)構(gòu),然后才能根據(jù)其結(jié)構(gòu)完成對(duì)各定位信息的提取。在本文中,其接受的數(shù)據(jù)主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成,根據(jù)數(shù)據(jù)幀的不同,幀頭也不相同,主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。這些幀頭標(biāo)識(shí)了后續(xù)幀內(nèi)數(shù)據(jù)的組成結(jié)構(gòu),各幀均以回車符和換行符(0X0D、0X0A)作為幀尾標(biāo)識(shí)一幀的結(jié)束。對(duì)于通常的情況,我們所關(guān)心的定位數(shù)據(jù)如經(jīng)緯度、速度、時(shí)間等均可以從"$GPRMC"幀中獲取得到,該幀的結(jié)構(gòu)及各字段釋義如下,數(shù)據(jù)豐富的最典型情況,均為ASCI

9、I字符數(shù)據(jù)。$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh<1> 當(dāng)前位置的格林尼治時(shí)間,格式為hhmmss.sss<2> 狀態(tài), A 為有效位置, V為非有效接收警告,即當(dāng)前天線視野上方的衛(wèi)星個(gè)數(shù)少于3顆。<3> 緯度, 格式為ddmm.mmmm格式不定長(zhǎng),例如:3111.4364<4&g

10、t; 標(biāo)明南北半球, N 為北半球、S為南半球<5> 經(jīng)度,格式為dddmm.mmmm 格式不定長(zhǎng),例如:12125.1027<6> 標(biāo)明東西半球,E為東半球、W為西半球<7> 地面上的速度,范圍為0.0到999.9<8> 方位角,范圍為000.0到 359.9 度<9> 日期, 格式為ddmmyy <10> 地磁變化,從000.0到 180.0 度(不考慮)<

11、;11> 地磁變化方向,為E 或 W(不考慮)數(shù)據(jù)缺失的最典型情況將是:$GPRMC,<1>,<2>,*hh<1> 當(dāng)前位置的格林尼治時(shí)間,格式為hhmmss.sss<2> 狀態(tài), A 為有效位置, V為非有效接收警告,即當(dāng)前天線視野上方的衛(wèi)星個(gè)數(shù)少于3顆。數(shù)據(jù)將會(huì)出項(xiàng)缺失,時(shí)間回復(fù)到出廠時(shí)間,定位情況為V,(不定位警告)。至于其他幾種幀格式,除了特殊用途外,平時(shí)并不常用,雖然接收機(jī)也在源源不斷地向主機(jī)發(fā)送各種數(shù)據(jù)幀,但在處理時(shí)一般先通過對(duì)幀頭的判斷而只對(duì)&qu

12、ot;$GPRMC"幀進(jìn)行數(shù)據(jù)的提取處理。如果情況特殊,需要從其他幀獲取數(shù)據(jù),處理方法與之也是完全類似的。由于幀內(nèi)各數(shù)據(jù)段由逗號(hào)分割,因此在處理緩存數(shù)據(jù)時(shí)一般是通過搜尋ASCII碼"$"來判斷是否是幀頭,在對(duì)幀頭的類別進(jìn)行識(shí)別后再通過對(duì)所經(jīng)歷逗號(hào)個(gè)數(shù)的計(jì)數(shù)來判斷出當(dāng)前正在處理的是哪一種定位導(dǎo)航參數(shù),并作出相應(yīng)的處理。下面就是對(duì)緩存Data中的數(shù)據(jù)進(jìn)行解幀處理的主要代碼,例如某數(shù)據(jù):$GPRMC,100119.999,A,2236.8226,N,11403.7299,E,0.62,120.87,220506,*'    

13、;  100119.999   -十分秒(格林威治時(shí)間)'      2236.8226,N  -北緯坐標(biāo)(2236.8226)                 2236.8226,S         -南緯坐標(biāo)'   &#

14、160;  11403.7299,E -東京坐標(biāo)(11403.7299)                11403.7299,W       -西京坐標(biāo)'      0.62         -gps的移動(dòng)速度'  

15、;    120.87       -地面的方位角'      220506       -日期/GPS數(shù)據(jù)結(jié)構(gòu)typedef struct _GPSDatachar date15  /Gps數(shù)據(jù)日期char time15   /Gps數(shù)據(jù)時(shí)間char latitude_type; 

16、;/緯度類型,北緯,南緯char latitude15  /緯度值char longitude_type; /經(jīng)度類型,東經(jīng),西經(jīng)char longitude15 /經(jīng)度值char speed6;/速度/char starNum; /衛(wèi)星數(shù)目char IsValid;GPSData,*PGPSData;/*point為所有的幀數(shù)據(jù),buflen為幀長(zhǎng)度,要求您寫的AnalyGpsData過濾掉其他幀,只處理$GPRMC數(shù)據(jù)*/void  AnalyGpsData(char&#

17、160;*point, int bufLen)int i,err = 0,nDotNum = 0;memset(&m_gpsCurData,0,sizeof(m_gpsCurData);/注意數(shù)據(jù)結(jié)構(gòu)的初始化char buf16 = 0;                /儲(chǔ)存','到','之間的數(shù)據(jù)

18、while(1)if(*(point) = '$')/$GPRMCif(*(point) = '$')&&(*(point+1) = 'G')&&(*(point+2) = 'P')&&(*(point+3)= 'R')&&(*(point+4) = 'M')&&(*(point+5) = &

19、#39;C')while(1)i = 0;while(*point != ',')bufi = *point;i+;point+;point+;bufi = '/0'nDotNum+;switch(nDotNum)case 2:memcpy(m_gpsCurData.time,&buf0,strlen(buf);break; case 3: / Valid(A)/InValid(V)if(buf0 =

20、0;'V')                           err = 1;/沒有定位m_gpsCurData.IsValid = buf0;break; case 4: / 緯度:22.342551if(err =&

21、#160;0)memcpy(m_gpsCurData.latitude,&buf0,strlen(buf);break; case 5: /南北緯/if( (buf0 != 'N') && (buf0 != 'S') )  goto Wrong;if(err = 0)m_gpsCurData.latitude_type = buf0;break; case 6: / 經(jīng)度:114

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論