| | |
| | | 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, |
| | | var vinCode: String? = 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 |
| | | ) |