EXLIVE平台,大家的平台
GPS车辆监控管理
二次开发案例
当前位置:首页 >> 二次开发 >> GPS定位监控平台WebService接口
GPS定位监控平台WebService接口


说明:
TVSS 企业端应用,如:企业内部ERP,办公自动化等,作为WebService接口的客户端
GPS GPS监控平台,作为WebService接口的服务端

一、接口报文标准

1.1 报文整体标准

1.1.1 报文文件格式
文件格式包括XML声明,必须在最开始声明如下所示:
<?xml version="1.0" encoding="GBK"?>

1.1.2 报文整体结构
XML块采用层次化结构数据块作为请求与响应的数据文件内容,数据块如下所示:
<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
消息头……
</head>
<body>
消息体……
<body>
</tvss>

1.1.3 标签命名规范
采用camelCase命名法,即第一个单词小写,此后每个单词的首字母大写。如:accessCode。
XML 元素都须有关闭标签,标签对大小写敏感。

1.1.4 标签内容规范
在 XML 中,有 5 个预定义的实体引用:

&lt < 小于
&gt > 大于
&amp & 和号
&apos ' 单引号
&quot " 双引号

(注意:XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯,TVSS要求用实体引用来代替。)

1.2 接入报文标准

1.2.1 请求报文

1.2.1.1 请求报文头(reqHead)

标记(Tag) 说明 可空 格式 出现次数
<head> 报文头开始     1
<accessCode> 接入代码 字符1-20位 1
<identify> 标识符 字符0-32位 1
<businessType> 业务类型: 字符1-20位 1
</head> 报文头结束      

1.2.1.2 请求报文体(reqBody)

标记(Tag) 说明 可空 格式 出现次数
<body> 报文体开始     1
<reqMsg> 请求报文体开始     1
…… 请求报文体具体内容      
</reqMsg> 请求报文体结束      
</body> 报文体结束      

1.2.2 响应报文

1.2.2.1 响应报文头(respHead)

标记(Tag) 说明 可空 格式 出现次数
<head> 报文头开始     1
<accessCode> 接入代码 字符1-20位 1
<businessType> 业务类型 字符1-20位 1
<respCode> 返回代码 字符固定4位 1
<respDesc> 返回描述 字符1-128位 1
</head> 报文头结束      

1.2.2.2 响应报文体(respBody)

标记(Tag) 说明 可空 格式 出现次数
<body> 报文体开始     1
<respMsg> 响应报文体开始     1
…… 响应报文体具体内容      
</respMsg> 响应报文体结束      
</body> 报文体结束      

二、接入业务类型报文

2.1 GPS报文

2.1.1 GPS服务端报文(TVSS ---> GPS)
业务类型businessType:GPS_CONTROLSENDMSG

2.1.1.1 处理流程

职责划分如下:

客户端(请求服务端Web Service) 服务端(提供Web Service)
TVSS Carrier GPS

正常处理步骤说明如下:
a. TVSS将运作中的车牌号(或车牌号列表),请求Carrier GPS提供的Web Service发送给GPS服务端,开启GPS定位信息跟踪;
b. TVSS将运作完成的车牌号(或车牌号列表),请求Carrier GPS供应商提供的Web Service发送给GPS服务端,关闭GPS定位信息跟踪;
c. 车牌号(或车牌号列表)开启和关闭定位信息可以放在同一个报文中;

异常处理步骤说明如下:
a. TVSS接收到Carrier GPS响应信息中响应代码非“0000”(响应代码请参见附录1);
b. TVSS会对响应消息进行分析处理后,再次请求Carrier GPS提供的Web Service将重新发送车牌号(或车牌号列表)进行开启和关闭,直到成功处理完成。

2.1.1.2 报文

2.1.1.2.1 请求报文

2.1.1.2.1.1 reqMsg标签定义

标记(Tag) 说明 可空 格式 次数
<car seq="…"> 数据项开始     1或多次
<controlType> controlType控制GPS发送数据或停止发:开始发送数据、停止发送数据 文本 [1,1] 1
<carNo> 车牌号 文本 [1,1] 1
</car> 数据项结束      

(注意:为了减少网络传输等待时间,一次请求报文中car最大seq为1000,多出部分请拆成多个包分批发送。)

系统处理逻辑:
运作中的车辆controlType为1;运作完成的车辆controlType为2。

数据校验逻辑:
由Carrier GPS自己处理,处理逻辑请以文档描述形式告知TVSS。

2.1.1.2.1.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<identify>98AB74C0A67C69C6451D2A5419F29835<identify>
<businessType>GPS_CONTROLSENDMSG</businessType>
</head>
<body>
<reqMsg>
<car seq="1">
< controlType >1 </car>
<carNo>京A22346</carNo>
<car>
<car seq="2">
< controlType >2 </car>
<carNo>京B33488</carNo>
<car>
<car seq="3">
< controlType >2 </car>
<carNo>京B33456</carNo>
<car>
<car seq="4">
< controlType >1 </car>
<carNo>京B33459</carNo>
<car>

</reqMsg>
<body>
</tvss>

2.1.1.2.2 响应报文

2.1.1.2.2.1 respMsg 标签定义

标记(Tag) 说明 可空 格式 次数
<fdbk seq="…"> 数据项开始   标签流水序号seq 0或多次
<fblc> 主标签定位 文本 [1,1024] 1
<carNo> 车牌号 文本 [1,10] 1
<fcer seq="…"> 内容错误开始   标签流水序号seq 1或多次
<erlc> 明细字段定位 文本 [1,1024] 1
<errs> 字段错误描述 文本 [1,1024] 1
</fcer> 内容错误结束      
</fdbk> 数据项结束      

2.1.1.2.2.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<businessType>GPS_CONTROLSENDMSG</businessType>
<respCode>3001</respCode>
<respDesc>请求内容存在错误</respDesc>
</head>
<body>
<respMsg>
<fdbk seq="1">
<fblc>car [@seq="2"]</fblc>
<carNo>京B33488</carNo>
<fcer seq="1">
<erlc>carNo<erlc>
<errs>该车未注册<errs>
</fcer>
……
</fdbk>
……
</respMsg>
<body>
</tvss>

2.1.2 GPS定位信息报文(GPS ---> TVSS)
业务类型businessType:GPS_LOCATION

2.1.2.1 处理流程

职责划分如下

客户端(请求服务端Web Service) 服务端(提供Web Service)
Carrier GPS Carrier GPS

正常处理步骤说明如下:
a. TVSS将运作中的车牌号(或车牌号列表),请求Carrier GPS提供的Web Service发送给GPS服务端;
b. GPS服务端按照指定的频度(次/30秒),请求TVSS提供的Web Service发送相关车牌号(或车牌号列表)的车辆定位信息给TVSS;(要求GPS采样频率不能大于次/30秒。如:GPS采样频率为次/10秒,则GPS服务端通过TVSS提供的Web Service发送过来的记录数为每辆车3条。)
c. TVSS通过提供车辆的GPS信息和收货地的经纬度坐标,并在一定的误差范围内,同时加上预计卸货时间,将运作完成的车牌号(或车牌号列表),通过Carrier GPS供应商提供的Web Service发送给GPS服务端;
d. GPS服务端接收到车牌号(或车牌号列表)之后,停止向TVSS发送相关车牌号(或车牌号列表)的车辆定位信息;
e. 时序图中的1和3步为可选,同时存在或同时都不存在,依赖于系统接口约定。

异常处理步骤说明如下:
a. Carrier GPS接收到TVSS响应信息中响应代码非“0000”(响应代码请参见附录3);
b. Carrier GPS对响应消息进行分析处理后,再次请求TVSS提供的Web Service重新发送车辆定位信息,直到成功处理完成。

2.1.2.2 报文

2.1.2.2.1 请求报文

2.1.2.2.1.1 reqMsg 标签定义

标记(Tag) 说明 可空 格式 次数
<gps seq="..."> 数据项开始  

标签流水序号seq;整数[1-1000]

1或多次
<carNo> 车牌号car no 文本 [1,10] 1
<devNo> 设备号device no 文本 [1,20] 1
<devErrCode> 设备异常代码,请参考附录5,如果设备不支持默认为空 文本 [1,4] 1
<devErrMsg> 设备异常信息,如果设备不支持默认为空 文本 [1,255] 1
<posTime>

定位时间:positioning time

日期:格式yyyy-MM-dd HH:mm:ss,注意dd和HH之间有一个空格,HH为24制

1
<lng> 定位经度longitude 数字[0-10000000000000),小数点后15位 1
<lat> 定位纬度latitude 数字[0-10000000000000),小数点后15位 1
<speed> 车速 整数[0-1000000000) 1
<status>

是否熄火 :0:熄火;1:正常

文本 [1,1] 1
<place> 定位地点描述 文本 [1,255] 1
</gps > 数据项结束      

(注意:为了减少网络传输等待时间,一次请求报文中gps最大seq为1000,多出部分请拆成多个包分批发送。)

系统处理逻辑:
数据校验逻辑:

2.1.2.2.1.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<identify>98AB74C0A67C69C6451D2A5419F29835<identify>
<businessType>GPS_LOCATION</businessType>
</head>
<body>
<reqMsg>
<gps seq="1">
<carNo>沪AR1251</carNo>
<devNo>123456789</devNo>
<devErrCode>0000</devErrCode>
<devErrMsg>正常</devErrMsg>
<posTime>2010-02-23 01:49:00</posTime>
<lng>121.204003906250008</lng>
<lat>31.235437011718798</lat>
<speed>44</speed>
<status>1</status>
<place>上海市青浦区 华徐公路</place>
</gps>
<gps seq="2">
<carNo>冀RE1027</carNo>
<devNo>987654321</devNo>
<devErrCode>0000</devErrCode>
<devErrMsg>正常</devErrMsg>
<posTime>2010-02-23 01:52:00</posTime>
<lng>121.203857421875000</lng>
<lat>31.235404459635397</lat>
<speed>0</speed>
<status>0</status>
<place>上海市奉贤区 庄芦路</place>
</gps>
……
</reqMsg>
<body>
</tvss>

2.1.2.2.2 响应报文

2.1.2.2.2.1 respMsg 标签定义

标记(Tag) 说明 可空 格式 次数
<fdbk seq="…"> 数据项开始   标签流水序号seq 0或多次
<fblc> 主标签定位 文本 [1,1024] 1
<carNo> 车牌号 文本 [1,10] 1
<fcer seq="…"> 内容错误开始   标签流水序号seq 1或多次
<erlc> 明细字段定位 文本 [1,1024] 1
<errs> 字段错误描述 文本 [1,1024] 1
</fcer> 内容错误结束      
</fdbk> 数据项结束      

2.1.2.2.2.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<businessType>GPS_LOCATION</businessType>
<respCode>3001</respCode>
<respDesc>请求内容存在错误</respDesc>
</head>
<body>
<respMsg>
<fdbk seq="1">
<fblc>gps [@seq="2"]</fblc>
<carNo>冀RE1027</carNo>
<fcer seq="1">
<erlc>devErrCode<erlc>
<errs>设备代码错误<errs>
</fcer>
……
</fdbk>
……
</respMsg>
<body>
</tvss>

2.1.3 GPS门磁开关信息报文(GPS ---> TVSS)

业务类型businessType:GPS_LOCK

2.1.3.1 处理流程

职责划分如下:

客户端(请求服务端Web Service) 服务端(提供Web Service)
Carrier GPS TVSS

正常处理步骤说明如下:
a. Carrier管理提供运输服务的车辆列表;
b. 当Carrier车辆列表里的车辆门磁开关状态发生改变时,Carrier GPS自动请求TVSS提供的Web Service发送车辆门磁开关信息给TVSS;

异常处理步骤说明如下:
a. Carrier GPS接收到TVSS响应信息中响应代码非“0000”(响应代码请参见附录3);
b. Carrier GPS对响应消息进行分析处理后,再次请求TVSS提供的Web Service重新发送车辆门磁开关信息,直到成功处理完成。

2.1.3.2 报文

2.1.3.2.1 请求报文

2.1.3.2.1.1 reqMsg 标签定义

标记(Tag) 说明 可空 格式 次数
<lock seq="…"> 数据项开始

 

标签流水序号seq;整数[1-1000] 1或多次
<carNo> 车牌号car no 文本 [1,10] 1
<msNo>

门磁开关:Magnetic Switch

文本 [1,20] 1
<devErrCode> 设备异常代码,请参考附录5,如果设备不支持默认为空 文本 [1,4] 1
<devErrMsg> 设备异常信,如果设备不支持默认为空 文本 [1,255] 1
<posTime>

定位时间:positioning time

日期:格式yyyy-MM-dd HH:mm:ss,注意dd和HH之间有一个空格,HH为24制

1
<status>

车门开关状态 :0:关;1:开

文本 [1,1] 1
</lock > 数据项结束      

(注意:为了减少网络传输等待时间,一次请求报文中lock最大seq为1000,多出部分请拆成多个包分批发送。)

系统处理逻辑:
数据校验逻辑:

2.1.3.2.1.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<identify>98AB74C0A67C69C6451D2A5419F29835<identify>
<businessType>GPS_LOCK</businessType>
</head>
<body>
<reqMsg>
<lock seq="1">
<carNo>沪AR1251</carNo>
<msNo>10001</msNo>
<devErrCode>0000</devErrCode>
<devErrMsg>正常</devErrMsg>
<posTime>2010-02-23 01:49:00</posTime>
<status>1</status>
</lock>
<lock seq="2">
<carNo>冀RE1027</carNo>
<msNo>10002</msNo>
<devErrCode>0000</devErrCode>
<devErrMsg>正常</devErrMsg>
<posTime>2010-02-23 01:52:00</posTime>
<status>0</status>
</lock>
……
</reqMsg>
<body>
</tvss>

2.1.3.2.2 响应报文

2.1.3.2.2.1 respMsg 标签定义

标记(Tag) 说明 可空 格式 次数
<fdbk seq="…"> 数据项开始   标签流水序号seq 0或多次
<fblc> 主标签定位 文本 [1,1024] 1
<carNo> 车牌号 文本 [1,10] 1
<fcer seq="…"> 内容错误开始   标签流水序号seq 1或多次
<erlc> 明细字段定位 文本 [1,1024] 1
<errs> 字段错误描述 文本 [1,1024] 1
</fcer> 内容错误结束      
</fdbk> 数据项结束      

2.1.3.2.2.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<businessType>GPS_LOCK</businessType>
<respCode>3001</respCode>
<respDesc>请求内容存在错误</respDesc>
</head>
<body>
<respMsg>
<fdbk seq="1">
<fblc>lock [@seq="1"]</fblc>
<carNo>沪AR1251</carNo>
<fcer seq="1">
<erlc>devErrCode<erlc>
<errs>设备代码错误<errs>
</fcer>
……
</fdbk>
……
</respMsg>
<body>
</tvss>

2.1.3.2.3 响应报文

2.1.3.2.3.1 respMsg标签定义

标记(Tag) 说明 可空 格式 次数
<fdbk seq="…"> 数据项开始   标签流水序号seq 0或多次
<fblc> 主标签定位 文本 [1,1024] 1
<deliveryNo> 交货号 文本 [1,20] 1
<fcer seq="…"> 内容错误开始   标签流水序号seq  
<erlc> 明细字段定位 文本 [1,1024] 1
<errs> 字段错误描述 文本 [1,1024] 1
</fcer> 内容错误结束      
</fdbk> 数据项结束      

2.1.3.2.3.2 范例

<?xml version="1.0" encoding="GBK"?>
<tvss>
<head>
<accessCode>sinotrans</accessCode>
<businessType>TMS001</businessType>
<respCode>3001</respCode>
<respDesc>请求内容存在错误</respDesc>
</head>
<body>
<respMsg>
<fdbk seq="1">
<fblc> tdn [@seq="1"]</fblc>
<deliveryNo>76816327</deliveryNo>
<fcer seq="1">
<erlc>deliveryDate<erlc>
<errs>交货日期格式错误<errs>
</fcer>
<fcer seq="2">
<erlc>sku[@seq="2"]/quantity<erlc>
<errs>数量不允许小于0<errs>
</fcer>
……
</fdbk>
……
</respMsg>
<body>
</tvss>

附录1:系统响应代码
代码 描述
0000 处理成功
1001 接入代码错误
1002 标识符错误
1003 业务类型不支持
1004 请求报文数据格式有误
9999 其它错误

附录3:系统响应代码

代码 描述
0000 处理成功
1001 请求报文XML不合法
1002 请求报文XML校验错误(如:DTD或Schema校验不通过)
2001 接入代码错误
2002 标识符错误
2003 业务类型不支持
3001 请求内容存在错误
9999 其它错误(注意:为该类错误代码时请反馈具体的错误描述)

(注意:只有响应代码为“3001”时,响应报文<respMsg>标签才允许放入内容,其它响应代码响应报文<respMsg>放入空内容。)

附录5:GPS设备异常代码

代码 描述
0000 正常
0001 断电

 

版权信息
手机产品   |    论坛   |    收藏   |    GPS+   |    帮助   |    建议   |    登录   |    管理(203)
京ICP备09069461号    京公网安备110105002252