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

#include plug_origin_warp.moos
  
//------------------------------------------------------------
Processconfig = ANTLER
{
  MSBetweenLaunches = 100
   
  Run = MOOSDB             @ NewConsole = false
  Run = uSimMarine         @ NewConsole = false
  Run = pLogger            @ NewConsole = false
  Run = pNodeReporter      @ NewConsole = false
  Run = pMarinePID         @ NewConsole = false
  Run = pHelmIvP           @ NewConsole = false
  Run = uProcessWatch      @ NewConsole = false

  Run = pShare             @ NewConsole = false
  Run = pHostInfo          @ NewConsole = false
  Run = uFldNodeBroker     @ NewConsole = false
  Run = uFldMessageHandler @ NewConsole = false
  
  Run = uTimerScript       @ NewConsole = false
  Run = pBasicContactMgr   @ NewConsole = false
  //Run = pContactMgrV20     @ NewConsole = false

  Run = pRealm             @ NewConsole = false
  Run = pFrontEstimate     @ NewConsole = false
}

#include plug_pShare.moos
#include plug_pHostInfo.moos
#include plug_pLogger.moos
#include plug_uProcessWatch.moos
//#include plug_pContactMgrV20.moos
#include plug_pBasicContactMgr.moos

//----------------------------------------------------
// pFrontEstimate Configuration Block

ProcessConfig = pFrontEstimate
{
  AppTick    = 4
  CommsTick  = 4

  vname = $(VNAME)
  temperature_factor = $(COOL_FAC)
  cooling_steps = $(COOL_STEPS)
  min_offset = -120
  max_offset = -60
  min_angle = -5
  max_angle = 10

  min_amplitude = 0
  max_amplitude = 50

  min_period = 150
  max_period = 250
  min_wavelength = 100
  max_wavelength = 300

  min_alpha = 500
  max_alpha = 500

  min_beta = 10
  max_beta = 30  //
  min_T_N = 15
  max_T_N = 25 
  min_T_S = 20
  max_T_S = 30 
  concurrent = $(CONCURRENT)
  adaptive=$(ADAPTIVE)

	report_interval = 30;
}

//----------------------------------------------------
// 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

  ok_skew    = any
}

	//--------------------------------------------------------
// uTimerScript Configuration Block

ProcessConfig = uTimerScript
{
  AppTick   = 4
  CommsTick = 4
  
  paused     = false
  reset_max  = unlimited
  reset_time = end

  delay_reset = 0.5

  event = var=UCTD_SENSOR_REQUEST, val=vname=$(VNAME), time=5 
}

	//------------------------------------------------------
// uSimMarine Configuration Block 

ProcessConfig = uSimMarine
{
  AppTick   = 10
  CommsTick = 10

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

//--------------------------------------------------------
// pNodeReporter Configuration Block

ProcessConfig = pNodeReporter
{
  AppTick     = 2
  CommsTick   = 2
  
  vessel_type = $(VTYPE)
}

//--------------------------------------------------
// uFldNodeBroker Configuration Block

ProcessConfig = uFldNodeBroker
{
  AppTick   = 1
  CommsTick = 1

  try_shore_host = pshare_route=$(SHORE_IP):$(SHORE_PSHARE)

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


//--------------------------------------------------
// uFldMessageHandler Configuration Block

ProcessConfig = uFldMessageHandler
{
  AppTick   = 3
  CommsTick = 3

  strict_addressing = false
}


//-----------------------------------------------------
// 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
}