//////////////////////////////////////////////////////////////// 
// 
// PURPOSE: This contains DockModule parameters for Tethys.
//
// NOTES:   All values (except "strings") must be followed by
//          a unit abbreviation (or one of the unit-like
//          abbreviations: n/a, bool, enum, count). 
// 
//////////////////////////////////////////////////////////////// 

Dock.lat             =   36.8034 arcdeg; // latitude
Dock.lon             = -121.8223 arcdeg; // longitude
Dock.depth           =  3.0 meter; // transponder depth
Dock.transponderCode =  2 count; // Dock transponder address


Docked.dockingDepthOffset = 2.0 meter;  // Offset from the dock xponder depth to use when docking. Positive down.
Docked.dockRange          = 8.0 meter;  // Maximum absolute range allowed from dock xponder.
Docked.dockPitch          = 20.0 degree; // Pitch angle to hold while on the dock.
Docked.detachTimeout      = 300 second; // Time duration for determining if the vehicle is detached from the dock (transition docked->detached).
Docked.dockTimeout        =  30 second; // Time duration for determining if the vehicle is ON the dock (transition detached->docked).
Docked.dataTimeout        = 600 second; // Max time duration allowed with no DDM/range updates. Assumes detached if timeout expires.
Docked.verbose            = 0 bool;     // Report state transitions to shore when true


// Midcourse settings
LineCapture.midcourseSpeed            = 1.0 m/s;   // Thruster speed during Midcourse guidance.
LineCapture.midcourseDepth            = 6.0 meter; // Desired vehicle depth when navigating to dock WP (during Midcourse phase).
LineCapture.midcourseTimeout          = 6 hour;    // Maximum time duration for running in midcourse guidance mode.
// Terminal homing settings
LineCapture.terminalRange             = 650.0 meter; // Range at which the vehicle should switch from navigating to the dock wp and start
                                                     // homing to the target using DUSBL tracking data. Max is ?? meters due to DUSBL ???.
LineCapture.acousticTimeout           = 5 minute;    // Maximum time duration allowed between pings during terminal guidance. If expired, the
                                                     // vehicle will regress to Midcourse guidance.
LineCapture.armRange                  = 40.0 meter;  // Range to trigger arming actions (e.g., deploy docking whiskers).
LineCapture.armSpeed                  = 1 m/s;     // Thruster speed when armed.
LineCapture.lockoutRange              = 2.0 meter;   // Range in which terminal guidance stops updating the heading cmd (slant range).
LineCapture.interceptTimeout          = 60 second;   // Max time duration to run in intercept mode.
LineCapture.latchDelayTimeout         = 0 second;    //Time duration to wait after cable present first turns true until closing the latch
LineCapture.rolloutDistance           = 150 meter;   // Distance to move away from the target (rollout) in response to a miss.
LineCapture.rolloutSpeed              = 1.0 m/s;     // Thruster speed during rollout.
LineCapture.rolloutTimeout            = 15 minute;   // Max time duration to run in rollout mode.
LineCapture.kpHeadingTerminalGuidance = 0.8 ratio;   // HorizontalControl heading proportional gain during TERMINAL GUIDANCE
LineCapture.kiHeadingTerminalGuidance = 0.002 1/s;   // HorizontalControl heading integral gain during TERMINAL GUIDANCE
LineCapture.kpHeadingFinalApproach    = 1.2 ratio;   // HorizontalControl heading proportional gain during FINAL APPROACH
LineCapture.kiHeadingFinalApproach    = 0.003 1/s;   // HorizontalControl heading integral gain during FINAL APPROACH
LineCapture.navigationGain            = 3.0 none;    // Proportional Navigation gain (constant). Typically between 3 to 5.
LineCapture.verbose                   = 0 bool;      // Report state transitions to shore when true
// Search pattern settings
LineCapture.searchTimeout             = 1 hour;      // Maximum time duration for running the search pattern. Once expired, the
                                                     // vehicle will enter surface mode.
LineCapture.searchCircleRadius        = 25.0 meter;  // Radius of circle around the dock waypoint.


SetNav.dockRange    = 5 meter;  // Range from dock in which the vehicle resets its position to dock lat/lon .
SetNav.rangeTimeout = 5 minute; // Time duration after which ranges are considered stagnant.


Undock.undockDepth   = 7.5 meter; // Desired vehicle depth when undocking.
Undock.undockRange   = 10.0 meter; // Desired absolute range from dock xponder.
Undock.undockTimeout = 20 second; // Time duration to wait after detachment is detected to avoid false positives and ensure successful undocking.
Undock.reverseThrustTimeout = 10 second; // Max time duration to keep the thruster engaged in reverse to break apart from the dock.
Undock.verbose       = 0 bool;    // Report state transitions to shore when true