JT∕T 905 -2014 出租汽车服务管理信息系统的相关协议研究
出租汽车服务管理信息系统(JT∕T 905 -2014)
国家的相关技术要求2014年7月正式出台,总体有四部分, 第 1 部分:总体技术要求; 第 2 部分:运营专用设备; 第 3 部分:信息数据元; 第 4 部分:数据交换与共享。相应的国标文件为:
JT∕T 905.1-2014 出租汽车服务管理信息系统
JT∕T 905.2-2014 出租汽车服务管理信息系统
JT∕T 905.3-2014 出租汽车服务管理信息系统
JT∕T 905.4-2014 出租汽车服务管理信息系统
本文就第二部分的运营专用设备中ISU 与中心通讯协议及数据格式相关部分进行初步探讨,通讯协议主要与JT808类似,有以下几点区别。
1、 消息头中的ISU标识
JT808协议【终端手机号】与JT905协议中的【ISU 标识】的同为6个字节的BCD码,
区别:JT905中的 ISU 标识第一字节为 “ 10”,后五个字节为 ISU 的,ID 号由5个字节组成。
厂商编号 |
设备类型 |
序列号 |
1byte |
1byte |
3byte |
而JT808中的协议【终端手机号】由12位的手机号组成。第一位预留位0.
代码解析过程:
/// <summary>
/// BCD转String
/// </summary>
/// <param name="bData"></param>
/// <returns></returns>
public static string BCDToStr(byte[] bData, int startIndex, int length)
{
try
{
string strRes = "";
byte tempHigh = , tempLow = ;
byte[] byteChar = new byte[length];
for (int i = startIndex; i < startIndex + length; i++)
{
tempHigh = (byte)((bData[i] & 0xF0) >> );
tempLow = (byte)(bData[i] & 0x0F);
strRes += tempHigh.ToString() + tempLow.ToString();
}
return strRes;
}
catch (Exception ex)
{
LogHelper.WriteLog("", ex);
return "";
}
}
2、JT905协议中没有终端注册和鉴权过程。
3、10.3.5.29 订单任务下发
消息 ID:0x8B00。 订单任务下发命令消息体数据格式见表 48。
表 48 订单任务务下发命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
业务 ID |
UINT32 |
|
14+4 |
业务类型 |
UINT8 |
0:即时召车;1:预约召车;2:车辆指派 |
14+5 |
要车时间 |
BCD[6] |
YYMMDDhhmmss |
14+11 |
业务描述 |
STRING |
对乘客要车大概地点的描述 |
4、10.3.5.30 驾驶员抢答
消息 ID:0x0B01。 驾驶员抢答命令消息体数据格式见表 49。
表 49 驾驶员抢答命令命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
业务 ID |
UINT32 |
对应简明业务下发(0x8B00)消息中的业务 ID |
应答为中心通用应答。
5、10.3.5.31 下发抢答结果信息
消息 ID:0x8B01。 驾驶员抢答结果命令消息体数据格式见表 50。
表 50 驾驶员抢答结果命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
业务 ID |
UINT32 |
根据消息体长度若无后面字段表示未中标 |
14+4 |
业务类型 |
UINT8 |
0:即时召车;1:预约召车;2:车辆指派 |
14+5 |
用车时间 |
BCD[6] |
YYMMDDhhmmss 全零表示不启用 |
14+11 |
乘客位置经度 |
UINT32 |
0.0001’,填充为零表示不启用 |
14+15 |
乘客位置纬度 |
UINT32 |
0.0001’,填充为零表示不启用 |
14+19 |
目的地位置经度 |
UINT32 |
0.0001’,填充为零表示不启用 |
14+23 |
目的地位置纬度 |
UINT32 |
0.0001’,填充为零表示不启用 |
14+27 |
电召服务费 |
BCD[2] |
格式为 XXX. X 元,全 0 表示无服务费 |
14+29 |
乘客电话号码 |
STRING |
|
业务描述 |
STRING |
对乘客要车详细地点的描述 |
应答为 ISU 通用应答。
6、10.3.5.32 驾驶员电召任务完成确认
消息 ID:0x0B07。 电召任务完成确认命令消息体数据格式表 51。
表 51 抢答任务的完成命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
业务 ID |
UINT32 |
对应简明业务下发(0x8B00)消息中的业务 ID |
应答为中心通用应答。
当司机本次电召任务完成后,司机通过按键触发 ISU 发送该指令给中心通知订单完成。
7、10.3.5.33 驾驶员取消订单
消息 ID:0x0B08。
驾驶员操作 ISU 请求对抢答成功的订单任务取消,命令消息体数据格式见表 52。
表 52 ISU 请求抢答任务的取消命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
业务 ID |
UINT32 |
|
14+4 |
取消原因 |
UINT8 |
0:事故;1:路堵;2:其他 |
应答为中心通用应答。
当司机因某种原因不能去接送乘客时,司机通过按键触发 ISU 发送该指令通知中心。
8、10.3.5.34 中心取消订单
消息 ID:0x8B09。 中心取消订单命令消息体数据格式见表 53。
表 53 中心取消订单命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
业务 ID |
UINT32 |
应答为 ISU 通用应答。
当因乘客原因或司机请求取消订单时,中心发送该指令通知司机订单被取消(或取消请 求被处理)。ISU 语音提示司机。
9、10.3.5.35 上班签到信息上传
消息 ID:0x0B03。 上班签到信息上传命令消息体数据格式见表 54。
14+0 |
位置基本信息 |
详见 0x0200 交易 |
|
14+25 |
企业经营许可证号 |
BYTE [16] |
ASCII 字符,长度不足 16byte,右补 0x00 |
14+41 |
驾驶员从业资格证号 |
BYTE [19] |
ASCII 字符,长度不足 19byte,右补 0x00 |
14+60 |
车牌号 |
BYTE[6] |
车牌号,ASCII 字符,不包含汉字 |
14+66 |
开机时间 |
BYTE[6] |
YYYYMMDDHHNNMM |
14+72 |
扩展属性 |
BYTE[n] |
可根据实际管理需要进行扩展,当有扩展需求时, 则该项有内容,否则该项无内容 |
应答为中心通用应答。
10、10.3.5.36 下班签退信息上传
消息 ID:0x0B04。 下班签退信息上传命令消息体数据格式见表 55。
表 55 下班签退信息上传命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
位置基本信息 |
详见 0x0200 交易 |
|
14+25 |
企业经营许可证号 |
BYTE [16] |
ASCII 字符,长度不足 16byte,右补 0x00 |
14+41 |
驾驶员从业资格证号 |
BYTE [19] |
ASCII 字符,长度不足 19byte,右补 0x00 |
14+60 |
车牌号 |
BYTE[6] |
车牌号,ASCII 字符 |
14+66 |
计价器 K 值 |
BCD[2] |
格式为 XXXX,最大 9999 |
14+68 |
当班开机时间 |
BCD[6] |
YYYYMMDDHHMM |
14+74 |
当班关机时间 |
BCD[6] |
YYYYMMDDHHMM |
14+80 |
当班里程 |
BCD[3] |
格式为 XXXXX.X,单位为千米(km) |
14+83 |
当班营运里程 |
BCD[3] |
格式为 XXXXX.X,单位为千米(km) |
14+86 |
车次 |
BCD[2] |
格式为 XXXX,最大 9999 |
14+88 |
计时时间 |
BCD[3] |
格式为 hhmmss |
14+91 |
总计金额 |
BCD[3] |
格式为 XXXXX.X,单位为元 |
14+94 |
卡收金额 |
BCD[3] |
格式为 XXXXX.X,单位为元 |
14+97 |
卡次 |
BCD[2] |
格式为 XXXX,最大 9999 |
14+99 |
班间里程 |
BCD[2] |
格式为 XXX.X(上一班签退到本班签到的距离),单 位为千米(km) |
14+101 |
总计里程 |
BCD[4] |
格式为 XXXXXXX.Xkm(计价器安装后累积的里程), 单位为千米(km) |
14+105 |
总营运里程 |
BCD[4] |
格式为 XXXXXXX.Xkm(计价器安装后累积的里程) 单位为千米(km) |
14+109 |
单价 |
BCD[2] |
格式 XX.XX,单位为元 |
14+111 |
总营运次数 |
UINT32 |
高位在前,低位在后 |
14+115 |
签退方式 |
BYTE |
0x00:正常签退;0x01:强制签退 |
14+116 |
扩展属性 |
BYTE[n] |
可根据实际管理需要进行扩展,当有扩展需求时, 则该项有内容,否则该项无内容 |
应答为中心通用应答。
11、10.3.5.37 运营数据上传
消息 ID:0x0B05。 运营数据上传命令消息体数据格式见表 56。
表 56 运营数据上传命令消息体数据格式
|
起始字节 |
字段 |
数据类型 |
说明 |
14+58 |
评价选项 |
UINT8 |
0x00:没有做出评价;0x01:满意;0x02:一般; 0x03:不满意;0x04:投诉 |
14+59 |
评价选项扩展 |
UINT16 |
保留,默认 0x0000 |
14+61 |
电召订单 ID |
UINT32 |
0:正常营运数据;非 0 标识电召营运数据 |
14+65 |
计价器营运数据 |
内容严格按照“ISU 与计价器通讯协议”单次营运结 束后营运数据发送指令,计价器发往 ISU 的数据区 |
应答为中心通用应答。
12、10.3.5.38 外围设备指令下行透传
消息 ID:0x8B10。 外围设备指令下行透传命令消息体数据格式见表 57。
表 57 外围设备指令下行透传消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
TypeID |
UINT8 |
见表 5 |
14+1 |
DataType |
UINT16 |
见表 58 |
14+3 |
数据包 |
UINT8[] |
采用加密模式时,不超过 384byte;非加密模式时, 不超过 512byte; 数据内容为通讯协议体(命令字 2byte+数据区)的明 文或密文,ISU 负责协议的组包 |
应答应由透传接收方进行应答。
DataType 属性定义见表 58。
表 58 DataType 属性定义
位 |
状态 |
0-2 |
压缩算法描述:000:数据无压缩;001:gz 压缩;其他:RFU |
3 |
1:密文;0:明文 |
4-15 |
预留 |
13、10.3.5.39 外围设备指令上行透传
消息 ID:0x0B10。 外围设备指令下行透传命令消息体数据格式见表 59。
表 59 外围设备指令下行透传消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
TypeID |
UINT8 |
参见外围设备指令下行透传的消息体 |
14+1 |
厂商标识 |
UINT8 |
|
14+2 |
命令类型 |
UINT16 |
|
14+4 |
数据包 |
UINT8[] |
应答应由透传接收方进行应答。
14、10.3.5.43 中心确认报警
消息 ID:0x8B0A。 无消息体,ISU 回复通用应答。
15、10.3.5.44 中心解除报警
消息 ID:0x8B0B。 无消息体,ISU 回复通用应答。
16、10.3.5.45 中心巡检设备
消息 ID:0x8B11。 中心巡检设备命令消息体数据格式见表 63。
表 63 中心巡检设备命令消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
14+0 |
巡检设备类型代码 |
UINT8[n] |
n 为根据巡检设备的数量而定: n=0 时表示对所有设备进行巡检; n 不为 0 时,表示对指定的一个或多个设备进行巡检 |
17、10.3.5.46 设备巡检应答
消息 ID:0x0B11。
设备巡检应答消息体数据格式见表 64。
表 64 设备巡检应答消息体数据格式
起始字节 |
字段 |
数据类型 |
说明 |
0 |
应答数据 |
Bytes |
TLV 嵌套形式[……](支持同时对多种设备的巡检, 当对多设备同时进行巡检时数据格式为多组 TLV 数 据) |
注:T 为设备类型,参见表 5 设备类型代码定义;L 为对应设备巡检结果的长度,L 的数据类型为 UINT8; V 为对应设备巡检内容(查询设备状态指令中,设备返回的数据区)。 |
当 T=0x 00 时标识对 ISU 进行巡检,ISU 巡检返回的数据格式定义见表 65。其他类设备
如有对应状态查询指令,则返回状态查询结果;如没有建议至少返回设备编号(BCD[5])、硬 件版本号(BCD)、软件版本号(BCD[2])三类信息。
技术交流 省厓 QQ:2252224326 2252224326@qq.com 版权所有 http://blog.sina.com.cn/u/6029512413
JT∕T 905 -2014 出租汽车服务管理信息系统的相关协议研究的更多相关文章
- 第11章 Linux服务管理
1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中.当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快.但不利之处是系统中服务越多,消耗的资源越 ...
- timestamp与timedelta,管理信息系统概念与基础
1.将字符串‘2017年10月9日星期一9时10分0秒 UTC+8:00’转换为timestamp. 2.100天前是几号? 今年还有多少天? #timestamp与timedelta from ...
- Linux服务管理总结
简介与分类 系统的运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界 ...
- Linux操作系统-CentOS7启动流程和服务管理
Linux操作系统-CentOS7启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.systemd POST --> Boot Sequence --&g ...
- MIS(管理信息系统)
MIS 管理信息系统(Management Information System,简称MIS) 是一个以人为主导,利用计算机硬件.软件.网络通信设备以及其他办公设备,进行信息的收集.传输.加工.储存. ...
- CentOS 7 (RHEL 7)服务管理命令的变化
CentOS 7 (RHEL 7)带来了新的服务管理命令,为了保持兼容原有的命令仍可以使用,以下是新旧命令的对照. 启动.停止.重启.重载.检查服务:6: service httpd start|st ...
- PC管理端与评委云打分配合步骤及疑难问题汇编,即如何使用PC管理端的云服务管理功能
一.前期环境及数据准备 A.PC管理端主要流程 1.进入菜单 编辑/选项/服务器 界面,如下图所示,采用我官方所提供的云服务,不采用自己假设的AppWeb服务. 切记:AppWeb服务和云服务只能二选 ...
- Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )
以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu (with sysv-rc-conf or sysvconfig) 立即启动/停止某服务 ...
- Centos6.5 设置Tomcat8 service服务实现自启动和服务管理
Centos6.5 设置Tomcat8 service服务实现自启动和服务管理 将tomcat设置成像apache,nginx一样. 用serviec xxxx start/stop/restart ...
随机推荐
- javascript中的Set和Map数据结构
Set数据结构 类似数组,所有的数据都是唯一的,没有重复值,它本身是一个构造函数 size 数据长度 add() 添加一个数据 delete() 删除一个数据 has() 查找一个数据 clear() ...
- jmeter 正则获取参数集合和ForEach控制器结合使用(转)
怎么把第一个请求获取的返回的多个id,在第二个请求中逐个以单个id作为请求参数来请求? 为了解决这个问题,模拟下该场景 1.请求www.163.com 主页,获取响应中的所有数字,这个获取的数字集合暂 ...
- 我在B站学习 清华大学教授带你学习c++(进阶)构造函数
B站av11459203的一系列视频,跳过了基础篇直接进入进阶,从此难度开始加大.这里做出一些笔记分享一下. 我是1.25速度看的..对应分P 37-38 构造函数的作用 将对象初始化为一个特定的初始 ...
- GUI的最终选择 Tkinter(三):Checkbutton组件和Radiobutton组件、LabelFrame组件
Checkbutton组件 Checkbutton组件就是常见的多选按钮,而Radiobutton则是单选按钮 from tkinter import * root = Tk() v = IntVar ...
- 文件系统满的话(filesystem full),该如何处理。(du and ls)
#!/bin/bash function ergodic(){ ` do "/"$file ] then ergodic $"/"$file else loca ...
- hadoop操作权限问题:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
今天想从Eclipse向hdfs上传文件时遇到了一个权限问题,日志如下: ERROR hive.log: Got exception: org.apache.hadoop.security.Acces ...
- com.google.gson.stream.MalformedJsonException的解决办法
关于Gson解析的异常,如果你程序出现以下的异常,有两种可能性:‘ 1. 找到一个JSON格式的验证工具,这个网上很多大家可以百度下: 2.你的JSON格式验证没有问题,却一直报这个解析错误,请确定你 ...
- DataBinding初探 数据绑定的用法 ,import 集合类型,绑定的表达式,访问集合类型2
数据绑定的用法 import语法 <data> <import type="android.view.view"/> </data> 如 ...
- python随笔---录入月份的值,输出对应的季节
首先获取一个输入,加判断,输入对应的月份,季节判定根据气象划分法(气象划分法:在气象部门,通常以阳历3-5月为春季,6-8月为夏季,9-11月为秋季,12月-来年2月为冬季,并且常常把1.4.7.10 ...
- Js/Jquery获取input file的文件名
html代码: <input type="file" name="file" id="file" class="in ...