feiyu02
2025-01-23 698f8f0f22af4c66581ce284407e986ca036aec6
src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
@@ -1,6 +1,7 @@
package com.flightfeather.uav.socket.processor
import com.flightfeather.uav.repository.AirDataRepository
import com.flightfeather.uav.model.epw.EPWDataPrep
import com.flightfeather.uav.domain.repository.AirDataRep
import com.flightfeather.uav.socket.bean.AirDataPackage
import com.flightfeather.uav.socket.decoder.AirDataDecoder
import com.flightfeather.uav.socket.decoder.DataPackageDecoder
@@ -29,10 +30,13 @@
    }
    @Autowired
    lateinit var airDataRepository: AirDataRepository
    lateinit var airDataRep: AirDataRep
    val airDataDecoder = AirDataDecoder.instance
    val dataPackageDecoder = DataPackageDecoder()
    private val airDataDecoder = AirDataDecoder.instance
    private val dataPackageDecoder = DataPackageDecoder()
    // 数据预处理函数
    private val dataProcessMap = mutableMapOf<String?, EPWDataPrep>()
    @PostConstruct
    fun init() {
@@ -62,7 +66,16 @@
        when (dataPackage.commandUnit) {
            AirCommandUnit.AirData.value -> {
                // 以json格式存储原始数据
                instance.airDataRepository.saveAirData(dataPackage)
                instance.airDataRep.saveAirData(dataPackage)
                // 进行预处理后,存储至对应数据表
                if (!dataProcessMap.containsKey(dataPackage.deviceCode)) {
                    // 每台设备有单独的数据预处理对象
                    dataProcessMap[dataPackage.deviceCode] = EPWDataPrep(UWDeviceType.getType(dataPackage.deviceCode))
                }
                dataProcessMap[dataPackage.deviceCode]?.run {
                    val list = this.mDataPrep2(dataPackage)// 数据平滑处理
                    instance.airDataRep.savePrepData2(list)// 按照设备类型存储至对应数据表
                }
            }
        }
    }