From 90f09d9860e2e2633a8583dcc16d87334089017f Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Tue, 9 Jul 2024 15:16:52 -0600 Subject: [PATCH] In Cdm example don't actually save Cdm to FlightDataBranch until after simulation step. --- core/resources-src/datafiles/openrocket-database | 2 +- .../simulation/extension/example/DampingMoment.java | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/resources-src/datafiles/openrocket-database b/core/resources-src/datafiles/openrocket-database index 93054dc2b..48eb2172d 160000 --- a/core/resources-src/datafiles/openrocket-database +++ b/core/resources-src/datafiles/openrocket-database @@ -1 +1 @@ -Subproject commit 93054dc2b40d5196433b1d91c636cee2e9dda424 +Subproject commit 48eb2172d58c0db6042bd847a782835df056b287 diff --git a/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java b/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java index f64bbadd2..2525e21e3 100644 --- a/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java +++ b/core/src/main/java/info/openrocket/core/simulation/extension/example/DampingMoment.java @@ -25,6 +25,9 @@ import info.openrocket.core.unit.UnitGroup; public class DampingMoment extends AbstractSimulationExtension { private static final Logger log = LoggerFactory.getLogger(DampingMoment.class); + // Keep it internal until time to publish in the FlightDataBranch + private double Cdm = Double.NaN; + // Save it as a FlightDataType private static final FlightDataType cdm = FlightDataType.getType("Damping moment coefficient", "Cdm", UnitGroup.UNITS_COEFFICIENT); @@ -62,11 +65,16 @@ public class DampingMoment extends AbstractSimulationExtension { throws SimulationException { // status.getFlightDataBranch().setValue(cdm, aerodynamicPart + propulsivePart); - status.getFlightDataBranch().setValue(cdm, calculate(status, flightConditions)); + Cdm = calculate(status, flightConditions); return flightConditions; } + @Override + public void postStep(SimulationStatus status) { + status.getFlightDataBranch().setValue(cdm, Cdm); + } + private double calculate(SimulationStatus status, FlightConditions flightConditions) { // Work out the propulsive/jet damping part of the moment.