//-------------------------------------------------
// NAME: M. Benjamin, MIT
// FILE: $(VNAME).moos
//-------------------------------------------------

ServerHost = localhost
ServerPort = $(BOT_MOOSDB)
Community  = $(VNAME)

#include plug_origin_warp.moos

//------------------------------------------------------------
Processconfig = ANTLER
{
  MSBetweenLaunches = 100
   
  Run = MOOSDB         @ NewConsole = false
  Run = uProcessWatch  @ NewConsole = false
  Run = pShare         @ NewConsole = false
  Run = uSimMarineV22  @ NewConsole = false
  Run = pLogger        @ NewConsole = false
  Run = pNodeReporter  @ NewConsole = false
  Run = pMarinePID     @ NewConsole = false
  Run = pHelmIvP       @ NewConsole = false
  Run = pHostInfo      @ NewConsole = false
  Run = uFldNodeBroker @ NewConsole = false
  Run = uLoadWatch     @ NewConsole = false
  Run = uMemWatch      @ NewConsole = false
  Run = iSay           @ NewConsole = false
  Run = pContactMgrV20 @ NewConsole = false
}

#include plug_uMemWatch.moos
#include plug_pShare.moos
#include plug_pHostInfo.moos
#include plug_uProcessWatch.moos

//----------------------------------------------------
// pHelmIvP Configuration Block  

ProcessConfig = pHelmIvP
{
  AppTick    = 4
  CommsTick  = 4

	app_logging = true
	
  behaviors    = targ_$(VNAME).bhv  
  verbose      = false
  domain       = course:0:359:360
  domain       = speed:0:5:26

	hold_on_apps = pContactMgrV20
}
	
//--------------------------------------------------------
// pNodeReporter Configuration Block 

ProcessConfig = pNodeReporter
{
  AppTick     = 2
  CommsTick   = 2

  vessel_type = kayak
  terse_reports = true
}

//--------------------------------------------------------
// pContactMgrV20 Configuration Block

ProcessConfig = pContactMgrV20
{
  AppTick   = 2
  CommsTick = 2

  decay = 30,60

  alert_verbose = true

  contact_max_age = 35
  display_radii   = true
	display_radii_id = avd

	match_region = pts = {60,-40 : 60,-160 : 150,-160 : 180,-100 : 150,-40}
	match_type = kayak, uuv
	
  alert = id=say, onflag=SAY_MOOS=hello,
  alert = id=say, offflag=SAY_MOOS=bye,
  alert = id=say, alert_range=180, cpa_range=200

  display_radii = true
  alert_range_color = gray70
  cpa_range_color   = gray30
}

//--------------------------------------------------
// uFldNodeBroker configuration block from plugin

ProcessConfig = uFldNodeBroker
{
  AppTick   = 1
  CommsTick = 1

  try_shore_host = pshare_route=localhost:$(SHORE_PSHARE)

  bridge = src=VIEW_POLYGON
  bridge = src=VIEW_CIRCLE
  bridge = src=VIEW_POINT
  bridge = src=VIEW_SEGLIST
  bridge = src=APPCAST
  bridge = src=NODE_REPORT_LOCAL,  alias=NODE_REPORT
  bridge = src=NODE_MESSAGE_LOCAL, alias=NODE_MESSAGE
}

//-----------------------------------------------------
// pMarinePID Config Block

ProcessConfig = pMarinePID
{
  AppTick    = 10
  CommsTick  = 10

	deprecated_ok = true
	
  VERBOSE       = true
  DEPTH_CONTROL = false
  ACTIVE_START  = true
  
  // Yaw PID controller
  YAW_PID_KP             = 0.4
  YAW_PID_KD             = 0.1
  YAW_PID_KI             = 0.0
  YAW_PID_INTEGRAL_LIMIT = 0.07
  
  // Speed PID controller
  SPEED_PID_KP           = 1.0
  SPEED_PID_KD           = 0.0
  SPEED_PID_KI           = 0.0
  SPEED_PID_INTEGRAL_LIMIT = 0.07
  
  // Maximums
  MAXRUDDER  = 100
  MAXTHRUST  = 100
  
  // A non-zero SPEED_FACTOR overrides use of SPEED_PID
  // Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR
  SPEED_FACTOR = 20
}

//----------------------------------------
// uSimMarineV22 Config Block

ProcessConfig = uSimMarineV22
{
  AppTick   = 10
  CommsTick = 10

  start_pos = $(START_POS), 180, 0
  prefix    = NAV

  //rotate_speed = 0.012
  //drift_x      = 0.0045

  //thrust_map = -100:-2, 0:0, 20:1, 40:2, 60:3, 80:5, 100:5
  //thrust_map = -100:-2, 0:0, 20:1, 40:2, 60:3, 80:5, 100:5
}

//--------------------------------------------------------
// iSay Config Block

ProcessConfig = iSay                                            
{                                                               
  AppTick   = 4                                                 
  CommsTick = 4                                                 
                                                                
  default_voice      = alex       // iSay --voices for others   
  default_rate       = 200                                      
  //interval_policy    = from_end   // or from_start
  interval_policy    = from_start   // or from_start
  min_utter_interval = 1                                        
                                                                
  os_mode            = osx      // Default is "osx"         
}                                 

//--------------------------------------------------
// pLogger Config Block

ProcessConfig = pLogger
{
  AppTick 	= 5
  CommsTick = 5
  
  File          = LOG_%(VNAME)
  PATH	        = ./
  AsyncLog 	    = true
  FileTimeStamp = true

  Log = IVPHELM_LIFE_EVENT @ 0 nosync
  Log = BCM_ALERT_REQUEST @ 0 nosync

  LogAuxSrc = true

  // Log it all!!!!!
  WildCardLogging = true 
  WildCardOmitPattern = *_STATUS
  WildCardOmitPattern = APPCAST
  WildCardOmitPattern = DB_VARSUMMARY
  WildCardOmitPattern = DB_RWSUMMARY

  WildCardOmitPattern = NAV_PITCH, NAV_LAT, NAV_LONG, NAV_YAW, NAV_Z
  WildCardOmitPattern = SIMULATION_MODE, TRUE_X, TRUE_Y, DB_CLIENTS
  WildCardOmitPattern = NAV_DEPTH, NAV_SPEED_OVER_GROUND, DB_QOS
  WildCardOmitPattern = NODE_BROKER_PING_0, PSHARE*
  WildCardOmitPattern = IVPHELM_ALLSTOP_DEBUG, *ITER_GAP, *ITER_LEN
  WildCardOmitPattern = PHI_HOST*, NODE_REPORT_LOCAL

}