feiyu02
2025-07-03 c56e1e74426238939f229f0005828d05089715ff
src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
@@ -24,7 +24,8 @@
    TIME(15, "TIME", 6),//时间
    WIND_SPEED(16, "WIND_SPEED", 3),
    WIND_DIRECTION(17, "WIND_DIRECTION", 2),
    HEIGHT(18, "HEIGHT", 3);
    HEIGHT(18, "HEIGHT", 3),
    NO(19, "NO", 6);
    companion object {
@@ -41,6 +42,7 @@
            5 -> PM25
            6 -> PM10
            7 -> VOC
            19 -> NO
            else -> null
        }
@@ -63,6 +65,7 @@
            WIND_SPEED.value -> WIND_SPEED
            WIND_DIRECTION.value -> WIND_DIRECTION
            HEIGHT.value -> HEIGHT
            NO.value -> NO
            else -> null
        }
@@ -85,6 +88,7 @@
            WIND_SPEED.des -> WIND_SPEED
            WIND_DIRECTION.des -> WIND_DIRECTION
            HEIGHT.des -> HEIGHT
            NO.des -> NO
            else -> null
        }
@@ -99,6 +103,7 @@
         * 获取监测因子的合理范围
         */
        fun getRange(type: FactorType): Pair<Double, Double>? = when (type) {
            NO -> Pair(0.1, 1000.0)
            NO2 -> Pair(0.1, 1000.0)
            CO -> Pair(1.0, 5000.0)
            H2S -> Pair(0.1, 1000.0)
@@ -120,9 +125,9 @@
            else -> null
        }
        fun getVMax(name: String?): Double? {
        fun getVMin(name: String?): Double? {
            getByName(name)?.let {
                return getVMax(it)
                return getVMin(it)
            }
            return null
        }
@@ -130,7 +135,8 @@
        /**
         * 不处理低于此值的值
         */
        fun getVMax(type: FactorType): Double? = when (type) {
        fun getVMin(type: FactorType): Double = when (type) {
            NO -> 1.0
            NO2 -> 10.0
            CO -> 100.0
            H2S -> 10.0
@@ -149,9 +155,11 @@
            WIND_SPEED -> 2.0
            WIND_DIRECTION -> 0.0
            HEIGHT -> 0.0
            else -> null
        }
        /**
         * 因子连续数据上升合理幅度(倍数)
         */
        fun getMultiplier(name: String?): Double {
            getByName(name)?.let {
                return getMultiplier(it)