/**
 * Copyright 2019 DH
 * All right reserved.
 * 项目名称: 大恒泰山系统
 * 创建日期:2023/10/31
 */
package org.ts.ddcs.enums;

/*** 
 * Date:2023/10/31
 * Title:水文规约报文类型定义
 * Description：对本文件的详细描述，原则上不能少于30字
 * @author dylan
 * @version 1.0
 * Remark：认为有必要的其他信息
 */
public enum SwDatagramTypeCodeEnum {
    /**
     * 链路检测
     */
    DATAGRAM_CODE_2F(0x2F, "2F"),
    /**
     * 测试报
     */
    DATAGRAM_CODE_30(0x30, "30"),
    /**
     * 均匀时段水文信息报
     */
    DATAGRAM_CODE_31(0x31, "31"),
    /**
     * 定时报
     */
    DATAGRAM_CODE_32(0x32, "32"),
    /**
     * 加报
     */
    DATAGRAM_CODE_33(0x33, "33"),
    /**
     * 小时报
     */
    DATAGRAM_CODE_34(0x34, "34"),
    /**
     * 人工置数
     */
    DATAGRAM_CODE_35(0x35, "35"),
    /**
     * 遥测站图片报或中心站查询遥测站图片采集
     * 信息
     */
    DATAGRAM_CODE_36(0x36, "36"),
    /**
     * 中心站查询遥测站实时数据
     */
    DATAGRAM_CODE_37(0x37, "37"),
    /**
     * 中心站查询遥测站时段数据
     */
    DATAGRAM_CODE_38(0x38, "38"),
    /**
     * 中心站查询遥测站人工置数
     */
    DATAGRAM_CODE_39(0x39, "39"),
    /**
     * 中心站查询遥测站指定要素数据
     */
    DATAGRAM_CODE_3A(0x3A, "3A"),
    /**
     * 中心站修改遥测站基本配置表
     */
    DATAGRAM_CODE_40(0x40, "40"),
    /**
     * 中心站读取遥测站基本配置表/遥测站自报
     * 基本配置表
     */
    DATAGRAM_CODE_41(0x41, "41"),
    /**
     * 中心站修改遥测站运行参数配置表
     */
    DATAGRAM_CODE_42(0x42, "42"),
    /**
     * 中心站读取遥测站运行参数配置表/遥测站
     * 自报运行参数配置表
     */
    DATAGRAM_CODE_43(0x43, "43"),
    /**
     * 查询水泵电机实时工作数据
     */
    DATAGRAM_CODE_44(0x44, "44"),
    /**
     *查询遥测终端软件版本
     */
    DATAGRAM_CODE_45(0x45, "45"),
    /**
     * 查询遥测站状态和报警信息
     */
    DATAGRAM_CODE_46(0x46, "46"),
    /**
     *初始化固态存储数据
     */
    DATAGRAM_CODE_47(0x47, "47"),
    /**
     *恢复终端出厂设置
     */
    DATAGRAM_CODE_48(0x48, "48"),
    /**
     *修改密码
     */
    DATAGRAM_CODE_49(0x49, "49"),
    /**
     *设置遥测站时钟
     */
    DATAGRAM_CODE_4A(0x4A, "4A"),
    /**
     * 设置遥测终端 IC 卡状态
     */
    DATAGRAM_CODE_4B(0x4B, "4B"),
    /**
     *控制水泵开关命令/水泵状态信息自报
     */
    DATAGRAM_CODE_4C(0x4C, "4C"),
    /**
     *控制阀门开关命令/阀门状态信息自报
     */
    DATAGRAM_CODE_4D(0x4D, "4D"),
    /**
     *控制闸门开关命令/闸门状态信息自报
     */
    DATAGRAM_CODE_4E(0x4E, "4E"),
    /**
     * 水量定值控制命令
     */
    DATAGRAM_CODE_4F(0x4F, "4F"),
    /**
     *中心站查询遥测站事件记录
     */
    DATAGRAM_CODE_50(0x50, "50"),
    /**
     *中心站查询遥测站时钟
     */
    DATAGRAM_CODE_51(0x51, "51"),
    /**
     * 上传文件
     */
    DATAGRAM_CODE_EX_F1(0xF1, "F1"),
    /**
     * 重启
     */
    DATAGRAM_CODE_EX_F3(0xF3, "F3"),
    /**
     * 上传配置文件更新
     */
    DATAGRAM_CODE_EX_F4(0xF4, "F4"),
    /**
     * 状态报
     */
    DATAGRAM_CODE_EX_F5(0xF5, "F5");

    private int code;

    private String name;

    SwDatagramTypeCodeEnum(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 (SwDatagramTypeCodeEnum point : SwDatagramTypeCodeEnum.values()) {
            if (point.code == code) {
                return point.name;
            }
        }
        return "";
    }

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