package com.its.vms.xnettcp.vms.protocol.enums;

import java.util.HashMap;
import java.util.Map;

public enum eVmsStatusControl {

    CONTROL_SIGNBOARD_POWER           (0x01, "0x00.전광판 전원제어"),
    CONTROL_RESET                     (0x02, "0x02.제어기 리셋트"),
    CONTROL_RETRY_COUNT               (0x03, "0x03.통신 재시도 횟수"),
    CONTROL_SYSTEM_TIME               (0x04, "0x04.제어기 시간 설정"),
    CONTROL_BLINK_CYCLE               (0x05, "0x05.점멸시간 주기"),
    CONTROL_BRIGHT                    (0x06, "0x06.밝기 제어"),
    CONTROL_FAN                       (0x07, "0x07.Fan 제어"),
    CONTROL_HEATER                    (0x08, "0x08.Heater 제어"),
    CONTROL_SCREEN_COLOR              (0x09, "0x09.화면 배색 제어"),
    CONTROL_MODULE_ERROR_RATIO        (0x0A, "0x0A.장애 모듈비율(%)"),
    CONTROL_DEFAULT_SCENARIO_RUN_TIME (0x0B, "0x0B.디폴트 시나리오 동작 시간");

    private final int value;
    private final String string;

    private static final Map<Integer, eVmsStatusControl> map;
    static {
        map = new HashMap<>();
        for (eVmsStatusControl e : values()) {
            map.put(e.value, e);
        }
    }
    public static eVmsStatusControl getByValue(int value) {
        return map.get(value);
    }
    public static eVmsStatusControl getByValue(byte value) {
        int intValue = value & 0x0F;
        return map.get(intValue);
    }

    eVmsStatusControl(int value, String string) {
        this.value  = value;
        this.string = string;
    }

    public int getValue() {
        return this.value;
    }

    public int getByteValue() {
        return (byte)(this.value & 0xFF);
    }
    @Override
    public String toString() {
        return this.string;
    }
}
