most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

Revision:
39:58375ca6b6ff
Parent:
24:c7d9b5bf3829
Child:
74:d281aaef9766
--- a/changelog.txt	Thu Dec 21 17:05:35 2017 +0000
+++ b/changelog.txt	Thu Dec 21 23:13:44 2017 +0000
@@ -110,4 +110,67 @@
         - Added several "isSubStateTimerRunning = false;" statements to the sub-FSM exits to make sure the one-shot actions work in the next state!  Definitely a fix.
         - Reworked the exiting sub-FSM to be a little clearer.
         - Moved the sub-state logger into all the sub-state transitions ... this should be done in FIND_NEUTRAL on sub-state changes instead (less copy/paste).
+    Modified 2017-11-29 revA by Troy
+        - changelog.txt carries previous changes
+        - Incorporated email changes and did quick bench test
+            1) In FIND_NEUTRAL, add bce().setPosition_mm(bceFloatPosition) to the one-shot actions after the unpause().  
+            2) NEUTRAL_FIRST_PITCH, changed batt position by half from 1.0 to 0.5.
+            3) NEUTRAL_SINKING and NEUTRAL_SLOWLY_RISE are using getSetPosition now
+            4) previousPosition_mm deleted (and print statements changed)
+            5) NEUTRAL_SLOWLY_RISE check is using bce().getSetPosition_mm()
+            6) Timers replaced with _neutral_timer variable
+            7) Default timeout is 8 minutes = 480 seconds
+        - Redid the sub-state recording method to only update on state changes
+    Modified 2017-11-29 revB by Troy
+        - minor print fixes
+    Modified 2017-11-29 revC by Troy
+        - removed depthTolerance variable that was not being used.
+    Modified 2017-11-30 revA by Troy/Dan
+        - Modified state RISE to setCommand to -1.0 feet (force out of water) and go to next state (float level) when above 0.5 feet
+        - Modified sub-state NEUTRAL_SINKING to only move 2.5 mm per cycle instead of 5 mm
+        - Commented out home function (accidentally hit home and got stuck while at LASR)
+        - Added max depth neutral and dive variables
+        - Print max recorded depths and current neutral buoyancy positions
+    Modified 2017-11-30 revB by Troy/Dan
+        - Dive and Multi-Dive cycles now exit to FLOAT_BROADCAST state
+        - FLOAT_LEVEL pitchTolerance variable increased from 1.0 degree to 5.0 degrees (PV was difficult to level in LASR pool)
+        - Added the ability to record the states of the FSM and print to user using keyboard "Z"
+    Modified 2017-12-01 revA by Troy
+        - Minor update to 2017-11-30 revB
+        - Now printing current neutral battery and BCE setpoints and max depth in neutral and dive cycle with "C" (and current sensor data)
+        - Pool-tested with successful dives.           
+            1) Dive working correctly.  (And max dive tracker shows that it is reaching the correct commanded depth.)
+            2) Float broadcast working correctly.  (And we are now going directly from dive and rise to float broadcast.)
+            3) Neutral sequence has PV diving with -10 to -20 degrees of pitch, battery command seems to be slow or inactive.
+            3) Float broadcast working correctly.
+            4) FSM tracker and sub-FSM tracker working.
+            5) Antenna working until tail just under water (last depth recorded varies between 1.0 and 1.5 feet)
+    Modified 2017-12-06 revA by Troy
+        - Added "_isTimeoutRunning = false;" to the FIND_NEUTRAL successful exit case ("else if (runNeutralStateMachine() == NEUTRAL_EXIT)"
+            1) This will reset the timeout when the PV has successfully found and saved the neutral BCE and battery positions
+        - Successful dive and multi-dive sequences exit to FLOAT_BROADCAST state (fix was implemented in code that did not respond, reimplemented here)
+            1) Also made the change to the SequenceController (which loads a file that has multiple sequences)
+        - FIND_NEUTRAL starts in NEUTRAL_SINKING with fix on sub-FSM to start with NEUTRAL_SINKING (verified via mbed on bench)
+    Modified 2017-12-07 revA by Troy
+        - Using new neutral finding sequence, dive slowly, rise slowly, then check pitch (pitch is not active at all until final state)
+        - Added additional print information (showing neutral parameters with "C")
+    Modified 2017-12-07 revB by Troy
+        - Momentum offsets reintroduced:
+            1) CASE DIVE uses "else if (depthLoop().getPosition() > depthLoop().getCommand() - 0.5) { // including offset for low momentum approaches"
+            2) CASE RISE uses "else if (depthLoop().getPosition() < depthLoop().getCommand() + 0.5) { // including offset for low momentum approaches"
+        - Momentum on rise command does not exit properly, removed
+    Modified 2017-12-11 revA by Troy
+        - Added a logger function the main while loop
+        - Added vectors (essentially resizable arrays) to hold the data in the State Machine because of memory limitations
+    Modified 2017-12-12 revA by Troy
+        - Logger directly implemented in StateMachine (records every 5 seconds)
+    Modified 2017-12-12 revB by Troy
+        - Logger fixes implemented in StateMachine, was not logging each state, fixed the reset
+        - Made logger into a function call
+    Modified 2017-12-13 revA by Troy
+        - Added function to print log file to screen (tested on bench with multiple dives and timers)
+    Modified 2017-12-18 revA by Troy
+        - Redo of the code to stop opening and closing files each time
+        - This should allow you to write to the open file, then close it once you exit the sequence back to SIT_IDLE
+        - Start record in dive, end when you exit float broadcast...
 */
\ No newline at end of file