2052 Commits

Author SHA1 Message Date
Kevin Ruland
f121def910 Significantly modified management of motor information provided by
OpenRocket.  At build time, it will utilize the Thrustcurve.org xml api
to download the current information (curve files and supplemental
information).  OpenRocket uses the supplemental information to populate
case-info, propellant type, availability as well as correct diameters
and length. Modified motor search dialog to hide unavailable motors and
show case-info.
2016-10-10 17:27:25 -05:00
kruland2607
f5e3baa003 Merge pull request #273 from teyrana/massfix
Motor mass calculation fixes
2016-09-15 17:48:22 -05:00
Daniel_M_Williams
04c0914d0a [bugfix] Overhauled MassCalculator Methods.
- Rocket total mass is split into 'dryMass' and 'propellantMass'
    -- each mass type has a corresponding calculation method in MassCalculator
  - Calculating Inertias and Center-of-Mass FOR MOTORS assume:
    - time-invariant x-coordinate
    - time-decreasing density
  - mass correctly tracks propellant usage, as measured by thrustCurves
  - elimated MassCalcType enum: was not actually solving a problem.
     - simply use motorTime: 0 for launch Double.MAX_VALUE for burnout
     - NO_MOTORS is represented by a configuration without attached motors
       -- try:  "rocket.setSelectedConfiguration( rocket.getEmptyConfiguration())"
     - 'dry mass' vs 'total mass': 90% of the time, a caller wanted 'total mass'
     - total_mass = dry_mass + propellant_mass
     - mass @ simulation time wasn't represented by the enum, had existing overloads anyway
  - get vs calculate methods:
    -- gets revalidate the cache, then retreive specific information
    -- calculate simple calculate the desired information, and ignore the cache.
       --- I'm particularly confident about cache reliability:
           particularly as it doesn't account for changing time during simulation.
  - reduced / simplified debugging messages
2016-07-01 16:26:02 -04:00
Daniel_M_Williams
56463b02fc [Bugfix] ThrustCurve motor interpolation fixed. 2016-06-25 11:11:28 -04:00
Daniel_M_Williams
7b2e195392 [Cleanup] Cleaned up the ThrustCurveMotor class Interface
- Cleaned up the ThrustCurveMotor api interface
  -- Converted 'getTimePoints().length' -> 'getSampleSize()'
  -- Unified ThrustCurveMotor gets to the form getXXXX(double motorTime)
  -- Restricted access for several methods from public -> protected
- Updated ThrustCurveMotorTest.java
2016-06-25 11:09:45 -04:00
kruland2607
14860ee51c Merge pull request #270 from kruland2607/unstable
Use actual burn time for determination of burnout event.  Compute
2016-06-07 20:58:23 -05:00
Kevin Ruland
a5b083ade7 Use actual burn time for determination of burnout event. Compute
average thrust while simulating.
2016-06-07 20:54:10 -05:00
kruland2607
7e68a01780 Merge pull request #269 from teyrana/configfix
Moved 'no motors' text to translation system.
2016-05-23 14:16:07 -05:00
Daniel_M_Williams
a6990dddc5 [Bugfix] Fixed additional Translation, Configuration Issues
- Fixed translation messages
   - FlightConfiguration, MotorConfiguration
   - correctly display under debug & production
- Fixed exception throw when adding empty-MotorConfiguration to a FlightConfig
2016-05-20 18:46:47 -04:00
Daniel_M_Williams
2ee7464038 [Bugfix] FlightConfiguration now uses i8n for its empty-motors description 2016-04-27 21:36:31 -04:00
kruland2607
1a3b5efb74 Merge pull request #268 from teyrana/configfix
Multiple Configuration Fixes
2016-04-26 09:30:13 -05:00
Daniel_M_Williams
5f9eb87fde [Bugfix] resolved classpath errors in Eclipse 2016-04-24 14:04:20 -04:00
Daniel_M_Williams
a94e14c2a6 [Bugfix] Main Window Config chooser now updates for new Configurations
-
2016-04-24 14:04:20 -04:00
Daniel_M_Williams
915d401370 [Bugfix] Configuration Selection ComboBox now correctly updates
- adjusted some type cast warnings
- Added 'ignore if new==current' paths in rocket configuration functions
  -- These if paths break potential infinite loops
- added update code for the main-window selected configuration dropdown
  -- now updates when the currently-selected configuration is removed.
2016-04-24 14:04:20 -04:00
Daniel_M_Williams
3362c03279 [bugfix] Fixed several FlightConfiguration bugs
- adjusted some class member names to be more descriptive
- When a component lacks an entry for the currently selected FC
  -- Code would sometimes fail to create a new motor entry
- removing a flight configuration from a rocket
  -- removes all component configurations tied to that configuration Id
2016-04-24 14:04:20 -04:00
Daniel_M_Williams
f7090afd79 [bugfix] Removing the selected configuration selects the default 2016-04-24 14:04:20 -04:00
Daniel_M_Williams
b02e164bce [bugfix] RocketPanel configuration list now updates changes
- Pulled JComboBoxModel<FlightConfiguration> into its own class: ConfigurationModel
  -- removed Rocket.toConfigArray() --> getFlightConfigurationByIndex(int,bool)
-Refactored document.getDefaultConfiguration -> getSelected...
  -- because that's what it does. Default is a different thing.
-minor: minor spelling errors and unused fields/functions
2016-04-24 14:04:15 -04:00
Daniel_M_Williams
df328c1555 [Bugfix] Rolled back the selected=default => new config 'feature' 2016-04-24 14:03:48 -04:00
Daniel_M_Williams
fedda3278e [Refine] Refining the FlightConfiguration UI behavior
- the selected configuration in a rocket is now specified by id instead of instance
- tighted up Configuration UI behavior - operations should now start from selected configuration row
2016-04-24 14:03:48 -04:00
Daniel_M_Williams
345d5952c6 [Refine] Copying a FlightConfiguration in the UI now updates correctly.
- involved adjusting clone() -> copy(...) in FlightConfigurableParameters
2016-04-24 14:03:48 -04:00
Daniel_M_Williams
d7faf0d273 [Refine] Refining Configuration Fixes
- Rocket.getSelectedConfiguration will now create a new
  configuration if only the default config exists
  -- added additional unit tests for this behavior in: FLightConfigurationTest
- added test for saving ver 1.08 files to OpenRocketSaverTest
- Converted : "private static final long serialVersionUID ..." declarations to:
  "@SuppressWarnings("serial")"
- cleaned up some other random errors:
  -- tightened excessive permission modifiers -- public ->
  -- change some methods from 'public' to '/*package-local*/'
2016-04-24 14:02:32 -04:00
Daniel_M_Williams
5b687b5bcc [Bugfix] Fixes a few configuration bugs.
- Fixes out-of-date javadoc comments
- Fixes FlightConfigurationTest
  -- fixes TestRocket instantiation.
- Simplified FlightConfiguration class function API
-
2016-04-24 14:02:29 -04:00
Daniel_M_Williams
9c49b6336a [bugfix] Added back in the default no-motor configuration. 2016-04-06 22:33:15 -04:00
kruland2607
f2155f0e39 Merge pull request #266 from teyrana/testfix
2 Small fixes to address test suite failures
2016-04-06 16:52:18 -05:00
Daniel_M_Williams
e36aee38d5 [Bugfix] Partial fix for Swing Tests
-Changed default Motor Ignition event to AUTOMATIC
-enabled swing-test path under intellij
-fixed some simple compile errors in swing/test ... IntegrationTest
2016-04-03 15:25:26 -04:00
Daniel_M_Williams
366cd6473f [Bugfix] Updated verification numbers in BarrowmanCalculatorTest 2016-04-03 12:34:42 -04:00
Kevin Ruland
4b4a7c74fc Merge remote-tracking branch 'upstream/master' into unstable
Conflicts:
	swing/src/net/sf/openrocket/gui/figureelements/RocketInfo.java
2016-04-02 16:49:15 -05:00
kruland2607
d565a776be Merge pull request #265 from wcravens/update-jetbrains-misc-file
Update IntelliJ misc.xml file
2016-03-30 10:03:26 -05:00
Wes Cravens
099fb04c4f Update IntelliJ misc file (probably due to a version upgrade) 2016-03-25 19:15:35 -05:00
Wes Cravens
95a0b41d23 Merge branch 'master' of github.com:openrocket/openrocket 2016-03-25 19:10:36 -05:00
kruland2607
512f572879 Merge pull request #259 from wcravens/mass-info-both-with-and-without-motor
Mass info both with and without motor - Includes IntelliJ CE Configuration files
2016-03-24 17:36:30 -05:00
Kevin Ruland
5a79c210cd Fix the test for recovery deplyed under thrust. 2016-03-24 17:34:13 -05:00
kruland2607
3efce7e8c5 Merge pull request #6 from teyrana/simfix
Simfix - Fixes Simulation accuracy back to 15.03 standards
2016-03-24 17:19:35 -05:00
Wes Cravens
d2d453a953 Merge branch 'intellij-ce-settings' into mass-info-both-with-and-without-motor 2016-03-23 21:35:08 -05:00
Wes Cravens
1c4bf57a0c Fix massWithoutMotors: Put back changes lost while tinkering with IntelliJ 2016-03-23 21:34:52 -05:00
Wes Cravens
2d5dfc0909 Some random IntelliJ config it decided to save 2016-03-23 21:34:07 -05:00
Wes Cravens
9ffcad37c8 Merge branch 'mass-info-both-with-and-without-motor' into intellij-ce-settings 2016-03-23 21:26:50 -05:00
Wes Cravens
b8c5604433 Add SerializeMotors run configuration 2016-03-23 21:26:16 -05:00
Wes Cravens
e2efefb296 IntelliJ CE integration and build 2016-03-23 17:15:26 -05:00
Wes Cravens
74d636bf33 Add concurrent mass info for both with and without motor configuration 2016-03-23 13:23:40 -05:00
kruland2607
a2bec89054 Merge pull request #5 from teyrana/massfix
MassCalculator bug fix branch
2016-03-18 10:03:19 -05:00
Daniel_M_Williams
a75b1816a4 [Bugfix] Fixed Motor Ignition Default Loading
- added MotorConfiguration constructor which takes a template
  -- this allows copy-constructing from the default
  -- removed 'name' field: instead, call 'to?Description()'
- condensed & refactored a few debug methods.
2016-03-11 19:17:02 -05:00
Daniel_M_Williams
d0cb8ab99f [Bugfix / Refactor] Further Simulation Bugfixes / Streamlining
- Fixed bugs in the simulation event handling:
  -- removed extraneous BURNOUT checks
  -- added MotorClusterState.burnOut(..) update calls on BURNOUT event
  -- added MotorClusterState.expend(..) update calls on EJECTION_CHARGE event
- MotorInstanceId -> MotorConfigurationId (to reflect actual usage)
  -- removed name field (unnecessary)
- changed FlightConfiguration behavior to cache ALL motors, and return active motors as requested
  -- updated corresponding active-motor-list updating through to the simulation layers
2016-03-11 19:16:41 -05:00
Daniel_M_Williams
f6d9ad0487 [Bugfix / Refactor] Fixing simulation bugs and oddities.
- *Adjusted event handling in BasicEventSimulationEngine*
  -- combined redundant event-handling for IGNITION FlightEvent
  -- adjusted parameters for throwing IGNITION FlightEvents
- Added validation method internal to FlightEvent class.
  -- documents assumptions about classes are expected for what types of flight events.
- renamed MotorState -> MotorSimulation -> MotorClusterState
- renamed MotorState enums -> ThrustState
- Adjusted MotorConfigurations to be init-linked to a mount, and FCID
  -- these are final member fields, and required for construction. And immutable.
- moved IgnitionEvent to motor package
- Adjusted MotorInstanceId to represent a motorCluster key
  -- wraps a UUID, and uniquely keyed to its: mount, FCID
- fixed AxialStage methods isLaunchStage() and getPreviousStage()
- added methods to MotorMount interface to reduce extraneous, always-true casts
- various miscellaneous fixes to reflect method changes
- various test fixes
  -- added test to verify 'getPreviousStage()' method
2016-03-11 19:13:28 -05:00
Daniel_M_Williams
28689825a4 [Refactor ] Refactored motor state in preparation for debugging the simulation itself
- Created MotorState as an enum describing discrete states a motor may be in
- moved ThrustCurveMotorState info back into MotorSimulation
  -- MotorSimulation will be used by the simulation code.
  -- tracks simulation-time info, such as event times, and current state ( <MotorState> )
- MotorConfiguration no longer have any knowledge about their simulation info
- moved functionality (BUT NOT STATE) into ThrustCurveMotor
  -- can query about thrust(t), mass(t), cgx(t)
2016-03-11 19:13:28 -05:00
Daniel_M_Williams
438f58c438 [Bugfix] Fixed MassCalculator Issues - Instancing, CGx & CM Override
- Fixed Bug in MassCalculator
  -- demonstrated by MassCalculatorTest.testBoosterTotalCM() et al.
  -- errors: 1) under-counts instanced children
             2) erroneously required component have children before instancing mass
  -- N.B. This method is ripe for refactoring, to make it MUCH cleaner....
- Updated numbers on MassCalculator Unit Tests
- Added Test for motor configuration multiplicity (FlightConfigurationTest)
2016-03-11 19:13:23 -05:00
Daniel_M_Williams
7029dd0c3c [Rename] Changed variable names for clarity. 2016-03-11 18:42:32 -05:00
Daniel_M_Williams
2215d41cc2 [Test] added Transition Test file. 2016-03-11 17:31:33 -05:00
kruland2607
b2489f16ec Merge pull request #3 from teyrana/unstable
Fixed Simulation Id loading (and other bugfixes).
2016-01-31 07:34:33 -06:00
Daniel_M_Williams
4e64d817d1 [Bugfix] Added unit tests for Transition Shapes
- and refactored member names a bit
2016-01-24 21:37:13 -05:00