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
Diff: changelog.txt
- 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