feiyu02
2025-01-09 6c1e7c5ac983301c34f003415cda2ef7c7e176a6
src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
@@ -1,21 +1,39 @@
package com.flightfeather.uav.socket.decoder
import com.flightfeather.uav.socket.bean.AirPackageData
import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl
import com.flightfeather.uav.socket.bean.AirDataPackage
/**
 * 空气质量多参数数据解码器
 * @author riku
 * Date: 2019/9/12
 */
class AirDataDecoder {
class AirDataDecoder private constructor(){
    private val dataPackageDecoder: DataPackageDecoder = DataPackageDecoderImpl()
    companion object{
    fun decode(msg: String): AirPackageData {
        @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 AirPackageData(
            return AirDataPackage(
                    getHead(list),
                    getCommandUnit(list),
                    getDeviceCode(list),