Riku
2025-06-02 e731486b50c4ea6e2d28f302df449b4bd0b2be57
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)
            )
        }
    }
 
 
}