diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java index 38fafa8b223..25a75d5b615 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java @@ -395,13 +395,13 @@ public class SimulationServiceImpl implements SimulationService { polarDiagram = null; // TODO: raise a UI message, to inform user about missing polar data resulting in unability to simulate } - double simuStepSeconds = startPosition.getDistance(endPosition).getNauticalMiles() - / ((PolarDiagramGPS) polarDiagram).getAvgSpeed() * 3600 / 100; - Duration simuStep = new MillisecondsDurationImpl(Math.round(simuStepSeconds) * 1000); - SimulationParameters simulationPars = new SimulationParametersImpl(course, startLine, polarDiagram, windField, - simuStep, SailingSimulatorConstants.ModeEvent, true, true, legType); Map paths = null; if (polarDiagram != null) { + double simuStepSeconds = startPosition.getDistance(endPosition).getNauticalMiles() + / ((PolarDiagramGPS) polarDiagram).getAvgSpeed() * 3600 / 100; + Duration simuStep = new MillisecondsDurationImpl(Math.round(simuStepSeconds) * 1000); + SimulationParameters simulationPars = new SimulationParametersImpl(course, startLine, polarDiagram, + windField, simuStep, SailingSimulatorConstants.ModeEvent, true, true, legType); paths = getAllPathsEvenTimed(simulationPars, timeStep.asMillis()); } // prepare simulator-results diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramGPS.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramGPS.java index bf191d6367c..dff311526c0 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramGPS.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramGPS.java @@ -44,7 +44,10 @@ public class PolarDiagramGPS extends PolarDiagramBase { windSpeeds.add(new KnotSpeedImpl(12.0)); windSpeeds.add(new KnotSpeedImpl(14.0)); windSpeeds.add(new KnotSpeedImpl(16.0)); + windSpeeds.add(new KnotSpeedImpl(18.0)); windSpeeds.add(new KnotSpeedImpl(20.0)); + windSpeeds.add(new KnotSpeedImpl(22.0)); + windSpeeds.add(new KnotSpeedImpl(24.0)); // initialize beat-angles and -speeds SpeedWithBearing beatPort; @@ -100,10 +103,6 @@ public class PolarDiagramGPS extends PolarDiagramBase { jibeSpeed.add(null); } } - - if ((beatAngles.size() <= 1)||(beatSpeed.size() <= 1)||(jibeAngles.size() <= 1)||(jibeSpeed.size() <= 1)) { - throw new SparseSimulationDataException(); - } NavigableMap> mapSpeedTable = new TreeMap>(); NavigableMap mapBeatAngles = new TreeMap(); @@ -149,6 +148,10 @@ public class PolarDiagramGPS extends PolarDiagramBase { } } + if ((mapBeatAngles.size() <= 1)||(mapBeatSOG.size() <= 1)||(mapJibeAngles.size() <= 1)||(mapJibeSOG.size() <= 1)) { + throw new SparseSimulationDataException(); + } + super.speedTable = mapSpeedTable; super.beatAngles = mapBeatAngles; super.jibeAngles = mapJibeAngles;