ServerHost = localhost
ServerPort = $(VPORT)

// Community name IS the vehicle name
Community  = $(VNAME)

#include plug_origin_warp.moos

//------------------------------------------------------------
Processconfig = ANTLER
{
  MSBetweenLaunches = 100
   
  Run = MOOSDB         @ NewConsole = false
  Run = pRealm         @ NewConsole = false
  Run = uProcessWatch  @ NewConsole = false
  Run = pShare         @ NewConsole = false
  Run = uSimMarine     @ 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 = pEvalLoiter    @ NewConsole = false
  Run = pContactMgrV20 @ NewConsole = false
}

#include plug_pShare.moos
#include plug_pHostInfo.moos
#include plug_uSimMarine.moos
#include plug_pLogger.moos
#include plug_uProcessWatch.moos
#include plug_uLoadWatch.moos
	
//----------------------------------------------------
// pHelmIvP Configuration Block  

ProcessConfig = pHelmIvP
{
  AppTick    = 2
  CommsTick  = 2
  
  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
}

//--------------------------------------------------
// uFldNodeBroker configuration Block

ProcessConfig = uFldNodeBroker
{
  AppTick   = 1
  CommsTick = 1

  try_shore_host = pshare_route=localhost:$(SHORE_LISTEN)

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

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

ProcessConfig = pContactMgrV20
{
  AppTick   = 2
  CommsTick = 2

  decay = 30,60

  alert_verbose = true

  contact_max_age = 3600
  display_radii   = false

  alert_range_color = gray70
  cpa_range_color   = gray30
}

//-----------------------------------------------------
// pMarinePID Configuration Block 

ProcessConfig = pMarinePID
{
  AppTick    = 10
  CommsTick  = 10
  
  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
}

//------------------------------------------------------
// pEvalLoiter Configuration Block

ProcessConfig = pEvalLoiter                                     
{                                                               
  AppTick   = 4                                                 
  CommsTick = 4                                                 

  condition = MODE==LOITERING
        
  eval_window      = 15     // (default is 30, in seconds)
  nav_stale_thresh = 10     // (default is 10, in seconds)
  mode_thresh      = 10     // (default is 10, in meters)
  max_nav_age      = 15     // (default is 15, in seconds)
  range_max_ineff  = 20     // (default is 50, in meters)
}