Merge pull request #1436 from ptsongalis/unstable
Feature Request 1373 - Adds a warning when there is no recovery device for a simulation
This commit is contained in:
		
						commit
						1c129e64a1
					
				| @ -1787,6 +1787,7 @@ Warning.PARALLEL_FINS = Too many parallel fins | |||||||
| Warning.SUPERSONIC = Body calculations may not be entirely accurate at supersonic speeds. | Warning.SUPERSONIC = Body calculations may not be entirely accurate at supersonic speeds. | ||||||
| Warning.RECOVERY_LAUNCH_ROD = Recovery device device deployed while on the launch guide. | Warning.RECOVERY_LAUNCH_ROD = Recovery device device deployed while on the launch guide. | ||||||
| Warning.RECOVERY_HIGH_SPEED = Recovery device deployment at high speed | Warning.RECOVERY_HIGH_SPEED = Recovery device deployment at high speed | ||||||
|  | Warning.NO_RECOVERY_DEVICE = No recovery device defined in the simulation. | ||||||
| Warning.TUMBLE_UNDER_THRUST = Stage began to tumble under thrust. | Warning.TUMBLE_UNDER_THRUST = Stage began to tumble under thrust. | ||||||
| Warning.EVENT_AFTER_LANDING = Flight Event occurred after landing:   | Warning.EVENT_AFTER_LANDING = Flight Event occurred after landing:   | ||||||
| Warning.ZERO_LENGTH_BODY = Zero length bodies may not result in accurate simulations. | Warning.ZERO_LENGTH_BODY = Zero length bodies may not result in accurate simulations. | ||||||
|  | |||||||
| @ -375,6 +375,8 @@ public abstract class Warning { | |||||||
| 	////Recovery device opened while motor still burning. | 	////Recovery device opened while motor still burning. | ||||||
| 	public static final Warning RECOVERY_DEPLOYMENT_WHILE_BURNING = new Other(trans.get("Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING")); | 	public static final Warning RECOVERY_DEPLOYMENT_WHILE_BURNING = new Other(trans.get("Warning.RECOVERY_DEPLOYMENT_WHILE_BURNING")); | ||||||
| 	 | 	 | ||||||
|  | 	////No recovery device for simulation | ||||||
|  | 	public static final Warning NO_RECOVERY_DEVICE = new Other(trans.get("Warning.NO_RECOVERY_DEVICE")); | ||||||
| 	 | 	 | ||||||
| 	//// Invalid parameter encountered, ignoring. | 	//// Invalid parameter encountered, ignoring. | ||||||
| 	public static final Warning FILE_INVALID_PARAMETER = new Other(trans.get("Warning.FILE_INVALID_PARAMETER")); | 	public static final Warning FILE_INVALID_PARAMETER = new Other(trans.get("Warning.FILE_INVALID_PARAMETER")); | ||||||
|  | |||||||
| @ -548,6 +548,17 @@ public class FlightConfiguration implements FlightConfigurableParameter<FlightCo | |||||||
| 		updateActiveInstances(); | 		updateActiveInstances(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Return true if rocket has a RecoveryDevice | ||||||
|  | 	 */ | ||||||
|  | 	public boolean hasRecoveryDevice() { | ||||||
|  | 	  if (fcid.hasError()) { | ||||||
|  | 	    return false; | ||||||
|  | 	  } | ||||||
|  | 
 | ||||||
|  | 	  return this.getRocket().hasRecoveryDevice(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	///////////////  Helper methods  /////////////// | 	///////////////  Helper methods  /////////////// | ||||||
| 	 | 	 | ||||||
| 	/** | 	/** | ||||||
|  | |||||||
| @ -427,6 +427,19 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | 	/** | ||||||
|  | 	 * Return true if any of this component's children are a RecoveryDevice | ||||||
|  | 	 */ | ||||||
|  | 	public boolean hasRecoveryDevice() { | ||||||
|  | 	  Iterator<RocketComponent> iterator = this.iterator(); | ||||||
|  | 	  while (iterator.hasNext()) { | ||||||
|  | 	    RocketComponent child = iterator.next(); | ||||||
|  | 	    if (child instanceof RecoveryDevice) { | ||||||
|  | 	      return true; | ||||||
|  | 	    } | ||||||
|  | 	  } | ||||||
|  | 	  return false; | ||||||
|  | 	} | ||||||
| 	 | 	 | ||||||
| 	//////////////  Methods that may not be overridden  //////////// | 	//////////////  Methods that may not be overridden  //////////// | ||||||
| 	 | 	 | ||||||
|  | |||||||
| @ -344,6 +344,11 @@ public class BasicEventSimulationEngine implements SimulationEngine { | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  | 			// Add a warning if there is no recovery device defined. | ||||||
|  | 			if (!currentStatus.getConfiguration().hasRecoveryDevice()) { | ||||||
|  | 				currentStatus.getWarnings().add(Warning.NO_RECOVERY_DEVICE); | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
| 			// Handle event | 			// Handle event | ||||||
| 			log.trace("Handling event " + event);			 | 			log.trace("Handling event " + event);			 | ||||||
| 			switch (event.getType()) { | 			switch (event.getType()) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user