1465 Commits

Author SHA1 Message Date
Wes Cravens
09fca29aab
Merge pull request #449 from JoePfeiffer/fix-staging
Fix staging
2018-09-29 14:57:17 -05:00
Wes Cravens
56eabdc5ac
Merge pull request #447 from teyrana/alpha8
Alpha8 - Bugfix Collection
2018-09-29 14:57:05 -05:00
Wes Cravens
6fc5a2861b
Merge pull request #444 from JoePfeiffer/fix-stage-ignition
Fix stage ignition
2018-09-29 14:56:51 -05:00
JoePfeiffer
cfa49b0655 more fixes to stage ignition: now also pays attention to ignition
type and additional delay
2018-09-29 13:01:00 -06:00
JoePfeiffer
32cf8f1776 oops, didn't want to keep the extra debugging log entries 2018-09-25 08:53:09 -06:00
JoePfeiffer
dfe7e411d9 Correct active stages after STAGE_SEPARATION event 2018-09-25 08:39:55 -06:00
JoePfeiffer
7d4c73f32b Closes 443
When the events STAGE_SEPARATION and EJECTION_CHARGE are both triggered by
BURNOUT, both events occur simultaneously and either can be inserted
in EventQueue first.  If STAGE_SEPARATION is inserted first, the
filter in BasicEventSimulationEngine.java ignoring events from
components that are no longer attached to the rocket drops ignores
EJECTION_CHARGE.  If second stage IGNITION is triggered by
EJECTION_CHARGE it is filtered out, and second stage IGNITION fails to
happen.  This can be seen in the following snippet of a log file:

10592          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=BURNOUT,time=1.03,source=Body tube,data=B4]
10592          DEBUG [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine -  detected Motor Burnout for motor B4@ 1.03  on stage 1: Stage
10592          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=STAGE_SEPARATION,time=1.03,source=Stage,data=null]
10592          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=EJECTION_CHARGE,time=1.0311458852237796,source=Stage,data=B4], FlightEvent[type=ALTITUDE,time=1.0311458852237796,source=Rocket,data=[25.502739793351193;25.603323566419885]]]
10592          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=STAGE_SEPARATION,time=1.03,source=Stage,data=null]
10592          INFO  [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - ==>> @ 1.03115; from Branch: Sustainer ---- Branching: Stage ----

10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=EJECTION_CHARGE,time=1.0311458852237796,source=Stage,data=B4]
10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=ALTITUDE,time=1.0311458852237796,source=Rocket,data=[25.502739793351193;25.603323566419885]]]
10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Ignoring event from unattached componenent
10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=ALTITUDE,time=1.0311458852237796,source=Rocket,data=[25.502739793351193;25.603323566419885]]
10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = []
10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=ALTITUDE,time=1.0311458852237796,source=Rocket,data=[25.502739793351193;25.603323566419885]]
10593          TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Taking simulation step at t=1.0311458852237796 altitude 25.603323566419885
10593          TRACE [pool-4-thread-1] n.s.o.s.RK4SimulationStepper - Too small time step 0.0014030377018961126 (limiting factor 5), using 0.0025 instead.
10593          TRACE [pool-4-thread-1] n.s.o.s.RK4SimulationStepper - Thrust = 0.0

Note here that there was no IGNITION in the sustainer branch, and the
Thrust is 0.0 at the end of the snippet.

Moving the test for ignition events ahead of the filter assures the
IGNITION is scheduled, as seen in this log file snippet:

8994           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=BURNOUT,time=1.03,source=Body tube,data=B4]
8994           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=ALTITUDE,time=1.0302951181945657,source=Rocket,data=[25.478255057184594;25.5788943164009]]]
8994           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=BURNOUT,time=1.03,source=Body tube,data=B4]
8994           DEBUG [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine -  detected Motor Burnout for motor B4@ 1.03  on stage 1: Stage
8994           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=STAGE_SEPARATION,time=1.03,source=Stage,data=null]
8994           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=EJECTION_CHARGE,time=1.0302951181945657,source=Stage,data=B4], FlightEvent[type=ALTITUDE,time=1.0302951181945657,source=Rocket,data=[25.478255057184594;25.5788943164009]]]
8994           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=STAGE_SEPARATION,time=1.03,source=Stage,data=null]
8995           INFO  [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - ==>> @ 1.03030; from Branch: Sustainer ---- Branching: Stage ----

8995           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=EJECTION_CHARGE,time=1.0302951181945657,source=Stage,data=B4]
8995           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=ALTITUDE,time=1.0302951181945657,source=Rocket,data=[25.478255057184594;25.5788943164009]]]
8995           INFO  [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Queueing Ignition Event for:               Body tube/334ebb79 /   A8 - Armed @: 1.0302951181945657
8995           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Ignoring event from unattached componenent
8995           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=IGNITION,time=1.0302951181945657,source=Body tube,data=A8]
8995           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=ALTITUDE,time=1.0302951181945657,source=Rocket,data=[25.478255057184594;25.5788943164009]]]
8996           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=IGNITION,time=1.0302951181945657,source=Body tube,data=A8]
8996           INFO  [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine -   Igniting motor:               Body tube/334ebb79 /   A8 - Armed @1.0302951181945657
8996           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Obtained event from queue:  FlightEvent[type=ALTITUDE,time=1.0302951181945657,source=Rocket,data=[25.478255057184594;25.5788943164009]]
8996           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Remaining EventQueue = [FlightEvent[type=BURNOUT,time=1.7602951181945656,source=Body tube,data=A8]]
8996           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Handling event FlightEvent[type=ALTITUDE,time=1.0302951181945657,source=Rocket,data=[25.478255057184594;25.5788943164009]]
8996           TRACE [pool-4-thread-1] n.s.o.s.BasicEventSimulationEngine - Taking simulation step at t=1.0302951181945657 altitude 25.5788943164009
8996           TRACE [pool-4-thread-1] n.s.o.s.RK4SimulationStepper - Too small time step 0.0012514398786730699 (limiting factor 5), using 0.0025 instead.
8996           TRACE [pool-4-thread-1] n.s.o.s.RK4SimulationStepper - Thrust = 0.015609756097560644

Here, the IGNITION does take place, and Thrust is non-zero.
Displaying a plot of the flight, and saving CSV files, shows a normal
two-stage flight profile.

This commit does two things:

(1) adds a little more logging, in particular logging what event has been
    obtained from EventQueue and logging when that event is ignored.

(2) moves the motor ignition events test ahead of the filter, as
    described above.
2018-09-19 18:53:43 -06:00
Daniel_M_Williams
8656dd287d [fix] Fixes repeated bug in Presets/Material Loading -- inconsistent test criteria 2018-09-09 12:37:29 -04:00
Daniel_M_Williams
d6f808b376 [fix][Refactor] rocketcomponent.position.RadiusMethod to be clearer
1. renamed getOuterRadius() => getBoundingRadius()
   Previous function did not make sense, where implemented in FinSet.
2. Changed implementation of RadiusMethod.*.getRadius()
   now fails a bit more gracefully.
2018-09-09 12:29:11 -04:00
Daniel_M_Williams
cfef7532ab [refactor] tightened access specifiers in FinSet.java 2018-09-03 22:54:42 -04:00
Daniel_M_Williams
efd8a3e15e [cleanup] removed dead code, and fixed javadocs 2018-09-03 22:52:25 -04:00
Daniel_M_Williams
8dc851e1db [fix] cleanup up unused imports in core/test/net/sf/openrocket/rocketcomponent/* 2018-09-03 22:51:00 -04:00
Daniel_M_Williams
4487e457de [build] added jar artifact for IDEA Intellij build 2018-09-03 14:10:00 -04:00
Daniel_M_Williams
b63616b1be [build] Updated dependencies for running from intellij 2018-09-03 14:10:00 -04:00
Joe Pfeiffer
7a04bd567c missed reversing the operands in the calculation of last bit of impulse 2018-08-27 09:16:16 -06:00
Joe Pfeiffer
d2cdea2113 Little bit more massaging for clarity (replace avgImpulse with impulse) 2018-08-26 16:32:44 -06:00
Daniel_M_Williams
e4b6b25a8b [fixes #419] Adding new points to FreeformFins are now placed at the mouse cursor 2018-08-26 17:31:46 -04:00
Daniel_M_Williams
f3dbceba37 [refactor] separated FinSet Tests into files corresponding to FinSet, TrapezoidalFinSet, and FreeformFinSet 2018-08-26 17:27:41 -04:00
Daniel_M_Williams
fab167abdc [fix] Fixes the way BarrowmanCalculator handles instancing, particularly for ComponentAssemblies 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
e6b788cb0b [test] Moved fins from core-body to booster-body; (they are now doubly-instanced); adjusted tests to accept this. 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
4cb8a03454 [resolves #423][partial] BarrowmanCalculator no longer multiplies instanced leaf nodes. 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
7e5ab5de32 [fix] Revert patch 6289aef0... which introduced simulation anomalies 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
bea26fc511 [refactor] renamed FinSet#fins => FinSet#finCount to make it's meaning more explicit 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
1418cb902b [fixes #431] Fins default to instance count / fin count == 1
- Fixed init bug
- added unittests for fin count loading/saving/creation
2018-08-26 16:59:01 -04:00
Daniel_M_Williams
165f005b12 Version Bump to Alpha 8 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
fc43b19db0 [fix] clicking away from points now longer causes an exception 2018-08-26 16:59:01 -04:00
Daniel_M_Williams
9d76ece128 [refactor] updated BoundingBox class to be more useful
- FlightConfiguration now exposes the BoundingBox method for its rocket
2018-08-26 16:59:01 -04:00
Joe Pfeiffer
c089e3ecb7 Code clarification; should make no difference to results 2018-08-26 14:53:00 -06:00
Joe Pfeiffer
ac2339b8b4 Fix Average Thrust Calculation (fixes issue #441)
Remove test for short time interval before first data point in thrust
curve.  Comment said it was for numerical stability; multiplying by a
small number and then adding doesn't introduce any instabilities I'm
aware of in this code.

Add parentheses to clarify that values are being multiplied by time
intervals, not divided.
2018-08-21 17:29:07 -06:00
Wes Cravens
3209e0201e
Merge pull request #437 from JoePfeiffer/fixSimulationLog
Fix simulation log
2018-08-07 18:21:31 -05:00
Joe Pfeiffer
7d2e4757e8 Also eliminate redundant "BasicEventSimulationEngine" in log lines 2018-08-06 17:21:24 -06:00
Joe Pfeiffer
39d961df56 Don't report timestep on thrust log line. First it was probably meant
to be simulation time, not time step, and second it's already reported
elsewhere

Report altitude and event type at each simulation step
2018-08-06 17:11:12 -06:00
Wes Cravens
3538d53c6d
Merge pull request #416 from JoePfeiffer/fixnewconfiguration
Set current configuration before creating simulation
2018-07-05 00:55:01 -05:00
Wes Cravens
5fcd62dc84
Merge pull request #420 from teyrana/fix_new_stage
[fix][oneline] both Create Stage buttons now create stages with the same name
2018-07-05 00:54:41 -05:00
Wes Cravens
a39f572c9a
Merge pull request #421 from teyrana/upgrade_java_8
Upgrade java 8: ant, eclipse, travis. Resolves #414
2018-07-05 00:54:31 -05:00
Daniel_M_Williams
82d5f871f0 [upgrade] Updated Eclipse buildfiles to use Java 1.8 2018-06-17 15:34:55 -04:00
Daniel_M_Williams
32c612fb91 [upgrade] Updated ant build.xml to use java 1.8 2018-06-17 15:34:46 -04:00
Daniel_M_Williams
14414d6279 [fix] removed duplicate property keys 2018-06-16 19:52:12 -04:00
Daniel_M_Williams
73db54ae7b [fix] removes obsolete l10n string 'RocketActions.ActBoosterstage' from 'core/resources/l10n/message.properties' 2018-06-09 20:22:32 -04:00
Joe Pfeiffer
09123dd0ce Set current configuration before creating simulation
createSimulationForConfiguration() assumed addConfiguration() and
copyConfiguration() would set the new configuration as selected, but
they didn't resulting in simulation based on old configuration, not new
one.  Fixed.

addConfiguration() and copyConfiguration() had enough common code that
consolidating them and createSimulationForConfiguration() seemed like a
good idea.

Let FlightConfiguration.copy() create new ID for consistency with
constructor.
2018-06-04 12:37:40 -06:00
Joe Pfeiffer
f82fef44d7 Fix Configuration name in motor configuration panel.
Formerly just used delay value directly, resulting in huge delay for
plugged motors; now uses motor.getDesignation so it translates to "P" as
expected.

Changed name of toMotorDesription method to toMotorDesignation to match
usage of getDesignation() in ThrustCurveMotor.java

Changed toMotorDesignation to use motor.getDesignation
2018-06-01 09:27:08 -06:00
Daniel_M_Williams
b7ee926d6c [fix] change to SymmetricComponent no longer generates negative inertias 2018-05-28 12:28:59 -04:00
Daniel_M_Williams
20473dbf82 [fix] file version 108 now correctly loads angle-offsets for all ComponentAssemblies 2018-02-03 10:52:44 -05:00
Daniel_M_Williams
0ef72ec66d [Resolves #391] Localized description is displayed for relative positioning methods 2018-02-03 10:37:40 -05:00
Daniel_M_Williams
7017b0b2f0 [fix] removed Angle.Fixed and Radius.Surface positioning methods 2018-02-03 10:25:03 -05:00
Daniel_M_Williams
4a874b6ba9 [fix] Fixed OpenRocketSaverTest: minimum file version is now 108 2018-01-27 20:35:49 -05:00
Daniel_M_Williams
9398331f02 [fix][file] OR now always saves files as format version 1.8 2018-01-21 12:16:21 -05:00
Daniel_M_Williams
85fc41d203 [feature][refactor] Implemented Relative Positioning for Axial, Angular, and Radius directions
- Allows more precise and flexible control of component positions
- file format:
  -- maintains compatability with previous major release (15.04)
  -- may not accept file formats from unstable development branches in-between major releases
2018-01-21 12:06:42 -05:00
Daniel_M_Williams
0498900078 [feat] Added Positioning methods and interfaces for Axial, Radius, and Angle directions
- also added minor angle-wrapping function to MathUtil
2018-01-21 12:06:25 -05:00
Daniel_M_Williams
5c96ad9454 [ver] Bumped version number for Alpha Release 5 2018-01-21 12:05:59 -05:00