riku
2020-07-15 25d0f31f22f77a914a50bbc088902e00e28c4889
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
package com.flightfeather.uav.socket.decoder
 
import com.flightfeather.uav.socket.bean.DataUnit
import com.flightfeather.uav.socket.eunm.AirCommandUnit
import java.util.*
 
/**
 * uav 第一层数据包解码器
 * @author riku
 * Date: 2019/9/12
 *
 * 数据第一层结构定义如下:
 * 起始字节         定义
 * 0                    起始符
 * 1                   命令单元  类型@see [AirCommandUnit]
 * 2                   数据单元长度
 * 倒数第2           校验码
 */
interface DataPackageDecoder {
 
    fun getHead(b: List<String>): String?
 
    fun getCommandUnit(b: List<String>): Int?
 
    fun getDeviceCode(b: List<String>): String?
 
    fun getDataTime(b: List<String>): Date
 
    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>
 
}