package com.flightfeather.obd.socket.bean
|
|
import com.flightfeather.obd.socket.eunm.ObdCommandUnit
|
|
/**
|
* @author riku
|
* Date: 2019/9/12
|
* 数据包结构
|
*
|
* 起始字节 定义 数据类型 描述及要求
|
* 0 起始符 STRING 固定为 ASCII 字符’##’,用“0x23,0x23”表示
|
* 2 命令单元 BYTE 命令单元定义 @see [ObdCommandUnit]
|
* 3 车辆识别号 STRING 车辆识别码是识别的唯一标识,由 17 位字码组成,字码应符合 GB16735 中 4.5 的规定
|
* 20 终端软件版本号 BYTE 终端软件版本号有效值范围 0~255
|
* 21 数据加密方式 BYTE 0x01:数据不加密;
|
* 0x02:数据经过 RSA 算法加密;
|
* 0x03:数据经过国密 SM2 算法加密;
|
* “0xFE”标识异常,“0xFF”表示无效,其他预留
|
* 22 数据单元长度 WORD 数据单元长度是数据单元的总字节数,有效范围:0~65531
|
* 24 数据单元 见数据单元格式和定义 @see [DataUnit]
|
* 倒数第 1 校验码 BYTE 采用 BCC(异或校验)法,校验范围聪明星单元的第一个字节开始,同后一个字节异或,直到校验码前一字节为止,校验码占用一个字节
|
*/
|
data class ObdPackageData constructor(
|
//起始符
|
var head: String? = null,
|
//命令单元
|
var commandUnit: Int? = null,
|
//车辆识别号(指obd数据采集设备的编号)
|
var deviceCode: String? = null,
|
//终端软件版本号
|
var softwareVersion: Int? = null,
|
//数据加密方式
|
var encryptionWay: Int? = null,
|
//数据单元长度
|
var dataLength: Int? = null,
|
//数据单元
|
var dataUnit: List<DataUnit>,
|
//校验码
|
var checkCode: Int? = null
|
)
|