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
43
44
45
46
47
48
49
| package com.flightfeather.uav.socket.decoder
|
| import com.flightfeather.uav.socket.bean.AirDataPackage
|
| /**
| * 空气质量多参数数据解码器
| * @author riku
| * Date: 2019/9/12
| */
| class AirDataDecoder private constructor(){
|
| companion object{
|
| @Volatile
| private var decoder: AirDataDecoder? = null
|
| @JvmStatic
| val instance: AirDataDecoder
| get() {
| if (decoder == null) {
| synchronized(AirDataDecoder::class) {
| if (decoder == null) {
| decoder = AirDataDecoder()
| }
| }
| }
| return this.decoder!!
| }
| }
|
| private val dataPackageDecoder: DataPackageDecoder = DataPackageDecoder()
|
| fun decode(msg: String): AirDataPackage {
| val list = dataPackageDecoder.toStringList(msg)
| dataPackageDecoder.run {
| return AirDataPackage(
| getHead(list),
| getCommandUnit(list),
| getDeviceCode(list),
| getDataTime(list),
| getDataLength(list),
| getDataUnit(list),
| getCheckCode(list)
| )
| }
| }
|
|
| }
|
|