@36node/protocol-32960 文档
支援
- 32960 国标协议 GB/T 32960.3-2016
- 上海巴士扩展协议 v1.4
概述
目前这个项目是一个 32960 的解析库,完全兼容《GB-T 32960 国标》,即《GB/T 32960.3 电动汽车远程服务与管理系统技术规范:通讯协议及数据格式》是用于新能源车辆远程服务平台间通讯的指导标准,可应用于车载通讯模块与远程服务平台间的通讯。
本项目目前支持 32960 的解析,校验以及日志输出。
基本数据包
首先我们来看一下整个 32960 包的二进制组成。
一个完整的数据包应由起始符、命令单元(命令标志、应答标志)、识别码、数据加密方式、数据单元长度、数据单元和校验码组成,数据包结构和定义如下表所示。
起始字节 |
定义 |
数据类型 |
描述及要求 |
备注 |
0 |
起始符 |
STRING |
固定为 ASCII 字符‘##’,用“0x23 |
0x23”表示。 |
2 |
命令单元(命令标识) |
BYTE |
命令表示定义见 3.1 |
|
3 |
命令单元(应答标志) |
BYTE |
应答标志定义见 3.2 |
|
4 |
唯一标识码 |
STRING |
当传输车辆数据时,应使用车辆 VIN,其字码应符合 GB16735 的规定,如传输其他数据,则使用唯一自定义编码 |
|
21 |
数据单元加密方式 |
BYTE |
0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异 常,“0xFF”表示无效,其他预留。 |
|
22 |
数据单位长度 |
WORD |
数据单元长度是数据单元的总字节数,有效值范围:0 ~ 65531。 |
|
24 |
数据单元 |
- |
数据单元格式和定义所在文件见下表 |
|
倒数第一位 |
校验码 |
BYTE |
采用 BCC(异或校验)法,校验范围从命令单元的第一个字节开始,同后一字结异或,直到校验码前一字节 为止,校验码占用一个字节,当数据单元存在加密时,应先加密后校验,先校验后解密 |
|
二进制数据类型说明
在 32960 协议中所有出现的二进制数据格式的描述如下:
数据类型 |
描述及要求 |
BYTE |
无符号单字节整型(字节,8 位) |
WORD |
无符号单字节整型(字节,16 位) |
DWORD |
无符号单字节整型(字节,32 位) |
BYTE[n] |
n 字节 |
STRING |
ASCII 字符码,若无数据则放一个 0 终结符,编码表示参见 GB/T 1988 所述含汉字时,采用区位码编码,占用 2 个字节,编码表示参见 GB 18030 所述。 |
原始数据包结构图例
对二进制格式按照基本数据包格式进行数据划分:

命令标志
编码 |
定义 |
方向 |
Ox01 |
车辆登入 |
上行 |
Ox02 |
实时信息上报 |
上行 |
Ox03 |
补发信息上报 |
上行 |
Ox04 |
车辆登出 |
上行 |
Ox05 |
平台登入 |
上行 |
Ox06 |
平台登出 |
上行 |
Ox07 |
心跳 |
上行 |
Ox08 |
终端校时 |
上行 |
Ox09 ~ Ox7F |
上行数据系统预留 |
上行 |
Ox80 |
查询命令 |
上行 |
Ox81 |
设置命令 |
上行 |
Ox82 |
车载终端控制命令 |
下行 |
Ox83 ~ OxBF |
下行数据系统预留 |
下行 |
OxCO ~ OxFE |
平台交换自定义数据 |
自定义 |
应答标志
编码 |
定义 |
说明 |
Ox01 |
成功 |
接收到信息正确 |
Ox02 |
错误 |
设置未成功 |
Ox03 |
VIN 重复 |
VIN 重复错误 |
OxFE |
命令 |
表示数据包为命令包,而非应答包 |
时间定义
数据表示内容 |
长度(字节) |
数据类型 |
有效值范围 |
年 |
1 |
BYTE |
0 ~ 99 |
月 |
1 |
BYTE |
0 ~ 12 |
日 |
1 |
BYTE |
0 ~ 31 |
小时 |
1 |
BYTE |
0 ~ 24 |
分钟 |
1 |
BYTE |
0 ~ 59 |
秒 |
1 |
BYTE |
0 ~ 59 |
数据单元
数据单元是二进制数据中的主要承载实际上传数据的部分,由于格式比较复杂,根据不同的命令标志
进行解析。每一个解析部分,都分为四部分:
- 二进制样例
- 二进制格式说明
- 解析结果样例
- 解析结果说明
其中解析结果整体格式是一致的:
{
command: string, // 命令标志 详见每一节
flag: "COMMAND", // 应答标志
vin: "LZYTBGBW6J1014194", // 车辆vin码
encrypt: "NONE", // 是否加密
length: 30,
body: {
at: "2018-10-30T12:35:54.000Z", // 数据采集时间
sn: 253,
iccid: "89860402101700179779",
subSysNm: 1,
subSysNmLen: 0,
subSysSn: [],
},
}
// 命令标志
{
VEHICLE_LOGIN: "VEHICLE_LOGIN", // 车辆登入 0x01
REALTIME_REPORT: "REALTIME_REPORT", // 实时信息上报 0x02
REISSUE_REPORT: "REISSUE_REPORT", // 补发信息上报 0x03
VEHICLE_LOGOUT: "VEHICLE_LOGOUT", // 车辆登出 0x04
PLATFORM_LOGIN: "PLATFORM_LOGIN", // 平台登入0x05
PLATFORM_LOGOUT: "PLATFORM_LOGOUT", // 平台登出0x06
HEARTBEAT: "HEARTBEAT", // 心跳 0x07
TIME: "TIME", // 车辆校时 0x08
};
// 应答标志
{
SUCCESS: "SUCCESS", // 成功
FAIL: "FAIL", // 错误
VIN_DUP: "VIN_DUP", // vin 重复
COMMAND: "COMMAND", // 命令
};
// 加密标志
{
NONE: "NONE", // 未加密
RSA: "RSA",
AES128: "AES128",
};
车辆登录
车辆登录二进制样例
232301fe4c5a595442474257364a3130313431393401001e120a1e14233600fd383938363034303231303137303031373937373901005c
车辆登录二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
数据采集时间 |
6 |
BYET[6] |
见时间定义表 |
登入流水号 |
2 |
WORD |
车载终端每登入一次登入流水号自动加 1,从 1 开始循环累加,最大值 65531,循环周期为天 |
ICCID |
20 |
STRING |
SIM 卡 ICCID 号(ICCID 应为终端从 SIM 卡获取的值,不应该人为填写或修改) |
可充电储能子系统数 |
1 |
BYTE |
可充电储能子系统数 n,有效值范围:0~250 |
可充电储能系统编码长度 |
1 |
BYTE |
可充电储能系统编码长度 m,有效值范围:0~50,“0”表示不上传该编码 |
可充电储能系统编码 |
n*m |
STRING |
可充电储能系统编码宜为终端从车辆获取的值 |
车辆登录解析结果样例
{
command: "VEHICLE_LOGIN",
flag: "COMMAND",
vin: "LZYTBGBW6J1014194", // 车辆vin码
encrypt: "NONE",
length: 30,
body: {
at: "2018-10-30T12:35:54.000Z", // 数据上报时间
sn: 253,
iccid: "89860402101700179779",
subSysNm: 1,
subSysNmLen: 0,
subSysSn: [],
},
}
车辆登录解析结果说明
request body 格式说明:
字段 |
数据内容 |
类型 |
数据说明 |
at |
数据采集时间 |
date |
iso 格式 |
sn |
登入流水号 |
integer |
车载终端每登入一次登入流水号自动加 1,从 1 开始循环累加,最大值 65531,循环周期为天 |
iccid |
ICCID |
string |
SIM 卡 ICCID 号(ICCID 应为终端从 SIM 卡获取的值,不应该人为填写或修改) |
subSysNm |
可充电储能子系统数 |
integer |
可充电储能子系统数 n,有效值范围:0~250 |
subSysNmLen |
可充电储能系统编码长度 |
integer |
可充电储能系统编码长度 m,有效值范围:0~50,“0”表示不上传该编码 |
subSysSn |
可充电储能系统编码 |
[string] |
可充电储能系统编码宜为终端从车辆获取的值 |
实时上报和补发信息
车辆实际数据信息都是通过实时上报和补发信息两个途径上传。
二进制样例
232302fe4c5a59544147425732453130353434393101007f120a1e142400010103010000001b390b164925da39023e41b6000102010104284e204e2028000027100500073d270801dcda6a06013f0cbf015b0cb2010246014e400700000000000000000080003000000003e803e8ffffffffffffffffffffffffffff1649feca00000000000000000000ffff00000000ff280028282802c7
二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
数据采集时间 |
6 |
BYTE[6] |
时间定义表 |
信息类型标志(1) |
1 |
BYTE |
信息类型标志类型 |
信息体(1) |
- |
BYTE |
根据信息类型不同,长度和数据类型不同 |
...... |
- |
- |
...... |
信息类型标志(n) |
1 |
BYTE |
|
信息体(n) |
- |
- |
|
解析结果样例
{
command: "REALTIME_REPORT",
flag: "COMMAND",
vin: "LZYTAGBW2E1054491",
encrypt: "NONE",
length: 127,
body: {
at: "2018-10-30T12:36:00.000Z",
vehicle: {
type: "VEHICLE",
status: "ON",
chargeStatus: "UNCHARGED",
mode: "ELECTRIC",
speed: 0,
mileage: 178407.5,
voltage: 570.5,
current: -31,
soc: 0.57,
dcStatus: "OFF",
shift: "D",
resistance: 16822,
aptv: 0,
brake: 0.01,
},
motor: {
type: "MOTOR",
count: 1,
motors: [
{
no: 1,
status: "READY",
controlTemp: 0,
speed: 0,
torque: 0,
temp: 0,
voltage: 0,
current: 0,
},
],
},
location: { type: "LOCATION", state: 0, lng: 121.4482, lat: 31.25105 },
extreme: {
type: "EXTREME",
maxVoltageSubSysNo: 1,
maxVoltageSingNo: 63,
maxVoltage: 3.263,
minVoltageSubSysNo: 1,
minVoltageSingNo: 91,
minVoltage: 3.25,
maxNtcSubSysNo: 1,
maxNtcNo: 2,
maxNtc: 30,
minNtcSubSysNo: 1,
minNtcNo: 78,
minNtc: 24,
},
alarm: {
type: "ALARM",
maxLevel: 0,
uas: {
ressChargeOver: 0,
motorTemp: 0,
highVolMuteStatus: 0,
motorControlTemp: 0,
dcdcStatus: 0,
brake: 0,
dcdcTemp: 0,
insulation: 0,
batteryBadConsistency: 0,
ressNotMatch: 0,
socJump: 0,
socOver: 0,
batteryLow: 0,
batteryOver: 0,
socLow: 0,
ressVolLow: 0,
ressVolOver: 0,
batteryTempOver: 0,
tempDiff: 0,
},
ressLen: 0,
ressList: [],
mortorLen: 0,
mortorList: [],
engineLen: 0,
engineList: [],
otherLen: 0,
otherList: [],
},
customExt: {
type: "CUSTOM_EXT",
dataLen: 48,
pressure1: 0,
pressure2: 0,
batteryVoltage: 0,
dcov: -900,
dcoc: -900,
cv: 570.5,
rc: 5522.6,
cp: 0,
totalCharge: 0,
totalDischarge: 0,
bpiRes: 0,
bniRes: 0,
motorContTemp: 0,
airMode: "OFF",
airTemp: 0,
insideTemp: 0,
outsideTemp: 0,
middleDoorStatus: "CLOSE",
frontDoorStatus: "CLOSE",
handbrakeStatus: "OFF",
keyPosition: "ON",
},
],
},
}
解析结果说明
具体解析结果查看信息体部分
车辆登出
车辆登出二进制样例
232304fe4c53464430333230344a43303031353935010008120a1e1424110014e9
车辆登出二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
登出时间 |
6 |
BYTE[6] |
时间定义表 |
登出流水号 |
2 |
WORD |
登出流水号和当前登入流水号一致 |
车辆登出解析结果样例
{
command: "VEHICLE_LOGOUT",
flag: "COMMAND",
vin: "LSFD03204JC001595",
encrypt: "NONE",
length: 8,
body: { at: "2018-10-30T12:36:17.000Z", sn: 20 },
}
车辆登出解析结果说明
字段 |
数据内容 |
类型 |
数据说明 |
at |
登出时间 |
date |
ios 格式 |
sn |
登出流水号 |
integer |
登出流水号和当前登入流水号一致 |
平台登入
平台登入二进制样例
120A07150D2900027975746F6E67000000000000313231000000000000000000000000000000000001
平台登入二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
平台登入时间 |
6 |
BYTE[6] |
时间定义表 |
登入流水号 |
2 |
WORD |
下级平台每登入一次,登入流水号自动加 1,从 1 开始循环累加,最大值为 65531,循环周期为一天 |
平台用户名 |
12 |
STRING |
平台登入用户名 |
平台 密码 |
20 |
STRING |
平台登入密码 |
加密规则 |
1 |
BYTE |
0x01:数据不加密;0x02:数据经过 RSA 加密;0x03:数据经过 AES128 加密;0xFE 表示异常,0xFF 表示无效其他预留 |
平台登入解析结果样例
{
command: "PLATFORM_LOGIN",
flag: "COMMAND",
vin: "LSFD03204JC001595",
encrypt: "NONE",
length: 8,
body: {
at: "2018-10-07T13:13:41.000Z",
sn: 2,
username: "yutong",
password: "ssssss",
encrypt: "NONE",
},
}
平台登入解析结果说明
字段 |
数据内容 |
类型 |
数据说明 |
at |
登出时间 |
date |
ios 格式 |
sn |
登出流水号 |
integer |
登出流水号和当前登入流水号一致 |
username |
平台方 |
string |
密码输出隐藏 |
平台登出
平台登出二进制样例
232306FE4C5A595441474257394A313030343136340100081206161015150046E8
平台登出二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
登出时间 |
6 |
BYTE[6] |
时间定义表 |
登出流水号 |
2 |
WORD |
登出流水号和当前登入流水号一致 |
平台登出解析结果样例
{
body: { at: "2018-06-22T08:21:21.000Z", sn: 70 },
command: "PLATFORM_LOGOUT",
encrypt: "NONE",
flag: "COMMAND",
length: 8,
vin: "LZYTAGBW9J1004164",
}
平台登出解析结果说明
字段 |
数据内容 |
类型 |
说明 |
at |
登出时间 |
date |
ISO string |
sn |
登出流水号 |
integer |
登出流水号和当前登入流水号一致 |
心跳
心跳二进制样例
232307FE4838323230363530303030303030303030010000BB
心跳就是一个没有数据 body 的包。
心跳解析结果样例
{
command: "HEARTBEAT",
flag: "COMMAND",
vin: "LZYTBGCW5J1035715", // 车辆vin 码
encrypt: "NONE",
length: 0,
}
信息体
实时信息上报和补发信息上报中的数据主要在信息体中。信息体又分为很多种类。
// 信息体
{
vehicle: “VEHICLE”, // 整车数据
motor: “MOTOR”, // 电机数据
fuelcell: “FUELCELL”, // 燃料电池数据
engine: “ENGINE”, // 发动机数据
location: “LOCATION”, // 位置数据
extreme: “EXTREME”, // 极值数据
alarm: “ALARM”, // 报警数据
ressVoltage: “RESS_VOLTAGE”, // 可充电储能装置电压数据
ressTemperature: “RESS_TEMPERATURE”, // 可充电储能装置温度数据
customExt: “CUSTOM_EXT”, // 上海巴士自定义扩展数据
tenSeconds: “TEN_SECONDS”, // 十秒上传数据
adas: “ADAS”, // ADAS 数据
};
信息体的数据位于 request.body
中,信息体部分的数据样例只展示信息体本身部分。省略 request.body 的其它部分。
一个 32960 包里不管是实时信息上报还是补发信息上报,都有可能包含 1 个或者多个信息体。
32960 协议并没有对哪些数据走补发有所规定,但是本解析其中的 ADAS
和 TEN_SECONDS
一定会走补发。它们是上海巴士v1.4协议中规定的累积10s数据。
特殊格式说明:
NAN
代表这个数值异常
- 如果某个值不存在代表 这个值无效或者终端未上传
- 每个 string enum 类型,都有个"ABNORMAL"的值,代表数据异常
整车数据
0x01 VEHICLE
整车数据二进制样例
# 只包含整车数据部分
0103010032000013881b58000032013e01d21465
整车数据二进制格式说明
数据表示内容 |
长度/字节 |
类型 |
描述及要求 |
车辆状态 |
1 |
BYTE |
0X01:车辆启动宅;0x02:熄火,0x03:其他状态;0xFE:表示异常,0xFF:表示无效;取仪表外发的此数据,充电时仪表也要外发此数据 |
充电状态 |
1 |
BYTE |
0X01:停车充电,0x02:行驶充电,0x03:未充电状态;0x04:充电完成;0xFE:表示异常,0xFF:表示无效; |
运行模式 |
1 |
BYTE |
0X01:纯电;0x02:混动,0x03:燃油;0xFE:表示异常,0xFF:表示无效; |
车速 |
2 |
WORD |
有效值范围:0 ~ 2200(表示 0km/h ~ 220km/h),最小计量单位: 0.1km/h,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
累计里程 |
4 |
DWORD |
有效值范围: 0 ~ 9999999(表示 0km ~ 999999.9km),最小计量单位 0.1km,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效;取仪表外发的此数据,充电时仪表也要外发此数据 |
总电压 |
2 |
WORD |
有效值范围:0 ~ 10000(表示 0V ~ 1000V),最小计量单位: 0.1V,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
总电流 |
2 |
WORD |
有效值范围:0 ~ 20000(偏移量 1000A,表示-1000A ~ +1000A),最小计量单位: 0.1A,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
SOC |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0% ~ 100%),最小计量单位: 1%,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
DC-DC 状态 |
1 |
BYTE |
0X01:工作,0x02:断开;0xFE:表示异常,0xFF:表示无效; |
档位 |
1 |
BYTE |
档位定义 |
绝缘电阻 |
2 |
WORD |
有效值范围:0 ~ 60000(表示 0kΩ ~ 100kΩ),最小计量单位: 1kΩ |
加速踏板行程值 |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0%~ 100%),最小计量单元:1%,“0xFE”表示异常,“0xFF”表示无效。 |
制动踏板状态 |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0%~ 100%),最小计量单元: 1%,“0”表示制动关的状态。 在无具体行程值情况下 “0x65”即“101”表示制动有效状态,“0xFE”表示异常, “0xFF”表示无效。 |
档位状态为定义
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 Bit2 Bit1 Bit0 |
预留,预留为用 0 表示 |
预留,预留为用 0 表示 |
1:有驱动力,0:无驱动力 |
1:有制动力;0:无制动力 |
档位: 0000: 空挡;0001:1 挡;0010:2 挡;0011: 3 挡;0100:4 挡;0101:5 挡;0110:6 挡;1101:......倒挡;1110: 自动 D 挡;1111:停车倒挡 |
整车解析结果样例
{
type: "VEHICLE",
status: "ON",
chargeStatus: "UNCHARGED",
mode: "ELECTRIC",
speed: 0,
mileage: 178407.5,
voltage: 570.5,
current: -31,
soc: 0.57,
dcStatus: "OFF",
shift: "D",
resistance: 16822,
aptv: 0,
brake: 0.01,
}
整车解析结果说明
字段 |
数据内容 |
类型 |
说明 |
status |
车辆状态 |
string enum |
“ON”: 启动, “OFF”: 熄火, “OTHER”: 其他 |
chargeStatus |
充电状态 |
string enum |
“PARK_CHARGING”: 停车充电, “MOVE_CHARGING”: 行驶充电, “UNCHARGED”: 未充电状态, “COMPETE”: 充电完成 |
mode |
运行模式 |
string enum |
“ELECTRIC”: 电动, “MIXED”: 混动, “FUEL”: 燃油 |
speed |
车速 |
float |
0 ~ 220 0.1km/h |
mileage |
累计里程 |
float |
0 ~ 999999.9 0.1km |
voltage |
总电压 |
float |
0 ~ 1000 0.1V |
current |
总电流 |
float |
-1000 ~ 1000 0.1A |
soc |
SOC |
float |
0 ~ 1 0.01 |
dcStatus |
DC-OC 状态 |
string enum |
“ON”:工作, “OFF”: 断开 |
shift |
档位 |
enum |
见下面车辆档位注释 |
resistance |
绝缘电阻 |
integer |
0 ~ 60000 1kΩ |
aptv |
加速踏板行程值 |
float |
0 ~ 1 0.01 |
brake |
制动踏板状态 |
float |
0 ~ 1 0.01 |
// 车辆档位
[
"N", // 空挡
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"R", // 倒挡
"D", // 自动
"P", // 驻车
];
驱动电机数据
驱动电机二进制样例
# 仅包含驱动电机二进制数据
0202014B639C3A346D187C271001014B639C3A346D187C2710
驱动电机二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
驱动电机个数 |
1 |
BYTE |
有效值 1 ~ 253 |
驱动电机总成信息列表 |
每个驱动电机总成信息长度之和 |
- |
按驱动电机序号依次排列,每个驱动电机数据格式和定义见下表 |
每个驱动电机数据格式和定义
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
驱动电机序号 |
1 |
BYTE |
驱动电机顺序号,有效值 1 ~ 253 |
驱动电机状态 |
每个驱动电机总成信息长度之和 |
BYTE |
0X01:耗电,0x02:发电,0x03:关闭状态;0x04:准备状态;0xFE:表示异常,0xFF:表示无效; |
驱动电机控制器温度 |
1 |
BYTE |
有效值范围 0 ~ 250(数据偏移量 40℃,表示-40 ℃ ~ +210℃),最小计量单位:1℃,0xFE:表示异常,0xFF:表示无效; |
驱动电机转速 |
2 |
WORD |
有效值范围:0 ~ 65531(偏移量 2000,表示-20000r/min ~ 45531 r/min),最小计量单位: 1r/min,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
驱动电机转矩 |
2 |
WORD |
有效值范围:0 ~ 65531(偏移量 2000,表示-2000N/m ~ 4553.1 N/m),最小计量单位: 0.1N/m,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
驱动电机温度 |
1 |
BYTE |
有效值范围 0 ~ 250(数据偏移量 40℃,表示-40 ℃ ~ +210℃),最小计量单位:1℃,0xFE:表示异常,0xFF:表示无效; |
电机控制器输入电压 |
2 |
WORD |
有效值范围 0 ~ 600000(表示 0V ~ 6000V),最小计量单位 0.1V,0xFE:表示异常,0xFF:表示无效; |
电机控制器直流母线电流 |
2 |
WORD |
有效值范围 0 ~ 200000(数值偏移量 1000A,表示-1000A ~ 1000A),最小计量单位 0.1A,0xFF,0xFE:表示异常,0xFF,0xFF:表示无效; |
驱动电机解析结果样例
{
type: "MOTOR",
count: 1,
motors: [
{
no: 1,
status: "READY",
controlTemp: 0,
speed: 0,
torque: 0,
temp: 0,
voltage: 0,
current: 0,
},
],
}
驱动电机解析结果说明
字段 |
数据内容 |
类型 |
说明 |
count |
驱动电机个数 |
interger |
1 ~ 253 |
motors |
驱动电机总成信息列表 |
array |
每个驱动电机信息数据 |
每个驱动电机数据
字段 |
数据内容 |
类型 |
说明 |
no |
驱动电机序号 |
integer |
1 ~ 253 |
status |
驱动电机状态 |
string enum |
“CONSUMPTION”//耗电,“GENERATION”//发电,“OFF”//关闭状态,“READY”//准备” |
controlTemp |
驱动电机控制器温度 |
integer |
-40 ~ 210 1℃ |
speed |
驱动电机转速 |
integer |
-20000 ~ 45531 1r/min |
torque |
驱动电机转矩 |
float |
-2000N/m ~ 4553.1 0.1N/m |
temp |
驱动电机温度 |
integer |
-40 ~ +210 1℃ |
voltage |
电机控制器输入电压 |
float |
0 ~ 6000 0.1V |
current |
电机控制器直线母线电流 |
float |
-1000 ~ 1000 0.1A |
燃料电池数据 (没有收到过相关数据)
0x03 FUELCELL
燃料电池二进制样例
燃料电池二进制格式说明
数据内容 |
字节 |
数据类型 |
有效值范围 |
分辨率 |
偏移量 |
异常 |
无效 |
其他 |
燃料电池电压 |
2 |
WORD |
0 ~ 20000 |
0.1V |
|
OxFFFE |
OxFFFF |
|
燃料电池电流 |
2 |
WORD |
0 ~ 20000 |
0.1A |
|
OxFFFE |
OxFFFF |
|
燃料消耗率 |
2 |
WORD |
0 ~ 60000 |
0.01 |
|
OxFFFE |
OxFFFF |
|
燃料电池温度探针总数 |
2 |
WORD |
0 ~ 65531 |
|
|
OxFFFE |
OxFFFF |
|
探针温度值 |
1*N |
BYTE[N] |
0 ~ 240 |
|
40 |
OxFE |
OxFF |
|
氢系统中最高温度 |
2 |
WORD |
0 ~ 2400 |
0.1℃ |
40 |
OxFFFE |
OxFFFF |
|
氢气最高温度传感器代号 |
1 |
BYTE |
1 ~ 252 |
|
|
OxFE |
OxFF |
|
氢气最高浓度 |
2 |
WORD |
0 ~ 60000 |
1mg/kg |
|
OxFFFE |
OxFFFF |
|
氢气最高浓度传感器代号 |
1 |
BYTE |
1 ~ 252 |
|
|
OxFE |
OxFF |
|
氢气最高压力 |
2 |
WORD |
0 ~ 1000 |
0.1MPa |
|
OxFFFE |
OxFFFF |
|
氢气最高压力传感器代号 |
1 |
BYTE |
1 ~ 252 |
|
|
OxFE |
OxFF |
|
高压 DC/DC 状态 |
1 |
BYTE |
|
|
|
OxFE |
OxFF |
01:工作;02:断开 |
燃料电池解析结果样例
燃料电池解析结果说明
字段 |
数据内容 |
类型 |
说明 |
voltage |
燃料电池电压 |
float |
0 ~ 2000 0.1V |
current |
燃料电池电流 |
float |
0 ~ 2000 0.1A |
conRate |
燃料消耗率 |
float |
0 ~ 600 0.01kg/100km |
probeCount |
燃料电池温度探针总数 |
integer |
0 ~ 65531 |
ntcs |
探针温度值 |
array< integer > |
-40 ~ 200 1℃ |
maxNtc |
氢系统中最高温度 |
float |
-40 ~ 200 0.1℃ |
maxNtcNo |
氢气最高温度传感器代号 |
integer |
1 ~ 252 |
hcOfh |
氢气最高浓度 |
integer |
0 ~ 50000 1mg/kg |
hcOfhNo |
氢气最高浓度传感器代号 |
integer |
1 ~ 252 |
maxVoltageOfh |
氢气最高压力 |
float |
0 ~ 100 0.1MPa |
maxVoltageOfhNo |
氢气最高压力传感器代号 |
integer |
1 ~ 252 |
dc |
高压 DC/DC 状态 |
string enum |
ON:工作;OFF:断开 |
发动机数据 (没有收到过相关数据,未经测试)
0x04 ENGINE
发动机数据二进制样例
发动机数据二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
有效值范围 |
分辨率 |
偏移量 |
异常 |
无效 |
其他 |
发动机状态 |
1 |
BYTE |
|
|
|
OxFE |
OxFF |
Ox01:启动状态;Ox02:关闭状态 |
曲轴转速 |
2 |
WORD |
0 ~ 60000 |
1r/min |
|
OxFFFE |
OxFFFF |
|
燃料消耗率 |
2 |
WORD |
0 ~ 60000 |
0.01L/100km |
|
OxFFFE |
OxFFFF |
|
发动机数据解析结果样例
发动机数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
state |
发动机状态 |
string enum |
ON:启动状态;OFF:关闭状态 |
csSpeed |
曲轴转速 |
integer |
0 ~ 60000 1r/min |
fcRate |
燃料消耗率 |
float |
0 ~ 600 0.01L/100km |
位置数据
位置数据二进制样例
# 仅包含位置数据部分
00072733A101CF049C
位置数据二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
定位状态 |
1 |
BYTE |
状态位定义见表 15 |
经度 |
4 |
DWORD |
以度为单位的纬度值乘以 10 的六次方,精度精确到百万分之一度 |
纬度 |
4 |
DWORD |
以度为单位的经度值乘以 10 的六次方,精度精确到百万分之一度 |
状态为定义
位 |
状态 |
0 |
0:有效定位;1: 无效定位(当数据通信正常,为不能获取定位信息时,发送最后一次有效定位信息,并将定位状态置为无效) |
1 |
0:北纬,1:南纬 |
2 |
0:东经,1:西经 |
3 ~ 7 |
保留 |
位置数据解析结果样例
{
type: "LOCATION",
state: 0,
lng: 121.4482,
lat: 31.25105
}
位置数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
state |
定义状态 |
integer |
见状态位定位 |
lng |
经度 |
float |
0.000001 |
lat |
纬度 |
float |
0.000001 |
极值数据
0x06 EXTREME
极值数据二进制样例
# 仅包含机制部分数据
0111064001020500010150010540
极值数据二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
有效值范围 |
分辨率 |
偏移量 |
说明 |
最高电压电池子系统号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
最高电压电池单体代号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
电池单体电压最高值 |
2 |
WORD |
1 ~ 15000 |
0.001V |
|
0xFE 表示异常;0xFF 表示无效 |
最低电压电池子系代号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
最低电压电池单体代号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
电池单体最低电压值 |
2 |
WORD |
1 ~ 15000 |
0.001V |
|
0xFE 表示异常;0xFF 表示无效 |
最高温度子系统号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
最高温度探针序号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
最高温度值 |
1 |
BYTE |
1 ~ 250 |
1℃ |
40℃ |
0xFE 表示异常;0xFF 表示无效 |
最低温度子系统号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
最低温度探针序号 |
1 |
BYTE |
1 ~ 250 |
|
|
0xFE 表示异常;0xFF 表示无效 |
最低温度值 |
1 |
BYTE |
1 ~ 250 |
1℃ |
40℃ |
0xFE 表示异常;0xFF 表示无效 |
极值数据解析结果样例
{
type: "EXTREME",
maxVoltageSubSysNo: 1,
maxVoltageSingNo: 63,
maxVoltage: 3.263,
minVoltageSubSysNo: 1,
minVoltageSingNo: 91,
minVoltage: 3.25,
maxNtcSubSysNo: 1,
maxNtcNo: 2,
maxNtc: 30,
minNtcSubSysNo: 1,
minNtcNo: 78,
minNtc: 24,
}
极值数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
maxVoltageSubSysNo |
最高电压电池子系统号 |
integer |
1~250 |
maxVoltageSingNo |
最高电压电池单体代号 |
integer |
1 ~ 250 |
maxVoltage |
电池单体电压最高值 |
float |
0 ~ 15 0.001V |
minVoltageSubSysNo |
最低电压电池子系代号 |
integer |
1 ~ 250 |
minVoltageSingNo |
最低电压电池单体代号 |
integer |
1 ~ 250 |
minVoltage |
电池单体最低电压值 |
float |
0 ~ 15 0.001V |
maxNtcSubSysNo |
最高温度子系统号 |
integer |
1 ~ 250 |
maxNtcNo |
最高温度探针序号 |
integer |
1 ~ 250 |
maxNtc |
最高温度值 |
integer |
-40 ~ 200 1℃ |
minNtcSubSysNo |
最低温度子系统号 |
integer |
1 ~ 250 |
minNtcNo |
最低温度探针序号 |
integer |
1 ~ 250 |
minNtc |
最低温度值 |
integer |
-40 ~ 200 1℃ |
报警数据
0x07 ALARM
报警数据二进制样例
# 仅包含报警部分数据
0000000000000000000801011B58
报警数据二进制格式说明
数据表示内容 |
类型 |
长度/字节 |
说明 |
最高报警等级 |
BYTE |
1 |
为当前发生的故障中最高等级,有效值范围: 0 ~ 3 ,0:表示无故障,1:表示一级故障;2 表示 2 级故障,3 表示 3 级故障,3 级故障为最高级别故障,指代驾驶员应立即停车处理或请求救援的故障,具体等级对应的故障内容由厂商自行定义,0xFE 表示异常;0xFF 表示无效 |
通用报警标志 |
DWORD |
4 |
见下表通用报警标志位定义 |
可充电储能装置故障总数 N1 |
BYTE |
1 |
N1 个可充电储能装置故障,有效值范围:0 ~ 252,0xFE 表示异常;0xFF 表示无效 |
可充电储能装置故障代码列表 |
DWORD |
4*N |
扩展性数据,由厂商自行定义,可充电智能装置故障个数等于可充电储能装置故障总数 N1 |
驱动电机故障总数 N2 |
BYTE |
1 |
N2 个可充电储能装置故障,有效值范围:0 ~ 252,0xFE 表示异常;0xFF 表示无效 |
驱动电机故障代码列表 |
DWORD |
4*N2 |
扩展性数据,由厂商自行定义,可充电智能装置故障个数等于可充电储能装置故障总数 N12 |
发动机故障总数 N3 |
BYTE |
1 |
N3 个可充电储能装置故障,有效值范围:0 ~ 252,0xFE 表示异常;0xFF 表示无效 |
发动机故障列表 |
DWORD |
4*N3 |
扩展性数据,由厂商自行定义,可充电智能装置故障个数等于可充电储能装置故障总数 N3 |
其他故障总数 N4 |
BYTE |
1 |
N4 个可充电储能装置故障,有效值范围:0 ~ 252,0xFE 表示异常;0xFF 表示无效 |
其他故障代码列表 |
DWORD |
4*N4 |
扩展性数据,由厂商自行定义,可充电智能装置故障个数等于可充电储能装置故障总数 N4 |
通用报警标志位定义
位 |
定义 |
处理说明 |
0 |
1:温度差异报警;0:正常 |
标志维持到报警条件解除 |
1 |
1:电池高温报警;0:正常 |
标志维持到报警条件解除 |
2 |
1:车载储能装置类型过压报警;0:正常 |
标志维持到报警条件解除 |
3 |
1:车载储能装置类型欠压报警;0:正常 |
标志维持到报警条件解除 |
4 |
1:SOC 低报警;0:正常 |
标志维持到报警条件解除 |
5 |
1:单体电池过压报警;0:正常 |
标志维持到报警条件解除 |
6 |
1:单体电池欠压报警;0:正常 |
标志维持到报警条件解除 |
7 |
1:SOC 过高报警;0:正常 |
标志维持到报警条件解除 |
8 |
1:SOC 跳变报警;0:正常 |
标志维持到报警条件解除 |
9 |
1:可充电储能系统不匹配报警;0:正常 |
标志维持到报警条件解除 |
10 |
1:电池单体一致性差报警;0:正常 |
标志维持到报警条件解除 |
11 |
1:绝缘报警;0:正常 |
标志维持到报警条件解除 |
12 |
1:DC-DC 温度报警;0:正常 |
标志维持到报警条件解除 |
13 |
1:制动系统报警;0:正常 |
标志维持到报警条件解除 |
14 |
1:DC-DC 状态报警;0:正常 |
标志维持到报警条件解除 |
15 |
1:驱动电机控制器温度报警;0:正常 |
标志维持到报警条件解除 |
16 |
1:高压互锁状态报警;0:正常 |
标志维持到报警条件解除 |
17 |
1:驱动电机温度报警;0:正常 |
标志维持到报警条件解除 |
18 |
1:车载储能装置类型过充;0:正常 |
标志维持到报警条件解除 |
报警数据解析结果样例
{
type: "ALARM",
maxLevel: 0,
uas: {
ressChargeOver: false,
motorTemp: false,
highVolMuteStatus: false,
motorControlTemp: false,
dcdcStatus: false,
brake: false,
dcdcTemp: false,
insulation: false,
batteryBadConsistency: false,
ressNotMatch: false,
socJump: false,
socOver: false,
batteryLow: false,
batteryOver: false,
socLow: false,
ressVolLow: false,
ressVolOver: false,
batteryTempOver: false,
tempDiff: false,
},
ressLen: 0,
ressList: [],
mortorLen: 0,
mortorList: [],
engineLen: 0,
engineList: [],
otherLen: 1,
otherList: [{"type":16,"code":5126,"level":2}],
}
报警数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
maxAlarmLevel |
最高报警等级 |
integer |
0 ~ 3 |
uas |
通用报警标志 |
object |
通用报警标志位定义见上面定义表 |
ressLen |
可充电储能装置故障总数 N1 |
integer |
0~252 |
ressList |
可充电储能装置故障代码列表 |
array< Fault > |
Fault 解析结果 |
mortorLen |
驱动电机故障总数 N2 |
integer |
0 ~ 252 |
mortorList |
驱动电机故障代码列表 |
array< Fault > |
Fault 解析结果 |
engineLen |
发动机故障总数 N3 |
integer |
0~252 |
engineList |
发动机故障列表 |
array< Fault > |
Fault 解析结果 |
otherLen |
其他故障总数 N4 |
integer |
0~252 |
otherList |
其他故障代码列表 |
array< Fault > |
Fault 解析结果 |
Fault 解析结果说明
字段 |
数据内容 |
类型 |
说明 |
type |
故障码类型 |
integer |
|
code |
故障编码 |
integer |
|
level |
故障级别 |
integer |
0~3 |
通用报警标志
"ressChargeOver"; // 车载储能装置类型过充
"motorTemp"; // 驱动电机温度报警
"highVolMuteStatus"; // 高压互锁状态报警
"motorControlTemp"; // 驱动电机控制器温度报警
"dcdcStatus"; // DC-DC 状态报警
"brake"; // 制动系统报警
"dcdcTemp"; // DC-DC 温度报警
"insulation"; // 绝缘报警
"batteryBadConsistency"; // 电池单体一致性差报警
"ressNotMatch"; // 可充电储能系统不匹配报警
"socJump"; // SOC 跳变报警
"socOver"; // SOC 过高报警
"batteryLow"; // 单体电池欠压报警
"batteryOver"; // 单体电池过压报警
"socLow"; // SOC 低报警
"ressVolLow"; // 车载储能装置类型欠压报警
"ressVolOver"; // 车载储能装置类型过压报警
"batteryTempOver"; // 电池高温报警
"tempDiff"; // 温度差异报警
可充电储能装置电压数据
0x08 RESS_VOLTAGE
可充电储能装置电压数据二进制样例
# 仅包含报警部分数据
01011B583A98001100011106400500064006400640064006400640064006400640064006400640064006400640
可充电储能装置电压数据二进制格式说明
// TODO: 暂缺
可充电储能装置电压数据解析结果样例
{
type: "RESS_VOLTAGE",
subCount: 1,
subSystems: [
{
batteryCount: 17,
batteryVols: [
1.6,
1.28,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
1.6,
],
current: 500,
frameBatteryCount: 17,
frameStartBatteryNo: 1,
no: 1,
voltage: 700,
},
],
}
可充电储能装置电压数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
subCount |
可充电储能子系统个数 |
integer |
|
subSystems |
可充电储能装置电压 |
array< RessVoltage > |
可充电储能装置电压数据结构 |
可充电储能装置电压数据结构
字段 |
数据内容 |
类型 |
说明 |
no |
可充电储能子系统编号 |
integer |
|
voltage |
可充电储能装置电压 |
float |
0.1v |
current |
可充电储能装置电压 |
float |
-1000 ~ ? 0.1A |
batteryCount |
单体电池总数 |
integer |
|
frameStartBatteryNo |
本帧起始电池序号 |
integer |
|
frameBatteryCount |
本帧单体电池总数 |
integer |
|
batteryVols |
单体电池电压 |
array< float > |
0.001v |
可充电储能装置温度数据
0x09 RESS_TEMPERATURE
可充电储能装置温度数据二进制样例
# 仅包含可充电储能装置温度数据
010100055040404040
可充电储能装置温度数据二进制格式说明
// TODO:暂无
可充电储能装置温度数据解析结果样例
{
subCount: 1,
subSystems: [
{ no: 1, probeCount: 5, temps: [40, 24, 24, 24, 24] }
],
}
可充电储能装置温度数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
subCount |
可充电储能子系统个数 |
integer |
|
subSystems |
可充电储能装置温度 |
array< RessTemperature > |
可充电储能装置温度数据结构 |
可充电储能装置温度数据结构
字段 |
数据内容 |
类型 |
说明 |
no |
可充电储能子系统编号 |
integer |
|
probeCount |
可充电储能温度探针个数 |
float |
0.1v |
temps |
温度 |
array< integer > |
-40 ~ 200 1℃ |
自定义扩展数据
自定义扩展数据二进制样例
0x80 CUSTOM_EXT
自定义扩展数据二进制格式说明
数据表示内容 |
长度/字节 |
数据类型 |
描述及要求 |
自定义数据长度 |
2 |
WORD |
自定义数据长度 n,有效范围 1 ~ 65531 |
自定义数据 |
1*N |
BYTE[N] |
拓展性数据,由用户自行定义 自定义数据 |
自定义数据
数据内容 |
长度/字节 |
数据类型 |
描述及要求 |
气压 1 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围: 0~1000kpa,“FE”表示异常,“FF”表示无效 |
气压 2 |
1 |
BYTE |
分辨率:4kPa ,偏移量:0 ,有效值范围:0~1000kpa,“FE”表示异常,“FF”表示无效 |
蓄电池电压 |
1 |
BYTE |
分辨率:0.5V/bit,偏移量:0,有效值范围:0~32V,“FE”表示异常,“FF”表示无效 |
DCDC 输出电压 |
2 |
WORD |
分辨率:0.1V,偏移量:-1000,有效值 范围:0~32V,“FF,FF”表示无效 |
DCDC 输出电流 |
2 |
WORD |
分辨率:0.1A,偏移量:-1000,有效值范围:-1000~1000A, “0xFF,0xFE”异常,“0xFF,0xFF”无效。 |
DCDC 散热器温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃,“FF”表示无效 |
DCAC 散热器温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃,“FF”表示无效 |
左前轮胎压力 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围:0~1000kpa, “FE”表示异常,“FF”表示无效 |
左前轮胎温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
右前轮胎压力 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围:0~1000kpa, “FE”表示异常,“FF”表示无效 |
右前轮胎温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
左后 1 轮胎压力 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围:0~1000kpa, “FE”表示异常,“FF”表示无效 |
左后 1 轮胎温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
左后 2 轮胎压力 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围:0~1000kpa, “FE”表示异常,“FF”表示无效 |
左后 2 轮胎温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
右后 1 轮胎压力 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围:0~1000kpa, “FE”表示异常,“FF”表示无效 |
右后 1 轮胎温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
右后 2 轮胎压力 |
1 |
BYTE |
分辨率:4kPa,偏移量:0,有效值范围:0~1000kpa, “FE”表示异常,“FF”表示无效 |
右后 2 轮胎温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
充电电压 |
2 |
WORD |
有效值范围:0 ~ 10000(表示 0V ~ 1000V),最小计量单元:0.1V,“0xFF,0xFE”表示异常,“0xFF,0xFF”表示无效。 |
充电电流 |
2 |
WORD |
有效值范围: 0 ~ 20000(偏移量 1000A,表示-1000A ~+1000A),最小计量单元:0.1A,“0xFF,0xFE”表示异常, “0xFF,0xFF”表示无效。 |
充电电量 |
2 |
WORD |
分辨率:0.1KWH,偏移量:0,有效值范围:0~ 6553.5KWH |
累积充电电量 |
4 |
WORD |
分辨率:0.1KWH,偏移量:0,有效值范围:0~ 429496729.41KWH |
累积放电电量 |
4 |
WORD |
分辨率:0.1KWH,偏移量:0,有效值范 围:0~ 429496729.41KWH |
瞬时电耗 |
2 |
WORD |
分辨率:0.1KWH,偏移量:0,有效值范围:0~ 6553.5KWH |
电池正绝缘电阻 |
2 |
WORD |
分辨率:1KΩ,偏移量:0,有效值范围:0~60000 KΩ,“FF,FF”表示无效 |
电池负绝缘电阻 |
2 |
WORD |
分辨率:1KΩ,偏移量:0,有效值范围:0~60000 KΩ,“FF,FF”表示无效 |
电机控制器温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
空调开启模式 |
1 |
BYTE |
0x00:关闭 0x01 新风 0x02 制热 0x03 制冷 0xFF 无效 |
空调设定温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
车厢内实际温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
车外温度 |
1 |
BYTE |
分辨率:1℃,偏移量:-40,有效值范围:-40~210℃, “FF”表示无效 |
钥匙位置 |
bit1~0 |
BYTE bit |
0:OFF,1:ACC,2:ON,3:START |
手刹状态 |
bit3~2 |
BYTE bit |
0:表示无信号,1:表示有信号,2:表示 异常,3:表示无效 |
前门状态 |
bit5~4 |
BYTE bit |
0:表示无信号,1:表示 开,2:表示 异常,3:表示无效 |
中门状态 |
bit7~6 |
BYTE bit |
0:表示无信号,1:表示 开,2:表示 异常,3:表示无效 |
自定义扩展数据解析结果样例
# 数据仅包含自定义扩展item
{
type: "CUSTOM_EXT",
dataLen: 48,
pressure1: 0,
pressure2: 0,
batteryVoltage: 0,
dcov: -900,
dcoc: -900,
cv: 570.5,
rc: 5522.6,
cp: 0,
totalCharge: 0,
totalDischarge: 0,
bpiRes: 0,
bniRes: 0,
motorContTemp: 0,
airMode: "OFF",
airTemp: 0,
insideTemp: 0,
outsideTemp: 0,
middleDoorStatus: "CLOSE",
frontDoorStatus: "CLOSE",
handbrakeStatus: "OFF",
keyPosition: "ON",
}
自定义扩展数据解析结果说明
字段 |
数据内容 |
类型 |
分辨率 |
说明 |
dataLen |
自定义数据长度 |
integer |
|
字节长度 |
pressure1 |
气压 1 |
integer |
4kPa |
0~1000kpa |
pressure2 |
气压 2 |
integer |
4kPa |
0~1000kpa |
batteryVoltage |
蓄电池电压 |
float |
0.5V |
0~32V |
dcov |
DCDC 输出电压 |
float |
0.1V |
0~32V |
dcoc |
DCDC 输出电流 |
float |
0.1A |
-1000~1000A |
dcTemp |
DCDC 散热器温度 |
integer |
1℃ |
-40~210℃ |
acTemp |
DCAC 散热器温度 |
integer |
1℃ |
-40~210℃ |
lftp |
左前轮胎压力 |
integer |
4kPa |
0~1000kPa |
lftt |
左前轮胎温度 |
integer |
1℃ |
-40~210℃ |
rftp |
右前轮胎压力 |
integer |
4kPa |
0~1000kPa |
rftt |
右前轮胎温度 |
integer |
1℃ |
-40~210℃ |
lr1tp |
左后 1 轮胎压力 |
integer |
4kPa |
0~1000kPa |
lr1tt |
左后 1 轮胎温度 |
integer |
1℃ |
-40~210℃ |
lr2tp |
左后 2 轮胎压力 |
integer |
4kPa |
0~1000kPa |
lr2tt |
左后 2 轮胎温度 |
integer |
1℃ |
-40~210℃ |
rr1tp |
右后 1 轮胎压力 |
integer |
4kPa |
0~1000kPa |
rr1tt |
右后 1 轮胎温度 |
integer |
1℃ |
-40~210℃ |
rr2tp |
右后 2 轮胎压力 |
integer |
4kPa |
0~1000kPa |
rr2tt |
右后 2 轮胎温度 |
integer |
1℃ |
-40~210℃ |
cv |
充电电压 |
float |
0.1V |
0V ~ 1000V |
rc |
充电电流 |
float |
0.1A |
-1000~1000A |
cp |
充电电量 |
float |
0.1KWH |
0~ 6553.5KWH |
totalCharge |
累积充电电量 |
float |
0.1KWH |
0~ 429496729.41KWH |
totalDischarge |
累积放电电量 |
float |
0.1KWH |
0~ 429496729.41KWH |
instantPower |
瞬时电耗 |
float |
0.1KWH |
0~ 6553.5KWH |
bpiRes |
电池正绝缘电阻 |
integer |
1KΩ |
0~60000 KΩ |
bniRes |
电池负绝缘电阻 |
integer |
1KΩ |
0~60000 KΩ |
apTemp |
气泵扇热器温度 |
integer |
1℃ |
-40~210℃ |
motorContTemp |
电机控制器温度 |
integer |
1℃ |
-40~210℃ |
airMode |
空调模式 |
string |
|
WIND: “进风”, OFF: “关”, REFRIGERATION: “制冷”, HEATING: “制热”, ABNORMAL: “异常” |
airTemp |
空调设定温度 |
integer |
1℃ |
-40~210℃ |
insideTemp |
车厢内实际温度 |
integer |
1℃ |
-40~210℃ |
outsideTemp |
车外温度 |
integer |
1℃ |
-40~210℃ |
middleDoorStatus |
中门状态 |
string |
|
CLOSE: “关闭”, OPEN: “开启”, ABNORMAL: “异常” |
frontDoorStatus |
前门状态 |
string |
|
CLOSE: “关闭”, OPEN: “开启”, ABNORMAL: “异常” |
handbrakeStatus |
手刹状态 |
string |
|
ON: “开”, OFF: “关”, ABNORMAL: “异常” |
keyPosition |
钥匙位置 |
string |
|
OFF: 关, ACC: 通电, ON: 开, START: 启动 |
十秒上传数据
0x81 TEN_SECONDS
只通过 REISSUE_REPORT 上报
十秒上传数据二进制样例
0100020003000004271001000200030000042710010002000300000427100100020003000004271001000200030000042710010002000300000427100100020003000004271001000200030000042710010002000300000427100100020003000004271061;
十秒上传数据二进制格式说明
十秒上传一共会有十组数据,连续,下面表格是其中一组的数据格式
数据内容 |
长度/字节 |
数据类型类型 |
描述 |
0x01 |
1 |
BYTE |
加速踏板标识类型 |
加速踏板行程 |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0%~ 100%),最小计量单元:1%,“0xFE”表示异常,“0xFF”表示无效。 |
0x02 |
1 |
BYTE |
制动踏板标识类型 |
制动踏板 |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0%~ 100%),最小计量单元 1%,“0”表示制动关的状态;在无具体行程值情况下,用“0x65” 即“101”表示制动有效状态,“0xFE” 表示异常 “0xFF”标识无效 |
0x03 |
1 |
BYTE |
车速标识类型 |
车速 |
2 |
WORD |
有效值范围:0 ~ 2200(表示 0 km/h ~ 220 km/h),最小计量单元:0.1km/h,“0xFF,0xFE”表示异常,“0xFF,0xFF”表 示无效 |
0x04 |
1 |
BYTE |
总电流标识类型 |
总电流 |
2 |
WORD |
有效值范围: 0 ~ 20000(偏移量 1000A,表示-1000A ~+1000A),最小计量单元:0.1A,“0xFF,0xFE”表示异常, “0xFF,0xFF”表示无效 |
十秒上传数据解析结果样例
{
command: "REISSUE_REPORT",
flag: "COMMAND",
vin: "LWXCS201711070000",
encrypt: "NONE",
length: 107,
body: {
at: new Date("2018-06-21T05:49:47.000Z"),
items: [
{
type: "TEN_SECONDS",
datas: [{
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}, {
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: 0,
}],
},
],
},
十秒上传解析结果说明
字段 |
数据内容 |
类型 |
说明 |
accPedal |
加速踏板行程 |
float |
0 ~ 1 (精度 0.01) 如果 > 1,表示无法获得具体值 |
brake |
制动踏板 |
float |
0 ~ 1 (精度 0.01) 如果 > 1,表示无法获得具体值 |
speed |
车速 |
float |
0km/h ~ 220km/h 0.1km/h |
totalCurrent |
总电流 |
float |
-1000A ~ 1000A 0.1A |
主动安全数据
0x82 ADAS
只通过 REISSUE_REPORT 上报
主动安全数据二进制样例
# 仅包含一组 adas 数据,实际上应该有 10 组
0100020003000004271005000678070008f409010a010b400c000d0010
主动安全数据二进制格式说明
数据内容 |
长度/字节 |
数据类型类型 |
描述 |
0x01 |
1 |
BYTE |
加速踏板标识类型 |
加速踏板行程 |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0%~ 100%),最小计量单元:1%,“0xFE”表示异常,“0xFF”表示无效。 |
0x02 |
1 |
BYTE |
制动踏板标识类型 |
制动踏板 |
1 |
BYTE |
有效值范围:0 ~ 100(表示 0%~ 100%),最小计量单元 1%,“0”表示制动关的状态;在无具体行程值情况下,用“0x65” 即“101”表示制动有效状态,“0xFE” 表示异常 “0xFF”标识无效 |
0x03 |
1 |
BYTE |
车速标识类型 |
车速 |
2 |
WORD |
有效值范围:0 ~ 2200(表示 0 km/h ~ 220 km/h),最小计量单元:0.1km/h,“0xFF,0xFE”表示异常,“0xFF,0xFF”表 示无效 |
0x04 |
1 |
BYTE |
总电流标识类型 |
总电流 |
2 |
WORD |
有效值范围: 0 ~ 20000(偏移量 1000A,表示-1000A ~+1000A),最小计量单元:0.1A,“0xFF,0xFE”表示异常, “0xFF,0xFF”表示无效 |
0x05 |
1 |
BYTE |
超速显示标识符 |
超速值 |
1 |
BYTE |
范围:0-7 分辨率:5km/h,偏移量:0 |
0x06 |
1 |
BYTE |
车辆前方障碍物相对横向距离标识 |
前方障碍物横向相对距离 |
1 |
BYTE |
分辨率:0.1m/bit,偏移量:-12, 范围-12m~12m |
0x07 |
1 |
BYTE |
车辆前方障碍物相对 纵向距离标识 |
前方障碍物相对纵向距离 |
1 |
BYTE |
范围 0-250m |
0x08 |
1 |
BYTE |
车辆前方障碍物相对 速度标识 |
车辆前方障碍物相对速度 |
1 |
BYTE |
偏移量-50 范围-50-50(m/s) |
0x09 |
1 |
BYTE |
ADAS 系统状态 1 |
蜂鸣器预警 |
1 |
Bit4-bit1 |
0001 有效,其他无效 |
方向盘震动器预警 |
|
Bit8-bit5 |
0001 有效,其他无效 |
0x0A |
1 |
BYTE |
ADAS 系统状态 2 |
前方碰撞预警 |
1 |
Bit2-bit1 |
01:有,00:无 |
左车道偏离预警 |
|
Bit4-bit3 |
01:有,00:无 |
右车道偏离预警 |
|
Bit6-bit5 |
01:有,00:无 |
行人碰撞预警 |
|
Bit2-bit1 |
01:有,00:无 |
0x0B |
1 |
BYTE |
ADAS 系统状态 3 |
碰撞缓解制动系统预警等级 |
1 |
Bit8-bit7 |
0:无效,1:一级预警;2:二级预警 |
碰撞缓解制动系统状态 |
|
Bit6-bit5 |
00:不显示,01:CMCS 关闭,10:CMCS 故障, |
碰撞缓解制动系统开关状态 |
|
Bit4-bit3 |
00:无,01:有 |
保留 |
|
Bit2-bit1 |
|
0x0C |
1 |
BYTE |
障碍物类型标识 |
障碍物类型 |
1 |
BYTE |
VOID:无,PEOPLE:人,2:VEHICLE; |
0x0D |
1 |
Bit2-bit1 |
ADAS 故障码 |
ADAS 故障码 |
2 |
BYTE |
具体含义未知 |
主动安全数据解析结果样例
{
type: "ADAS",
datas: [{
accPedal: 0,
brake: 0,
speed: 0,
totalCurrent: -900,
overSpeed: 0,
lateralDistance: 0, // 前方障碍物横向距离
verticalDistance: 0, // 前方障碍物纵向距离
relativeVelocity: 0, // 与前方障碍物的相对速度
wheelWarning: false, // 方向盘振动器预警
buzzerWarning: false, // 蜂鸣器预警
pWarning: false, // 行人碰撞预警
rWarning: false, // 右车道偏离预警
lWarning: false, // 左车道偏离预警
cWarning: false, // 前方碰撞预警
cmcs: "NORMAL", // 碰撞缓解制动系统状态
reserved: 0,
crbs: false, // 碰撞缓解制动系统开关状态
cmcsLevel: 0, // 碰撞缓解制动系统预警等级
obstacleType: "VOID", // 障碍物类型
fault: 16,
}
主动安全数据解析结果说明
字段 |
数据内容 |
类型 |
说明 |
accPedal |
加速踏板行程 |
float |
0 ~ 1 (精度 0.01) 如果 > 1,表示无法获得具体值 |
brake |
制动踏板 |
float |
0 ~ 1 (精度 0.01) 如果 > 1,表示无法获得具体值 |
speed |
车速 |
float |
0km/h ~ 220km/h 0.1km/h |
totalCurrent |
总电流 |
float |
-1000A ~ 1000A 0.1A |
overSpeed |
超速值 |
integer |
0 ~ 35 5km/h |
lateralDistance |
前方障碍物横向相对距离 |
float |
-12M ~ 12M 0.1M 车辆左侧为负,车辆右侧为正 |
verticalDistance |
前方障碍物相对纵向距离 |
integer |
0M ~ 250M |
relativeVelocity |
车辆前方障碍物相对速度 |
integer |
-50 ~ 50(m/s)1m/s |
buzzerWarning |
蜂鸣器预警 |
boolean |
|
wheelWarning |
方向盘震动器预警 |
boolean |
|
cWarning |
前方碰撞预警 |
boolean |
|
lWarning |
左车道偏离预警 |
boolean |
|
rWarning |
右车道偏离预警 |
boolean |
|
pWarning |
行人碰撞预警 |
boolean |
|
cmcsLevel |
碰撞缓解制动系统预警等级 |
integer |
0:无效,1:一级预警;2:二级预警 |
cmcs |
碰撞缓解制动系统状态 |
string enum |
NORMAL: CMCS 正常;CLOSE: CMCS 关闭;ABNORMAL:CMSC 故障 |
crbs |
碰撞缓解制动系统开关状态 |
boolean |
|
obstacleType |
障碍物类型 |
integer |
VOID: 无;PEOPLE: 人;VEHICLE: 车 |
reserved |
保留 |
integer |
|
fault |
ADAS 故障码 |
integer |
|