package senscript; import arduino.Bracket; import device.SensorNode; import wisen_simulation.SimLog; public class Command_WAIT extends Command { protected String arg = ""; public Command_WAIT(SensorNode sensor) { this.sensor = sensor ; } public Command_WAIT(SensorNode sensor, String arg) { this.sensor = sensor ; this.arg = arg; } @Override public double execute() { double event = 0 ; if (sensor.dataAvailable()) { SimLog.add("S" + sensor.getId() + " Buffer available, exit waiting."); sensor.getScript().setWaiting(false); return 0 ; } else { SimLog.add("S" + sensor.getId() + " is waiting for data ..."); sensor.getScript().setWaiting(true); if (arg.equals("")) event = Double.MAX_VALUE; else { event = (Double.parseDouble(sensor.getScript().getVariableValue(arg))/1000.); } } return event; } @Override public boolean isWait() { return true; } @Override public String getArduinoForm() { Bracket.n++; Bracket.n++; String s = ""; s += "\t" + "xbee.readPacket("+arg+");\n"; s += "\tif (xbee.getResponse().isAvailable()) {\n"; s += "\tif (xbee.getResponse().getApiId() == RX_64_RESPONSE) {\n"; return s ; } @Override public String toString() { return "WAIT"; } @Override public String finishMessage() { return ("S" + sensor.getId() + " has finished waiting."); } }