From 3513cb9bba58f08b104490abffa0469927684f9b Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Mon, 29 Jan 2024 08:45:25 -0700 Subject: [PATCH 1/2] log placing events in event queue. Don't do it for ALTITUDE events, since those would dominate the log. --- .../net/sf/openrocket/simulation/SimulationStatus.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/net/sf/openrocket/simulation/SimulationStatus.java b/core/src/net/sf/openrocket/simulation/SimulationStatus.java index 1d8f230e3..0aba10023 100644 --- a/core/src/net/sf/openrocket/simulation/SimulationStatus.java +++ b/core/src/net/sf/openrocket/simulation/SimulationStatus.java @@ -7,6 +7,9 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import net.sf.openrocket.aerodynamics.FlightConditions; import net.sf.openrocket.simulation.exception.SimulationException; import net.sf.openrocket.simulation.listeners.SimulationListenerHelper; @@ -32,6 +35,8 @@ import net.sf.openrocket.util.WorldCoordinate; */ public class SimulationStatus implements Monitorable { + + private static final Logger log = LoggerFactory.getLogger(BasicEventSimulationEngine.class); private SimulationConditions simulationConditions; private FlightConfiguration configuration; @@ -560,6 +565,9 @@ public class SimulationStatus implements Monitorable { */ public void addEvent(FlightEvent event) throws SimulationException { if (SimulationListenerHelper.fireAddFlightEvent(this, event)) { + if (event.getType() != FlightEvent.Type.ALTITUDE) { + log.trace("Adding event to queue: " + event); + } getEventQueue().add(event); } } From 56bf5e1af8c6877ba29ef5073ff50ebe1c857c40 Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Mon, 29 Jan 2024 09:13:00 -0700 Subject: [PATCH 2/2] Don't add delay time in again when queueing upper stage ignition event --- .../simulation/BasicEventSimulationEngine.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java index de9e0ca17..232da2090 100644 --- a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java +++ b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java @@ -321,22 +321,15 @@ public class BasicEventSimulationEngine implements SimulationEngine { (event.getType() != FlightEvent.Type.ALTITUDE) && (event.getType() != FlightEvent.Type.SIMULATION_END)) currentStatus.getWarnings().add(new Warning.EventAfterLanding(event)); - + // Check for motor ignition events, add ignition events to queue for (MotorClusterState state : currentStatus.getActiveMotors() ){ if (state.testForIgnition(currentStatus.getConfiguration(), event)) { - MotorClusterState sourceState = (MotorClusterState) event.getData(); - double ignitionDelay = 0; - if (event.getType() == FlightEvent.Type.BURNOUT) - ignitionDelay = 0; - else if (event.getType() == FlightEvent.Type.EJECTION_CHARGE) - ignitionDelay = sourceState.getEjectionDelay(); - + MotorMount mount = state.getMount(); MotorConfiguration motorInstance = mount.getMotorConfig(this.fcid); - ignitionDelay += motorInstance.getIgnitionDelay(); - final double ignitionTime = currentStatus.getSimulationTime() + ignitionDelay; + final double ignitionTime = currentStatus.getSimulationTime() + motorInstance.getIgnitionDelay(); // TODO: this event seems to get enqueue'd multiple times ... log.info("Queueing Ignition Event for: "+state.toDescription()+" @: "+ignitionTime);