- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
车载GPS定位监控系统中信号的分析与处理
从车载机接收的GPS信号中判断返回的信息是否有效,如果无效则直接丢弃,如果有效,则确认是一般信息还是确定信息,再接收处理一般信息或确定信息。
区分一般信息和确认信息的依据是参数字符串是否包含"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-DD HH: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-DD HH: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为正东方向,依此类推确认车辆的行驶方向。
处理一般信息中获取的车辆状态,由字符类型转换为二进制数字符串,把二进制数据的每一位存进数组,每一位对应表一中的一个车辆状态。
作者:叶敦范,刘敏 中国地质大学 来源:电子产品世界