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 ...
随机推荐
- CoinEye PRIVACY POLICY
PRIVACY POLICY First, welcome to use the app Thank you for using our products and services ("Se ...
- 洛谷 P3128 [USACO15DEC]最大流Max Flow
题目描述 \(FJ\)给他的牛棚的\(N(2≤N≤50,000)\)个隔间之间安装了\(N-1\)根管道,隔间编号从\(1\)到\(N\).所有隔间都被管道连通了. \(FJ\)有\(K(1≤K≤10 ...
- 打造H5动感影集的爱恨情仇–动画性能篇
“你听说过动感影集么?” 动感影集是QQ空间新功能,可以将静态的图片轻松转变为动态的视频集,且载体是HTML5(简称H5)页面,意味着可以随时分享到空间或朋友圈给好友欣赏! 移动端区别于PC年代的相册 ...
- testlink迁移
前置配置:安装mysql-5.5.13-win32版数据库(速度快点),设置root密码为123465(mysql5.5数据库端口号不要与redmine的mysql冲突) 1.安装testlink(版 ...
- Gym 101047M Removing coins in Kem Kadrãn
给定一个序列,只能拿走D,隔壁的会翻转,问能否全部拿走. 注意到如果能拿走的话,拿D的顺序是没关系的.模拟即可 #include <cstdio> #include <cstdlib ...
- java编程如何实现多条2017-01-16 22:28:11.0这样的时间数据,转换成Date类型Mon Jan 16 22:28:11 CST 2017这样的时间数据
不多说,直接上干货! package zhouls.bigdata.DataFeatureSelection.sim; import java.text.ParseException; import ...
- 几种复杂度的斐波那契数列的Java实现
一:斐波那契数列问题的起源 13世纪初期,意大利数论家Leonardo Fibonacci在他的著作Liber Abaci中提出了兔子的繁殖问题: 如果一开始有一对刚出生的兔子,兔子的长大需要一个月, ...
- 【Java】Tomcat 5默认的管理员用户和密码
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat&quo ...
- 认识与入门 MarkDown (转Te_Lee)
Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简单.常用的标记符号也不 ...
- 从零开始的全栈工程师——js篇2.12(面向对象)
面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差. 所以作者就收到java和c的影响,往面向对象靠齐.Js天生有一个Object ...