package org.openmuc.framework.driver.iec60870.settings; import org.openmuc.framework.config.ArgumentSyntaxException; public class DeviceSettings extends GenericSetting { protected int message_fragment_timeout = -1; protected int cot_field_length = -1; protected int common_address_field_length = -1; protected int ioa_field_length = -1; protected int max_time_no_ack_received = -1; protected int max_time_no_ack_sent = -1; protected int max_idle_time = -1; protected int max_unconfirmed_ipdus_received = -1; protected int stardt_con_timeout = 5000; public static enum Option implements OptionI { MESSAGE_FRAGMENT_TIMEOUT("mft", Integer.class, false), COT_FIELD_LENGTH("cfl", Integer.class, false), COMMON_ADDRESS_FIELD_LENGTH("cafl", Integer.class, false), IOA_FIELD_LENGTH("ifl", Integer.class, false), MAX_TIME_NO_ACK_RECEIVED("mtnar", Integer.class, false), MAX_TIME_NO_ACK_SENT("mtnas", Integer.class, false), MAX_IDLE_TIME("mit", Integer.class, false), MAX_UNCONFIRMED_IPDUS_RECEIVED("mupr", Integer.class, false), STARDT_CON_TIMEOUT("sct", Integer.class, false); private String prefix; private Class<?> type; private boolean mandatory; private Option(String prefix, Class<?> type, boolean mandatory) { this.prefix = prefix; this.type = type; this.mandatory = mandatory; } @Override public String prefix() { return this.prefix; } @Override public Class<?> type() { return this.type; } @Override public boolean mandatory() { return this.mandatory; } } protected Class<? extends Enum<?>> option() { return Option.class; } public DeviceSettings(String settings) throws ArgumentSyntaxException { parseFields(settings, Option.class); } public int messageFragmentTimeout() { return message_fragment_timeout; } public int cotFieldLength() { return cot_field_length; } public int commonAddressFieldLength() { return common_address_field_length; } public int ioaFieldLength() { return ioa_field_length; } public int maxTimeNoAckReceived() { return max_time_no_ack_received; } public int maxTimeNoAckSent() { return max_time_no_ack_sent; } public int maxIdleTime() { return max_idle_time; } public int maxUnconfirmedIPdusReceived() { return max_unconfirmed_ipdus_received; } public int stardtConTimeout() { return stardt_con_timeout; } }