package de.bse.prgm.cmd.storage;
import de.bse.prgm.err.runtime.CannotChangeAConstantValueRuntimeError;
import de.bse.run.app.IConsole;
import de.bse.util.ParserException;
import de.bse.vm.Machine;
/**
* Reads a value on a location in EEPROM and stores it into a variable.
*
* @author Elias Groll
* @version 2.15
*/
public class Read extends AccessCommand {
public Read(String locationString, String varString) {
super(locationString, varString);
}
public void execute(Machine machine, IConsole console) {
initVars(machine, console);
try {
var.setValue(machine.getEeprom().read(location.getValue()));
} catch (ParserException e) {
machine.getProgram().addError(new CannotChangeAConstantValueRuntimeError(varString));
} catch (NullPointerException e) {
// nothing to do here, machine already added a Error
}
}
public String infoMsg() {
return "[Info]Read from \"" + locationString + "\" and store it at \"" + varString
+ "\" in EEPROM";
}
}