package senscript;
import device.SensorNode;
import markers.Routes;
import wisen_simulation.WisenSimulation;
public class Command_ROUTE extends Command {
protected String arg1 = "";
private boolean once = false;
public Command_ROUTE(SensorNode sensor, String arg1) {
this.sensor = sensor ;
this.arg1 = arg1 ;
}
@Override
public double execute() {
String route2 = sensor.getScript().getVariableValue(arg1);
String gpsFileName = sensor.getGPSFileName();
String route1 = gpsFileName.substring(0, gpsFileName.indexOf('.'));
int closeIdx = Routes.closestIndex(sensor.getRouteIndex(), Routes.getRouteByName(route1), Routes.getRouteByName(route2));
int n = Routes.numberOfClosestNodes(sensor.getRouteIndex(), Routes.getRouteByName(route1), closeIdx, Routes.getRouteByName(route2));
System.out.println(WisenSimulation.time + " "+sensor.getRoute());
if(!once) {
System.out.println(WisenSimulation.time + " "+n);
executing = true;
once = true;
return n;
}
System.out.println(WisenSimulation.time + " "+sensor.getRoute());
System.out.println("-------");
executing = false;
sensor.setRoute(route2);
sensor.loadRouteFromFile();
sensor.setRouteIndex(closeIdx);
return 0 ;
}
@Override
public String toString() {
return "ROUTE";
}
}