新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 車載GPS定位監控系統中信號的分析和處理設計

        車載GPS定位監控系統中信號的分析和處理設計

        作者: 時間:2016-12-20 來源:網絡 收藏


        區分一般信息和確認信息的依據是參數字符串是否包含“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。車載回傳的一般信息中包含的參數有車載序列號、移動電話號碼、車牌號、時間、絳緯度、速度、方位、日期。

        ∥獲取車載序列號(同樣的方法可以獲取移動電話號碼、車牌號、時間)

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

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

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

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

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

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

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

        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是否包含‘.’,如果包含就執行下面語句}

        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);{時間轉換}

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

        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。車載回傳的確認信息中包含車輛行駛方位和車輛狀態。

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

        處理一般信息中獲取的車輛狀態,由字符類型轉換為二進制數字符串,把二進制數據的每一位存進數組,每一位對應表一中的一個車輛狀態。

        ∥獲取車輛狀態

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

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

        ∥轉換為二進制數字符串

        sBin:=″;

        forI:=1 to 8 do

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

        ∥把二進制數據的每一位存進數組

        forI:=0to 3l do

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

        sCarStatuText:=HandleCarStatus(ArrBin);{車輛狀態}

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

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

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

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

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

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

        這里的CarID指車載機序列號。

        ∥車載機收到這條命令將會啟動斷油斷電。

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

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

        結語

          目前,車載GPS定位監控系統已經被各運輸公司使用在出租車、客車以及大型車隊上,該軟件技術很好的實現了對車輛位置、狀態的監控和調度管理。

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


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武川县| 蓬安县| 弋阳县| 祁连县| 江永县| 施甸县| 交口县| 景泰县| 肥城市| 大厂| 筠连县| 北宁市| 诸暨市| 永州市| 大新县| 安康市| 剑河县| 治多县| 兴文县| 金寨县| 安庆市| 浦城县| 酉阳| 永登县| 洛阳市| 江阴市| 永胜县| 韶山市| 杭锦旗| 舟曲县| 贵州省| 卢湾区| 玉门市| 宁津县| 泰来县| 武川县| 安丘市| 普宁市| 塔城市| 内丘县| 六安市|