package org.envirocar.obd.commands.request.elm;
import org.envirocar.obd.commands.request.BasicCommand;
public class ConfigurationCommand implements BasicCommand {
private final String output;
private final boolean awaitsResult;
private final Instance instance;
public ConfigurationCommand(String output, Instance i, boolean awaitsResult) {
this.output = output;
this.awaitsResult = awaitsResult;
this.instance = i;
}
@Override
public byte[] getOutputBytes() {
return this.output.getBytes();
}
@Override
public boolean awaitsResults() {
return this.awaitsResult;
}
public Instance getInstance() {
return instance;
}
public static ConfigurationCommand instance(Instance i) {
switch (i) {
case DEFAULTS:
return new ConfigurationCommand("AT D", i, true);
case ECHO_OFF:
return new ConfigurationCommand("AT E0", i, true);
case HEADERS_ON:
return new ConfigurationCommand("AT H1", i, true);
case HEADERS_OFF:
return new ConfigurationCommand("AT H0", i, true);
case LINE_FEED_OFF:
return new ConfigurationCommand("AT L0", i, true);
case MEMORY_OFF:
return new ConfigurationCommand("AT M0", i, true);
case RESET:
return new ConfigurationCommand("AT Z", i, false);
case SELECT_AUTO_PROTOCOL:
return new ConfigurationCommand("AT SP 0", i, true);
case SPACES_OFF:
return new ConfigurationCommand("AT S0", i, true);
}
return null;
}
public enum Instance {
DEFAULTS,
ECHO_OFF,
HEADERS_ON,
HEADERS_OFF,
LINE_FEED_OFF,
MEMORY_OFF,
RESET,
SELECT_AUTO_PROTOCOL,
TIMEOUT,
SPACES_OFF
}
}