Remove ReadStateCommand, all state will be return through the PumpState field on CommandResult, so it's passed back after every command.

This commit is contained in:
Johannes Mockenhaupt 2017-07-15 18:35:41 +02:00
parent ec6491fcb7
commit f251427d1b
No known key found for this signature in database
GPG key ID: 9E1EA6AF7BBBB0D1

View file

@ -1,48 +0,0 @@
package de.jotomo.ruffyscripter.commands;
import org.monkey.d.ruffy.ruffy.driver.display.Menu;
import org.monkey.d.ruffy.ruffy.driver.display.MenuAttribute;
import org.monkey.d.ruffy.ruffy.driver.display.MenuType;
import org.monkey.d.ruffy.ruffy.driver.display.menu.MenuTime;
import de.jotomo.ruffyscripter.RuffyScripter;
/**
* Reads the status displayed in the main menu. Usually TBR state or warning/error if any.
* This command is 'read-only', no buttons are pushed and so no vibrations are caused.
*/
public class ReadStateCommand implements Command {
@Override
public CommandResult execute(RuffyScripter scripter) {
try {
PumpState state = new PumpState();
Menu displayedMenu = scripter.currentMenu;
MenuType displayedMenuType = displayedMenu.getType();
if (displayedMenuType == MenuType.MAIN_MENU) {
Double tbrPercentage = (Double) displayedMenu.getAttribute(MenuAttribute.TBR);
if (tbrPercentage != 100) {
state.tbrActive = true;
Double displayedTbr = (Double) scripter.currentMenu.getAttribute(MenuAttribute.TBR);
state.tbrPercent = displayedTbr.intValue();
MenuTime durationMenuTime = ((MenuTime) displayedMenu.getAttribute(MenuAttribute.RUNTIME));
state.tbrRemainingDuration = durationMenuTime.getHour() * 60 + durationMenuTime.getMinute();
}
} else if (displayedMenuType == MenuType.WARNING_OR_ERROR) {
state.isErrorOrWarning = true;
state.errorMsg = (String) displayedMenu.getAttribute(MenuAttribute.MESSAGE);
} else {
throw new CommandException().success(false).message("Neither MAIN_MENU nor WARNING_OR_ERROR is displayed, but " + displayedMenuType);
}
return new CommandResult().success(true).enacted(false).state(state);
} catch (CommandException e) {
return e.toCommandResult();
}
}
@Override
public String toString() {
return "ReadStateCommand{}";
}
}