package org.ts.ddcs.enums;

/***
 * Date:2022/3/9
 * Title: 水资源2012报文观测要素
 * Description：对本文件的详细描述，原则上不能少于30字
 * @author swp
 * @version 1.0
 * Remark：认为有必要的其他信息
 */
public enum Szy2012DatagramElementEnum {


    /**
     * 命令
     */
    ELEMENT_COMMAND_F00(0, "00"),

    /**
     * 雨量参数
     */
    ELEMENT_RAIN_F01(1, "01"),

    /**
     * 水位参数
     */
    ELEMENT_WATER_LEVEL_F02(2, "02"),

    /**
     * 流量(水量)参数
     */
    ELEMENT_FLOW_RATE_F03(3, "03"),

    /**
     * 流速参数
     */
    ELEMENT_FLOW_SPEED_F04(4, "04"),

    /**
     * 闸位参数
     */
    ELEMENT_WATER_GATE_F05(5, "05"),

    /**
     * 功率参数
     */
    ELEMENT_POWER_F06(6, "06"),

    /**
     * 气压参数
     */
    ELEMENT_AIR_PRESSURE_F07(7, "07"),

    /**
     * 风速参数
     */
    ELEMENT_WIND_SPEED_F08(8, "08"),

    /**
     * 水温参数
     */
    ELEMENT_WATER_TEMPERATURE_F09(9, "09"),

    /**
     * 水质参数
     */
    ELEMENT_WATER_QUALITY_F10(10, "10"),

    /**
     * 土壤含水率参数
     */
    ELEMENT_GROUND_MOISTURE_F11(11, "11"),

    /**
     * 蒸发量参数
     */
    ELEMENT_EVAPORATION_CAPACITY_F12(12, "12"),

    /**
     * 报警或状态参数
     */
    ELEMENT_WARN_F13(13, "13"),

    /**
     * 统计雨量
     */
    ELEMENT_SYNTHETICAL_F14(14, "14"),

    /**
     * 水压参数
     */
    ELEMENT_WATER_PRESSURE_F15(15, "15"),

    /**
     *  观测时间
     */
//    ELEMENT_TT_FF0(16, "F0"),
    /**
     * 测站编码
     */
    ELEMENT_ST_FF1(17, "F1"),
    /**
     * 测站状态
     */
    ELEMENT_RTU_STATUS_FF2(18, "F2"),
    /**
     * 报警状态
     */
    ELEMENT_RTU_WARN_FF3(19, "F3"),
    /**
     *  扩展观测时间
     */
//    ELEMENT_EXT_TT_FF4(20, "FFF0"),
    /**
     * 累计流量(水量)参数
     */
    ELEMENT_SUM_FLOW_RATE_FF4(21, "FFF1"),
    /**
     *  小时流量
     */
    ELEMENT_HOUR_FLOW_RATE_FF5(22, "FFF2")
    ;

    private int code;

    private String name;

    Szy2012DatagramElementEnum(int code, String name) {
        this.code = code;
        this.name = name;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * 根据CODE查名称
     *
     * @param code
     * @return
     */
    public static String getName(int code) {
        for (Szy2012DatagramElementEnum point : Szy2012DatagramElementEnum.values()) {
            if (point.code == code) {
                return point.name;
            }
        }
        return "";
    }

    /**
     * 根据名称查代码
     * @param name
     * @return
     */
    public static int getCode(String name) {
        for (Szy2012DatagramElementEnum point : Szy2012DatagramElementEnum.values()) {
            if (point.name.equals(name)) {
                return point.code;
            }
        }
        return -1;
    }
}
