Don't set a warning if recovery device is deployed (for instance, due to apogee detect) while motor is coasting.
Background: a motor that has burned out can be in one of two states: DELAYING (the delay charge has not yet fired) or SPENT (either the delay charge, if any, has fired or there was no delay charge). The existing SimulationStatus:getActiveMotors() method returned a list of motors that were active for the stage, and which were not SPENT. The test for the warning redudantly tested for a SPENT motor, still didn't test for a DELAYING motr, and consequently set the warning. This PR (1) adds a boolean MotorClusterStatus:isDelaying() method, analogous to the existing state test methods (2) modifies SimulationStatus.java:getActiveMotors() to return all the motors, not just the ones that aren't SPENT. This is to improve consistency with FlightConfiguration:getActiveMotors(), and to make for a more consistent usage between the two calls to the method. (3) adds !isDelaying() to the test for the warning.
This commit is contained in:
parent
9ca6b0be1a
commit
724cd3f5dc
@ -466,7 +466,7 @@ public class BasicEventSimulationEngine implements SimulationEngine {
|
||||
|
||||
// Check whether any motor in the active stages is active anymore
|
||||
for (MotorClusterState state : currentStatus.getActiveMotors() ) {
|
||||
if ( state.isSpent() ) {
|
||||
if (state.isDelaying() || state.isSpent()) {
|
||||
continue;
|
||||
}
|
||||
currentStatus.getWarnings().add(Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING);
|
||||
|
@ -162,6 +162,10 @@ public class MotorClusterState {
|
||||
return ! isPlugged();
|
||||
}
|
||||
|
||||
public boolean isDelaying() {
|
||||
return currentState == ThrustState.DELAYING;
|
||||
}
|
||||
|
||||
public boolean isSpent(){
|
||||
return currentState == ThrustState.SPENT;
|
||||
}
|
||||
@ -196,4 +200,4 @@ public class MotorClusterState {
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ public class SimulationStatus implements Monitorable {
|
||||
public Collection<MotorClusterState> getActiveMotors() {
|
||||
List<MotorClusterState> activeList = new ArrayList<MotorClusterState>();
|
||||
for( MotorClusterState state: this.motorStateList ){
|
||||
if(( ! state.isSpent()) && (this.configuration.isComponentActive( state.getMount()))){
|
||||
if (this.configuration.isComponentActive( state.getMount() {
|
||||
activeList.add( state );
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user