//////////////////////////////////////////////////////////////// 
// 
// PURPOSE: This contains NavigationModule 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). 
// 
//////////////////////////////////////////////////////////////// 

   DeadReckonUsingMultipleVelocitySources.loadAtStartup         = 1 bool;
   DeadReckonUsingMultipleVelocitySources.accuracyPremultiplier = 0.9 none;
   DeadReckonUsingMultipleVelocitySources.allowableFailures     = 20 count;
   DeadReckonUsingMultipleVelocitySources.orientationStaleAfter = 2 min;
   DeadReckonUsingMultipleVelocitySources.velocityStaleAfter    = 20 s;
   DeadReckonUsingMultipleVelocitySources.verbosity             = 0 count;

   DeadReckonUsingSpeedCalculator.loadAtStartup                 = 1 bool;
   DeadReckonUsingSpeedCalculator.accuracyPremultiplier         = 1.0 none;
   DeadReckonUsingSpeedCalculator.allowableFailures             = 20 count;
   DeadReckonUsingSpeedCalculator.orientationStaleAfter         = 2 min;
   DeadReckonUsingSpeedCalculator.velocityStaleAfter            = 20 s;
   DeadReckonUsingSpeedCalculator.verbosity                     = 0 count;

   DeadReckonWithRespectToWater.loadAtStartup                   = 0 bool;
   DeadReckonWithRespectToWater.accuracyPremultiplier           = 1.0 none;
   DeadReckonWithRespectToWater.allowableFailures               = 20 count;
   DeadReckonWithRespectToWater.orientationStaleAfter           = 2 min;
   DeadReckonWithRespectToWater.velocityStaleAfter              = 20 s;
   DeadReckonWithRespectToWater.verbosity                       = 0 count;

   DeadReckonWithRespectToSeafloor.loadAtStartup                = 0 bool;
   DeadReckonWithRespectToSeafloor.accuracyPremultiplier        = 1.0 none;
   DeadReckonWithRespectToSeafloor.allowableFailures            = 20 count;
   DeadReckonWithRespectToSeafloor.orientationStaleAfter        = 2 min;
   DeadReckonWithRespectToSeafloor.velocityStaleAfter           = 20 s;
   DeadReckonWithRespectToSeafloor.verbosity                    = 0 count;

   DeadReckonUsingDVLWaterTrack.loadAtStartup                   = 0 bool;
   DeadReckonUsingDVLWaterTrack.accuracyPremultiplier           = 1.0 none;
   DeadReckonUsingDVLWaterTrack.allowableFailures               = 20 count;
   DeadReckonUsingDVLWaterTrack.orientationStaleAfter           = 2 min;
   DeadReckonUsingDVLWaterTrack.velocityStaleAfter              = 20 s;
   DeadReckonUsingDVLWaterTrack.verbosity                       = 0 count;

   DeadReckonUsingCompactModelForecast.loadAtStartup            = 0 bool;
   DeadReckonUsingCompactModelForecast.accuracyPremultiplier    = 1.0 none;
   DeadReckonUsingCompactModelForecast.allowableFailures        = 20 count;
   DeadReckonUsingCompactModelForecast.orientationStaleAfter    = 2 min;
   DeadReckonUsingCompactModelForecast.velocityStaleAfter       = 20 s;
   DeadReckonUsingCompactModelForecast.verbosity                = 0 count;

   LBLNavigation.loadAtStartup                                  = 0 bool;
   LBLNavigation.verbosity                                      = 1 enum;
   LBLNavigation.speedOfSound                                   = 1500 m/s;
   LBLNavigation.navigationError                                = 0 degree;
   LBLNavigation.baselineLockout                                = 200 m;
   LBLNavigation.advancePing                                    = 1 ratio;
   LBLNavigation.advancePosition                                = 0.5 ratio;  // Fraction of change in location due to ping to apply (0 to 1)
   LBLNavigation.maxPositionChange                              = 3 meter;    // Maximum change in location due to LBL fix
   LBLNavigation.maxSpeedWrtTransponder                         = 1.5 m/s;    // Maximum allowable speed between vehicle and transponder
   LBLNavigation.pingFilterSize                                 = 5 count;    // Size of median filter used with maxSpeedWrtTransponder (odd # 3 to 11)
   LBLNavigation.maxPingAgeInFilter                             = 70 second;  // Pings older than this age will be removed from maxSpeedWrtTransponder filter
   LBLNavigation.maxPingAge                                     = 2.5 second; // Pings older than this age will be ignored in position estimation - set to a low value for simulataneous pings
   LBLNavigation.fixFilterSize                                  = 10 count;   // Size of postional filter used calm noisy fixes (1 to 20)
   LBLNavigation.fixHalfLifeInFilter                            = 20 second;  // Fixes effect on the filter will be halved in this time

   NavChart.loadAtStartup = 1 bool;
   NavChart.UseChartAltitude = 0 bool; // Set to 1 to use altitude from the charts. Otherwise, vehicle will use a measured value available

   //Pac ocean, San Diego to Cape Mendocino, Point Sur to San Francisco, Monterey Bay 
   NavChartDb.charts    = "US1WC07M,US2WC11M,US3CA52M,US5CA50M";

   //San Pedro Channel, San Pedro Bay, Los Angeles and Long Beach Harbors, Newport Bay
   //NavChartDb.charts    = "US4CA60M,US5CA61M,US5CA62M,US5CA83M";

   //Pt Dume to Purisma Pt.
   //NavChartDb.charts    = "US3CA69M";
   
   // Cook Inlet, AK Nav Charts:
   // NavChartDb.charts = "US1WC07M,US2AK20M,US3AK12M,US3AK1DM,US3AK5KM,US4AK13M,US4AK14M,US4AK15M,US4AK1AM,US4AK1CM,US4AK1EM,US4AK5BM,US4AK5JM,US4AK5QM,US4AK5VM";
   // Baker Oilfield, AK Nav Charts
   // NavChartDb.charts = "US1AK90M,US2AK92M,US5AK9NM,US5AK9OM,US5AK9PM,US5AK9QM,US5AK9RM,US5AK9SM,US5AK9TM,US5AK9UM";
   // Lake Michigan Nav Charts:
   // NavChartDb.charts = "US2MI01M,US2MI80M,US4IN01M,US4MI56M,US4MI57M,US4MI59M,US4MI89M,US4MI90M,US4WI03M,US4WI06M,US4WI33M,US4WI34M";
   // Hawaii Charts
   // NavChartDb.charts = "US2HA05M,US3HA20M,US4HA51M,US4HA51M,US5HA53M,US5HA55M"

   NavChartDb.cycleTimeout = 50 millisecond;

   UniversalFixResidualReporter.loadAtStartup = 1 bool;
   UniversalFixResidualReporter.verbosity     = 0 count;

   WorkSite.loadAtStartup = 0 bool;
   WorkSite.writeInterval = 1 minute;
   WorkSite.verbosity     = 0 count;