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 ...
随机推荐
- CF10D/POJ2127 LCIS解题报告
题目传送门(洛谷)(CF)(POJ) 前言 期末考试前的最后一篇题解,希望期末考 rp++ 奇怪,为什么在CF上能过的代码到POJ上就 听取WA声一片 (不管了) 题目思路 LCIS模版O(n²) ...
- CPU死锁
https://blog.csdn.net/sunny05296/article/details/82858071 最近碰到了Centos7.2上终端打印soft lockup CPU死锁,系统无响应 ...
- QPS,TPS,吞吐量,响应时间详解及关系
并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力 吞吐量吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标 响应时间RT(Respo ...
- sql 查找重复数据,并且重复数据有子集
SELECT A.* FROM comm_department A INNER JOIN ( select path,count(*) as count from comm_department gr ...
- JMeter - REST API测试 - 完整的数据驱动方法(翻译)
https://github.com/vinsguru/jmeter-rest-data-drivern/tree/master 在本文中,我想向您展示一种用于REST API测试的数据驱动方法.如果 ...
- 8、kvm虚拟机添加硬盘
kvm虚拟机添加硬盘qemu-img创建一块新的硬盘 qemu-img create -f qcow2 /kvm-data/kvm/jumperhost_disk1.qcow2 50G 关闭虚拟机 v ...
- new 和 delete 用法
1. 这两个其实是 C++ 语言标准库的库函数,原型分别如下: void *operator new(size_t); //allocate an object void *operator dele ...
- PHP中文手册2
11.异常处理 用户可以用自定义的异常处理类来扩展 PHP 内置的异常处理类.以下的代码说明了在内置的异常处理类中,哪些属性和方法在子类中是可访问和可继承的.译者注:以下这段代码只为说明内置异常处理类 ...
- Maven的学习资料收集--(四)使用Maven构建Web项目-测试
2014-08-04 23:21 2人阅读 评论(0) 收藏 编辑 删除 目录(?)[+] [-] 在srcmainjava下新建一个Servlet 修改webxml 新建JSP 测试 在 ...
- python协程与异步协程
在前面几个博客中我们一一对应解决了消费者消费的速度跟不上生产者,浪费我们大量的时间去等待的问题,在这里,针对业务逻辑比较耗时间的问题,我们还有除了多进程之外更优的解决方式,那就是协程和异步协程.在引入 ...