fixed initialization and removed dome debugging
This commit is contained in:
parent
70842b269f
commit
cfdc59c983
1 changed files with 13 additions and 10 deletions
|
@ -38,7 +38,7 @@ public class TriggerLocation extends Trigger {
|
||||||
InputDouble longitude = new InputDouble(0d, -180d, +180d, 0.000001d, new DecimalFormat("0.000000"));
|
InputDouble longitude = new InputDouble(0d, -180d, +180d, 0.000001d, new DecimalFormat("0.000000"));
|
||||||
InputDouble distance = new InputDouble(200d, 0, 100000, 10d, new DecimalFormat("0"));
|
InputDouble distance = new InputDouble(200d, 0, 100000, 10d, new DecimalFormat("0"));
|
||||||
InputLocationMode modeSelected = new InputLocationMode();
|
InputLocationMode modeSelected = new InputLocationMode();
|
||||||
InputLocationMode.Mode lastMode = new InputLocationMode().getValue();
|
InputLocationMode.Mode lastMode = INSIDE;
|
||||||
|
|
||||||
InputString name = new InputString();
|
InputString name = new InputString();
|
||||||
|
|
||||||
|
@ -48,7 +48,6 @@ public class TriggerLocation extends Trigger {
|
||||||
latitude.setValue(location.getLatitude());
|
latitude.setValue(location.getLatitude());
|
||||||
longitude.setValue(location.getLongitude());
|
longitude.setValue(location.getLongitude());
|
||||||
log.debug(String.format("Grabbed location: %f %f", latitude.getValue(), longitude.getValue()));
|
log.debug(String.format("Grabbed location: %f %f", latitude.getValue(), longitude.getValue()));
|
||||||
log.debug("Location service:" +location.toString());
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -69,6 +68,7 @@ public class TriggerLocation extends Trigger {
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean shouldRun() {
|
public synchronized boolean shouldRun() {
|
||||||
Location location = LocationService.getLastLocation();
|
Location location = LocationService.getLastLocation();
|
||||||
|
log.debug("Entered shouldRun()");
|
||||||
if (location == null)
|
if (location == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -80,9 +80,14 @@ public class TriggerLocation extends Trigger {
|
||||||
a.setLongitude(longitude.getValue());
|
a.setLongitude(longitude.getValue());
|
||||||
double calculatedDistance = location.distanceTo(a);
|
double calculatedDistance = location.distanceTo(a);
|
||||||
//Update lastmode every 5 mins
|
//Update lastmode every 5 mins
|
||||||
lastMode = currentMode(calculatedDistance);
|
|
||||||
log.debug("Last mode is: "+lastMode);
|
log.debug("Last mode: "+lastMode);
|
||||||
log.debug("Wanted mode is: "+modeSelected.getValue());
|
log.debug("Distance wanted: "+distance.getValue());
|
||||||
|
log.debug("Actual distance: "+calculatedDistance);
|
||||||
|
log.debug("Inside: "+(calculatedDistance <= distance.getValue()));
|
||||||
|
log.debug("Outside: "+(calculatedDistance > distance.getValue()));
|
||||||
|
log.debug("Wanted mode: "+modeSelected.getValue());
|
||||||
|
|
||||||
if ((modeSelected.getValue() == INSIDE) && (calculatedDistance <= distance.getValue()) ||
|
if ((modeSelected.getValue() == INSIDE) && (calculatedDistance <= distance.getValue()) ||
|
||||||
((modeSelected.getValue() == OUTSIDE) && (calculatedDistance > distance.getValue())) ||
|
((modeSelected.getValue() == OUTSIDE) && (calculatedDistance > distance.getValue())) ||
|
||||||
((modeSelected.getValue() == GOING_IN) && (calculatedDistance <= distance.getValue()) && (lastMode == OUTSIDE)) ||
|
((modeSelected.getValue() == GOING_IN) && (calculatedDistance <= distance.getValue()) && (lastMode == OUTSIDE)) ||
|
||||||
|
@ -90,8 +95,10 @@ public class TriggerLocation extends Trigger {
|
||||||
) {
|
) {
|
||||||
if (L.isEnabled(L.AUTOMATION))
|
if (L.isEnabled(L.AUTOMATION))
|
||||||
log.debug("Ready for execution: " + friendlyDescription());
|
log.debug("Ready for execution: " + friendlyDescription());
|
||||||
|
lastMode = currentMode(calculatedDistance);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
lastMode = currentMode(calculatedDistance); // current mode will be last mode for the next check
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,21 +118,18 @@ public class TriggerLocation extends Trigger {
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
log.error("Unhandled exception", e);
|
log.error("Unhandled exception", e);
|
||||||
}
|
}
|
||||||
log.debug("JSON "+o.toString());
|
|
||||||
return o.toString();
|
return o.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
Trigger fromJSON(String data) {
|
Trigger fromJSON(String data) {
|
||||||
try {
|
try {
|
||||||
log.debug("fromJSON: "+data);
|
|
||||||
JSONObject d = new JSONObject(data);
|
JSONObject d = new JSONObject(data);
|
||||||
latitude.setValue(JsonHelper.safeGetDouble(d, "latitude"));
|
latitude.setValue(JsonHelper.safeGetDouble(d, "latitude"));
|
||||||
longitude.setValue(JsonHelper.safeGetDouble(d, "longitude"));
|
longitude.setValue(JsonHelper.safeGetDouble(d, "longitude"));
|
||||||
distance.setValue(JsonHelper.safeGetDouble(d, "distance"));
|
distance.setValue(JsonHelper.safeGetDouble(d, "distance"));
|
||||||
name.setValue(JsonHelper.safeGetString(d, "name"));
|
name.setValue(JsonHelper.safeGetString(d, "name"));
|
||||||
modeSelected.setValue(InputLocationMode.Mode.valueOf(JsonHelper.safeGetString(d, "mode")));
|
modeSelected.setValue(InputLocationMode.Mode.valueOf(JsonHelper.safeGetString(d, "mode")));
|
||||||
lastMode = modeSelected.getValue(); // load the asked mode as default
|
|
||||||
lastRun = JsonHelper.safeGetLong(d, "lastRun");
|
lastRun = JsonHelper.safeGetLong(d, "lastRun");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Unhandled exception", e);
|
log.error("Unhandled exception", e);
|
||||||
|
@ -194,10 +198,9 @@ public class TriggerLocation extends Trigger {
|
||||||
|
|
||||||
// Method to return the actual mode based on the current distance
|
// Method to return the actual mode based on the current distance
|
||||||
InputLocationMode.Mode currentMode(double currentDistance){
|
InputLocationMode.Mode currentMode(double currentDistance){
|
||||||
log.debug("Updating current mode!");
|
|
||||||
if ( currentDistance <= this.distance.getValue() )
|
if ( currentDistance <= this.distance.getValue() )
|
||||||
return INSIDE;
|
return INSIDE;
|
||||||
else
|
else
|
||||||
return InputLocationMode.Mode.OUTSIDE;
|
return OUTSIDE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue