feiyu02
2025-09-30 94fee0b511279679b43e210878d3d36e5a14384b
src/main/kotlin/com/flightfeather/uav/biz/mission/MissionUtil.kt
@@ -56,4 +56,37 @@
        // 返回乡镇和街道名称组合
        return address.township
    }
    /**
     * 数据清洗
     * 1. 修复由于硬件设备卡顿导致的数据采样时间不变问题,采用自动累加数据周期的方式修改采样时间
     * @param data 原始数据列表
     * @param period 数据周期,单位:秒
     * @return 清洗后需要修改的数据列表
     */
    fun dataClean(dataList: List<BaseRealTimeData>, period: Long): List<BaseRealTimeData> {
        val cleanedData = mutableListOf<BaseRealTimeData>()
        var errorData: BaseRealTimeData? = null
        dataList.forEachIndexed { index, data ->
            if (index == 0) {
                return@forEachIndexed
            }
            val lastOne = dataList[index - 1]
            if (errorData == null) {
                if (data.dataTime!!.time == lastOne.dataTime!!.time) {
                    data.dataTime?.time = lastOne.dataTime?.time!!.plus(period * 1000)
                    cleanedData.add(data)
                    errorData = lastOne
                }
            } else {
                if (data.dataTime!!.time == errorData!!.dataTime!!.time) {
                    data.dataTime?.time = lastOne.dataTime?.time!!.plus(period * 1000)
                    cleanedData.add(data)
                } else {
                    errorData = null
                }
            }
        }
        return cleanedData
    }
}