package ru.upos;

/**
 * Инструкции для выполнения на устройстве терминала, передаваемые в команде MASTERCALL
 */
public enum DeviceInstruction {
    Open((byte)0x01), Read((byte)0x02), Write((byte)0x03), Close((byte)0x04);

    private final byte сode;

    DeviceInstruction(byte сode) {
        this.сode = сode;
    }

    public byte getСode() {
        return сode;
    }

    public static DeviceInstruction getInstruction(byte code) throws Exception {
        for (DeviceInstruction instruction : DeviceInstruction.values()) {
            if (code == instruction.getСode()) {
                return instruction;
            }
        }
        throw new Exception(String.format("Unallowable instruction: %c", code));
    }
}
