Inhibit reignition of already ignited motor
If a later stage motor's ignition event is triggered by burnout of earlier stage motors, an ignition even gets queued for every burnout in the earlier stage. This checks to see if a motor is already burning when an ignition event is processed for it, and ignores the event if so.
This commit is contained in:
parent
ede9dfe700
commit
a4fdc333ad
@ -397,6 +397,12 @@ public class BasicEventSimulationEngine implements SimulationEngine {
|
|||||||
case IGNITION: {
|
case IGNITION: {
|
||||||
MotorClusterState motorState = (MotorClusterState) event.getData();
|
MotorClusterState motorState = (MotorClusterState) event.getData();
|
||||||
|
|
||||||
|
// If there are multiple ignition events (as is the case if the preceding stage has several burnout events, for instance)
|
||||||
|
// We get multiple ignition events for the upper stage motor. Ignore are all after the first.
|
||||||
|
if (motorState.getIgnitionTime() < currentStatus.getSimulationTime()) {
|
||||||
|
log.info("Ignoring motor " +motorState.toDescription()+" ignition event @"+currentStatus.getSimulationTime());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
log.info(" Igniting motor: "+motorState.toDescription()+" @"+currentStatus.getSimulationTime());
|
log.info(" Igniting motor: "+motorState.toDescription()+" @"+currentStatus.getSimulationTime());
|
||||||
motorState.ignite( event.getTime());
|
motorState.ignite( event.getTime());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user