介绍
随着汽车在日常生产生活中的作用日益突出,如何实现对各类车辆的有效指挥、协调控制和管理,已成为交通运输和安全管理部门面临的重要问题。为了满足提高运输效率和安全性的需要,车辆定位监控系统的研究变得日益迫切。
车载GPS定位监控系统是将GSM全球数字蜂窝移动通信技术与GIS地理信息技术、GPS全球卫星定位技术和计算机网络技术相结合而发展起来的软件技术。它通过安装在车辆上的GPS接收机(即车载机)接收卫星信号,监控中心的通信控制器从GPS接收机输出的信号中提取所需的位置、速度和时间信息,并结合车辆身份等信息形成数据报,再通过无线信道发送到控制中心。控制中心主站接收子站发送的数据,对接收到的信息进行处理,并以短信的方式直接发送给各车辆承运商。最后在监控中心的电子地图上显示车辆的具体数据和状态。
论述了从接收机输出的信号中提取所需位置、速度和时间信息的方法,以及中央处理信息后发送命令集的实现过程。
GPS车载机的通信协议
车载电脑与监控中心的通信方式是中心发送命令,车载电脑应答。因此,车载计算机对GPS信号的分析和处理必须完全基于车载GPS接收机与监控中心之间的通信协议,这是GPS车载计算机通信协议的一部分。
车载返回信息
一般信息:
*XX,YYYYYYYYY,V1,HHMMSS,S,纬度,D,经度,G,速度,方向,DDMMYY,车辆状态#
确认信息:
*XX,YYYYYYYYY,V4,CMD,hhmmss,HHMMSS,S,latitu de,D,经度,G,速度,方向,DDM MYY,vehicle_status#
区分一般信息和确认信息的方法是看承运商发回的信息是否包含V4 ,判断返回信息是否有效的方法是看返回信息中是否包含HQ(制造商名称)。
其中:*'指示命令头;Xx 指制造商的名称;''指示分隔符;YYYYYYYYYYY 表示车载机的序列号;Cmd 表示确认的中央命令;HHMMSS 指示确认命令中的时间值;HHMMSS 指机上时间;S 表示数据有效位;纬度意味着纬度;D 表示纬度标记;经度表示经度;G 表示经度标记;速度意味着速度;方向表示方位角;D d d m m y y 指日/月/年;车辆状态表示“车辆状态
车辆返回GPS信息有两种模式,一种是返回最近的有效GPS信息;二是返回最新的GPS信息。
中央命令结构和命令集
通信软件的设计与实现
GPS信号与监控中心的通信大致可以分为两步:首先,GPS接收机(即车载机)接收卫星信号,监控中心的通信控制器从GPS接收机输出的信号中提取所需的位置、速度、时间等数据信息;第二,监控中心将分析后的数据信息通过短信发送给各个车辆承运商。具体步骤如下:
function is validmsg(Str:String):Boolean;{判断消息是否有效}
函数IsConfgMsg(str:String):Boolean;{区分一般信息和确认信息}
过程resoluegprsv(RecvGprs:String);{处理接受信息}
过程resoluegprsv 1(RecvGprs:String);{处理一般信息(V1)}
过程resoluegprsv 4(RecvGprs:String);{处理确认信息(V4)}
函数Direc(Sr:String):String;{车辆行驶方向}
函数hex CNG(Rhex:String):String;{十六进制数被转换成二进制数}
f
过程SendSms(电话,其他:字符串;iCmdID,iSendType:Integer;
CARID:string=){中心发送命令集}
从车载机接收的GPS信号判断返回的信息是否有效;如果无效,直接丢弃;如果有效,则确认是一般信息还是确定信息,然后接收并处理一般信息或确定信息。
一般信息和确认信息的区别在于参数字符串是否包含V4 。
结果:=假;{初始返回结果}
结果:=pos('V4 'Str)”0;{如果字符串包含V4 ,它将返回true,否则将返回false}
是否返回有效信息取决于参数字符串是否包含*总部或者不是。
结果:=假;{初始返回结果}
结果:=pos('*HQ 'Str)" 0;{如果字符串包含*总部,它将返回true,否则将返回false}
通用信息的标志是V1。车辆发回的一般信息中包含的参数有车辆序列号、手机号、车牌号、时间、纬度、速度、方位、日期。
获取车辆序列号(同样方法可以获取手机号、车牌号和时间)
sCarNo:=copy(RecvGprs,iPos 4,10);
得到纬度(经度可以用同样的方法得到)
slattitude:=copy(RecvGprs,iPos 3,9);
slattitude:=float tostr(StrToFloat(copy(slattitude,1,2))StrToFloat(copy(slattitude,3,7))/60);
得到南纬和北纬(同样的方法可以得到东西经度)
iPos:=pos('S,' RecvGprs);{查找的位置,s,在RecvGprs中}
如果iPos》0则;(如果RecvGprs包含,执行以下语句}
SNS:=南纬
否则开始
iPos:=pos('N 'RecvGprs);{查找的位置,n,在RecvGprs中}
SNS:=北纬
结束;
获取速度、方向和日期
sSpeed:=copy(RecvGprs,iPos 3,6);{采集速度}
sDirection:=copy(RecvGprs,iPos 10,3);(获得方位)
sDate:=copy(RecvGprs,iPos 14,6);{获得日期}
如果位置('s speed)=0然后{判断s速度是否包含'如果是,执行下面的语句}
开始
sSpeed:=copy(RecvGprs,iPos 3,3);{采集速度}
sDirection:=copy(RecvGprs,iPos 7,3);{获取
接受方位}
sDate:=copy(RecvGprs,iPos 11,6);{获得日期}
结束;
数据转换
sSpeed:=FormatFloat('0.00 'StrToFloat(s speed)* 1.852);{行驶速度转换}
sSceond:=copy(sTime,5,2);{时间转换}
ifrtoint(SSCEOND)60然后{时间转换(YYYY-MM-DD HH:MM:SS 意思是:YYYY,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,MM,
sDate:=format datetime(' YYYY-MM-DDHH:MM:SS),in chour(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))
否则开始
sDate:=format datetime(' YYYY-MM-DDHH:MM:SS),in chour(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:=format datetime(' YYYY-MM-DD HH:MM:SS '
IncMinute(StrToDateTime(sDate),1));
结束;
确认的标志是V4。从车辆发回的确认信息包括车辆行驶位置和车辆状态。
从通用信息处理获得的方位信息从字符型转换成整数数据,并且根据数据的范围确定车辆的行驶方位。车辆行驶方向为正北,大于22.5小于67.5时为东北,大于67.5小于112.5时为正东,以此类推。
从一般信息处理中获得的车辆状态被从字符类型转换成二进制数字串,并且二进制数据的每个比特被存储在数组中,并且每个比特对应于表1中的车辆状态。
获取车辆状态
iPos:=Pos('# 'RecvGprs);
sCarStatus:=copy(RecvGprs,iPos-8,8)
转换为二进制数字字符串
sBin:="
forI:=1到8 do
sBin:=sBin hex CNG(copy(sCarStatus,I,1));
将二进制数据的每一位保存到一个数组中
forI:=0到3l do
ArrBin[I]:=copy(sBin,I 1,1);
sCarStatuText:=HandleCarStatus(arr bin);{车辆状态}
监控中心根据每辆车返回的信息内容发送不同的命令。发送命令程序应严格按照中心规定的格式编写发送命令集。以下是一些命令:
该指令要求车载机器每隔一段时间发送回计数定位信息。
sRightStr:='*HQ,000000000,D1,' sTime '' sInterval '' sCount '# '
车载机收到该指令后将清除所有报警信息。
sRightStr:='*HQ,000000000,R7,' sTime ' #
if . messagebox(PCcar(您真的要取消车辆的警报吗?十卡里德]?'),'提示MB _ yesno MB _ defbutton2)=idno然后退出;
这里的CarID是指车载机的序列号。
车载机收到此命令后将开始断油断电。
sRightStr:='*HQ,0000000000,S20,' sTime '1,3,10,3,5,5 # '
application . messagebox(PCHAR(你真的要切断车辆的油和电源吗[卡里德]?'),'提示MB _ yesno MB _ defbutton2)=idno然后退出;
标签
目前,车载GPS定位监控系统已被各运输公司用于出租车、公交车和大型车队。该软件技术很好地实现了车辆位置和状态的监控和调度管理。
随着GPS应用领域的扩大,车载GPS导航、定位和监控软件系统的功能也将随着导航和通信的需求而增加和完善。GPS车载机的通信协议会根据GPS车载机产品的功能升级而不断升级,相应的软件系统会加入新的命令。该系统的设计将有助于这些升级和维护。
标签:车辆信息copy