feiyu02
2025-09-01 29383149f7040d89ae00ad48dc48bbcf46587946
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),