<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 安全與國防 > 學(xué)習方法與實(shí)踐 > 車(chē)載GPS定位監控系統中信號的分析和處理

車(chē)載GPS定位監控系統中信號的分析和處理

作者:葉敦范 劉敏 時(shí)間:2008-01-24 來(lái)源:《電子產(chǎn)品世界》 收藏

引言

本文引用地址:http://dyxdggzs.com/article/78000.htm

  隨著(zhù)汽車(chē)在日常生產(chǎn)和生活中起的作用越來(lái)越突出,如何實(shí)現各類(lèi)車(chē)輛的有效指揮、協(xié)調控制和管理已經(jīng)成為交通運輸和安全管理部門(mén)面臨的一個(gè)重要問(wèn)題。為了滿(mǎn)足提高運輸效率和安全保障的需要,對車(chē)輛定位監控系統的研究也日趨迫切。

  車(chē)載是GSM全球數字蜂窩移動(dòng)通信技術(shù)和GIS地理信息技術(shù)、GPS全球衛星定位技術(shù)以及計算機網(wǎng)絡(luò )技術(shù)相融合研制開(kāi)發(fā)出來(lái)的軟件技術(shù)。它是通過(guò)安裝在車(chē)輛上的GPS接收機(即車(chē)載機)接收衛星信號,監控中心的通信控制器從GPS接收機輸出的信號中提取所需要的位置、速度和時(shí)間信息,結合車(chē)輛身份等信息形成數據報,然后通過(guò)無(wú)線(xiàn)信道發(fā)往控制中心;控制中心的主站接收子站發(fā)送的數據,處理接收信息通過(guò)短消息的方式逐次直接發(fā)送給每一臺車(chē)載機。最后,將車(chē)輛的具體數據和狀態(tài)在監控中心的電子地圖上顯示出來(lái)。

  本文討論的就是從接收機輸出的信號中提取所需要的位置、速度和時(shí)間信息的方法,以及中心處理信息后發(fā)送命令集的實(shí)現過(guò)程。

GPS車(chē)載機的通信協(xié)議

  車(chē)載機與監控中心之間的通信方式均以中心發(fā)送命令,車(chē)載機應答的方式進(jìn)行,所以我們對車(chē)載機GPS信號的分析與處理必須完全依據車(chē)載GPS接收機與監控中心的通信協(xié)議來(lái)進(jìn)行,下而是GPS車(chē)載機通信協(xié)議的部分內容。

車(chē)載機返回信息

一般信息:

  *XX,YYYYYYYYYY,V1,HHMMSS,S,latitude,D,longitu de,G,speed,direction,DDMMYY,vehicle_status#

確認信息:

  *XX,YYYYYYYYYY,V4,CMD,hhmmss,HHMMSS,S,latitu de,D,longitude,G,speed,direction,DDM MYY,vehicle_status#

  區分一般信息和確認信息的方法是看車(chē)載機傳回來(lái)的信息中是否包含“V4”,判斷返回信息是否有效的方法是看回傳信息中是否包含“HQ(制造商名稱(chēng))”。

  其中:‘*’表示命令頭;‘XX’表示制造商名稱(chēng);‘,’表示分隔符;‘YYYYYYYYYY’表示車(chē)載機序列號;‘CMD’表示被確認的中心命令;‘hhmmss’表示被確認命令中的時(shí)間值;‘HHMMSS’表示車(chē)載機時(shí)間;‘s’表示數據有效位;‘latitude’表示緯度;‘D’表示緯度標志;‘longitude’表示經(jīng)度;‘G’表示經(jīng)度標志;‘speed’表示速度;‘direction’表示方位角;‘D D M M Y Y’表示日/月/年;‘vehicle_status’表示車(chē)輛狀態(tài)。

  車(chē)載機返回GPS信息模式有兩種,一是返回最近的有效的GPS信息;二是返回最新的GPS信息。

  中心發(fā)送命令結構和命令集

  中心發(fā)送命令結構是:*XX,YYYYYYYYYY,CMD,HHMMSS,PARA1,PARA2,…#

  在編寫(xiě)中心發(fā)送指令時(shí)必需按照這個(gè)格式來(lái)寫(xiě),下面列出其中的七個(gè)中心發(fā)送命令。

  定位監控命令D1:該指令要求車(chē)載機以interval為時(shí)間間隔,回傳count次定位信息。

  自動(dòng)監控設置命令S17:該指令完成對自動(dòng)監控參數的設置。

  參數設置指令S12:該指令僅用于對S17命令的開(kāi)關(guān)控制。

  設置監控中心短信號碼S2:車(chē)載機收到指令后將立即向新的監控中心發(fā)送確認信息。

  通話(huà)設置指令S13:phone_flag的bit0=0時(shí)允許打出,bit1=0時(shí)允許接聽(tīng)。

  清楚報警指令R7:車(chē)載機收到命令后將清除掉所有報警信息。

  冷啟動(dòng)指令R1:車(chē)載機收到命令后將執行冷啟動(dòng)復位,所有狀態(tài)參數全部清零。

通信軟件的設計與實(shí)現

  GPS信號與監控中心之間的通信大致分成兩個(gè)步驟:一是GPS接收機(即車(chē)載機)接收衛星信號,監控中心的通信控制器從GPS接收機輸出的信號中提取所需要的位置、速度和時(shí)間等數據信息;二是監控中心將分析出的數據信息通過(guò)短消息的方式發(fā)送命令給每一臺車(chē)載機。具體步驟如下:

  function IsValidMsg(Str:String):Boolean;{判斷消息是否有效}

  function IsConfgMsg(str:String):Boolean;{區分一般信息和確認信息}

  procedure ResoleGprsV(RecvGprs:String);{處理接受信息}

  procedure ResoleGprsV1(RecvGprs:String);{處理一般信息(V1)}

  procedure ResoleGprsV4(RecvGprs:String);{處理確認信息(V4)}

  function Direc(sr:String):String;{車(chē)輛行駛方向}

  function HexCng(Rhex:String):String;{十六進(jìn)制數轉換為二進(jìn)制數}

  function HandleCarStatus(ArrBin:array of String):String;{處理車(chē)輛狀態(tài)}

  function ChangeTel(sTel:String):String;{}function StrToHex(sStr:String):String;

  procedure SendSms(Tel,Other:String;iCmdID,iSendType:Integer;

  CarID:String=”){中心發(fā)送命令集}

  從車(chē)載機接收的GPS信號中判斷返回的信息是否有效,如果無(wú)效則直接丟棄,如果有效,則確認是一般信息還是確定信息,再接收處理一般信息或確定信息。

  區分一般信息和確認信息的依據是參數字符串是否包含“V4”。

  Result:=False;{初始返回結果}

  Result:=pos(‘V4’,Str)>0;{如果str包含“V4”,就返回true,否則false}

  判斷是否返回有效的信息的依據是參數字符串足否包含”*HQ”。

  Result:=False;{初始返回結果}

  Result:=pos(‘*HQ’,Str)>0;{如果str包含“*HQ”,就返回true,否則false}

  一般信息的標志是V1。車(chē)載回傳的一般信息中包含的參數有車(chē)載序列號、移動(dòng)電話(huà)號碼、車(chē)牌號、時(shí)間、絳緯度、速度、方位、日期。

  ∥獲取車(chē)載序列號(同樣的方法可以獲取移動(dòng)電話(huà)號碼、車(chē)牌號、時(shí)間)

  sCarNo:=copy(RecvGprs,iPos+4,10);

  ∥獲取緯度(同樣的方法可以獲得經(jīng)度)

  sLatitude:=copy(RecvGprs,iPos+3,9);

  sLatitude:=FloatToStr(StrToFloat(copy(sLatitude,1,2))+StrToFloat(copy(sLatitude,3,7))/60);

  ∥獲取南緯和北緯(同樣的方法可以獲得東西經(jīng))

  iPos:=pos(‘,S,’,RecvGprs);{查找“,S,”在RecvGprs的位置}

  if iPos>0 then;(如果RecvGprs包含‘,S,’就執行下面語(yǔ)句}

  sNS:=‘南緯’

  else begin

  iPos:=pos(‘,N,’,RecvGprs);{查找“,N,” 在RecvGprs的位置}

  sNS:=‘北緯’;

  end;

  ∥獲取速度、方位、日期

  sSpeed:=copy(RecvGprs,iPos+3,6);{獲取速度}

  sDirection:=copy(RecvGprs,iPos+10,3);(獲取方位}

  sDate:=copy(RecvGprs,iPos+14,6);{獲取日期}

  if Pos(‘.’,sSpeed)<=0 then{判斷sSpeed是否包含‘.’,如果包含就執行下面語(yǔ)句}

  begin

  sSpeed:=copy(RecvGprs,iPos+3,3);{獲取速度}

  sDirection:=copy(RecvGprs,iPos+7,3);{獲取方位}

  sDate:=copy(RecvGprs,iPos+11,6);{獲取日期}

  end;

  ∥數據轉換

  sSpeed:=FormatFloat(‘0.00',StrToFloat(sSpeed)*1.852);{行駛速度轉換}

  sSceond:=copy(sTime,5,2);{時(shí)間轉換}

  if StrToInt(sSceond)<60 then{時(shí)間轉換(‘YYYY-MM-DD HH:MM:SS’表示為:年月日時(shí)分秒)

  sDate:=FormatDateTime(‘YYYY-MM-DDHH:MM:SS’,IncHour(StrToDateTime(‘20’+copy(sDate,5,2)+‘-’+copy(sDate,3,2)+‘-’+copy(sDate,1,2)+‘ ’+copy(sTime,1,2)+‘:’+copy(sTime,3,2)+‘:’+copy(sTime,5,2)),8))

  else begin

  sDate:=FormatDateTime(‘YYYY-MM-DDHH:MM:SS’,IncHour(StrToDateTime(‘20’+ copy(sDate,5,2)+‘-’+copy(sDate,3,2)+‘-’+copy(sDate,1,2)+‘ ’+copy(sTime,1,2)+‘:’+copy(sTime,3,2)+‘:’+‘00’),8));

  sDate:=FormatDateTime(‘YYYY-MM-DD HH:MM:SS’,

  IncMinute(StrToDateTime(sDate),+1));

  end;

  確認信息的標志是V4。車(chē)載回傳的確認信息中包含車(chē)輛行駛方位和車(chē)輛狀態(tài)。

  處理一般信息中獲取的方位信息,由字符類(lèi)型轉換為整型數據,根據數據所在范圍確定車(chē)輛的行駛方位,小于22.5或大于337.5為正北方向,大于22.5小于67.5為東北方向,大于67.5小于112.5為正東方向,依此類(lèi)推確認車(chē)輛的行駛方向。

  處理一般信息中獲取的車(chē)輛狀態(tài),由字符類(lèi)型轉換為二進(jìn)制數字符串,把二進(jìn)制數據的每一位存進(jìn)數組,每一位對應表一中的一個(gè)車(chē)輛狀態(tài)。

  ∥獲取車(chē)輛狀態(tài)

  iPos:=Pos(‘#’,RecvGprs);

  sCarStatus:=copy(RecvGprs,iPos-8,8)

  ∥轉換為二進(jìn)制數字符串

  sBin:=″;

  forI:=1 to 8 do

  sBin:=sBin+HexCng(copy(sCarStatus,I,1));

  ∥把二進(jìn)制數據的每一位存進(jìn)數組

  forI:=0to 3l do

  ArrBin[I]:=copy(sBin,I+1,1);

  sCarStatuText:=HandleCarStatus(ArrBin);{車(chē)輛狀態(tài)}

  監控中心根據每一臺車(chē)載機傳回的信息內容發(fā)送不同的命令。發(fā)送命令程序需嚴格按照中心發(fā)送命令集規定的的格式來(lái)寫(xiě),下面列舉其中的幾條命令:

  ∥該指令要求車(chē)載機以sInterval為時(shí)間間隔,回傳sCount次定位信息。

  sRightStr:=‘*HQ,0000000000,D1,’+sTime+‘,’+sInterval+‘,’+sCount+‘#’

  ∥車(chē)載機接到這條指令后將清除掉 所有報警信息。

  sRightStr:=‘*HQ,0000000000,R7,’+sTime+‘#’;

  if Application.MessageBox(PChar(‘真的要解除對車(chē)輛【‘十CarID+’】報警嗎?’),‘提示’,MB_YESNO+MB_DEFBUTTON2)=IDNO then Exit;

  這里的CarID指車(chē)載機序列號。

  ∥車(chē)載機收到這條命令將會(huì )啟動(dòng)斷油斷電。

  sRightStr:=‘*HQ,0000000000,S20,’+sTime+‘,1,3,10,3,5,5#’;

  if Application.MessageBox(PChar(‘真的要對車(chē)輛【‘+CarID+’】斷油斷電嗎?’),‘提示’,MB_YESNO+MB_DEFBUTTON2)=IDNO then Exit;

結語(yǔ)

  目前,車(chē)載已經(jīng)被各運輸公司使用在出租車(chē)、客車(chē)以及大型車(chē)隊上,該軟件技術(shù)很好的實(shí)現了對車(chē)輛位置、狀態(tài)的監控和調度管理。

  隨著(zhù)GPS應用領(lǐng)域的擴大,車(chē)載GPS導航定位監控軟什的系統的功能也將隨著(zhù)導航、通信等需求而不斷的增多和完善。GPS車(chē)載機通信協(xié)議會(huì )根據GPS車(chē)載機產(chǎn)品的功能升級而不斷升級,增加新的命令,相應的軟件系統也要增加新的指令,本系統的設計將易于這些升級維護工作的進(jìn)行。



關(guān)鍵詞: GPS定位監控系統

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>