riku
2019-09-23 14ce5d2ccfae554497763da846ffb9eb39cd6d34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.flightfeather.obd.socket.decoder
 
import com.flightfeather.obd.socket.bean.DataUnit
import com.flightfeather.obd.socket.eunm.ObdCommandUnit
 
/**
 * obd 第一层数据包解码器
 * @author riku
 * Date: 2019/9/12
 *
 * 数据第一层结构定义如下:
 * 起始字节         定义
 * 0                    起始符
 * 2                    命令单元  类型@see [ObdCommandUnit]
 * 3                    车辆识别号
 * 4                    终端软件版本号
 * 21                   数据加密方式
 * 22                   数据单元长度
 * 24                   数据单元  解码器@see [DataUnitDecoder]
 * 倒数第1           校验码
 */
interface DataPackageDecoder {
 
    fun getHead(b: List<String>): String?
 
    fun getCommandUnit(b: List<String>): Int?
 
    fun getVinCode(b: List<String>): String?
 
    fun getSoftwareVersion(b: List<String>): Int?
 
    fun getEncryptionWay(b: List<String>): Int?
 
    fun getDataLength(b: List<String>): Int
 
    fun getDataUnit(b: List<String>): List<DataUnit>
 
    fun getCheckCode(b: List<String>): Int?
 
    fun toStringList(msg: String): List<String>
 
}