package ru.upos;

/**
 * Устройства терминала, которые требуется задействовать командой MASTERCALL
 */
public enum DeviceCode {
    NotUsed((byte)0x00),
    Printer((byte)0x03),
    Lan((byte)0x19),
    Beeper((byte)0x20),
    PingInfo((byte)0x27),
    RebootNotification((byte)0x29),
    WaitTimer((byte)0x2D);

    private final byte code;

    DeviceCode(byte code) {
        this.code = code;
    }

    public byte getCode() {
        return code;
    }

    public static DeviceCode getDeviceCode(byte code) throws Exception {
        for (DeviceCode deviceCode : DeviceCode.values()) {
            if (code == deviceCode.getCode()) {
                return deviceCode;
            }
        }
        throw new Exception(String.format("Unallowable device code: %c", code));
    }
}
