//-------------------------------------------------
// NAME: M. Benjamin, MIT 
// FILE: alpha.moos
//-------------------------------------------------
ServerHost   = localhost
ServerPort   = 9000
Community    = alpha
MOOSTimeWarp = $(WARP:=1)

// Forest Lake
LatOrigin  = 43.825300 
LongOrigin = -70.330400 

// MIT Sailing Pavilion 
// LatOrigin  = 42.358456 
// LongOrigin = -71.087589

//------------------------------------------
// Antler configuration  block

ProcessConfig = ANTLER
{
  MSBetweenLaunches = 200

  Run = MOOSDB        @ NewConsole = false
  Run = pLogger       @ NewConsole = false
  Run = uSimMarineV22 @ NewConsole = false
  Run = pMarinePIDV22 @ NewConsole = false
  Run = pHelmIvP      @ NewConsole = false
  Run = uProcessWatch	@ NewConsole = false
  Run = pNodeReporter	@ NewConsole = false
  Run = pRealm	      @ NewConsole = false

#ifdef LAUNCH_GUI yes
  Run = pMarineViewer	@ NewConsole = false
#endif
}
	
//--------------------------------------------------
// uQueryDB Config Block

ProcessConfig = uQueryDB
{
  AppTick   = 4
  CommsTick = 4

  halt_max_time  = $(MAX_TIME:=1000)
  pass_condition = (MISSION_EVALUATED = true)
}       

//--------------------------------------------------
// uPokeDB Config Block

ProcessConfig = uPokeDB
{
  poke = DEPLOY = true
  poke = MOOS_MANUAL_OVERRIDE = false
}       

//------------------------------------------
// uProcessWatch Config block

ProcessConfig = uProcessWatch
{
  AppTick   = 4
  CommsTick = 4

  watch_all = true
	nowatch   = uPokeDB*
	nowatch   = uXMS*
	nowatch   = uMAC*
	nowatch   = uQueryDB*
}

//------------------------------------------
// pMarinePID Config block

ProcessConfig = pMarinePIDV22
{
  AppTick    = 20
  CommsTick  = 20

  verbose       = true
  depth_control = false

  // Yaw PID controller
  yaw_pid_kp		 = 0.9
  yaw_pid_kd		 = 0.3
  yaw_pid_ki		 = 0.3
  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 = 25
}

//------------------------------------------
// pNodeReporter config block

ProcessConfig = pNodeReporter
{
  AppTick    = 2
  CommsTick	 = 2

  platform_type   = kayak
  platform_color  = yellow
  platform_length = 4
}

//------------------------------------------
// uSimMarineV22 config block

ProcessConfig = uSimMarineV22
{
  AppTick  	= 4
  CommsTick	= 4

  start_pos      = x=0, y=-20, heading=180, speed=0
  prefix         = NAV
  turn_rate      = 95
  thrust_map     = 0:0, 25:1, 50:2, 75:3, 100:4
  thrust_reflect = true
	turn_spd_loss  = 0.4
}

//------------------------------------------
// pHelmIvP config block

ProcessConfig = pHelmIvP
{
  AppTick    = 4
  CommsTick  = 4

  behaviors  = targ_alpha.bhv
  domain     = course:0:359:360
  domain     = speed:0:4:41
}

//------------------------------------------
// pLogger config block

ProcessConfig = pLogger
{
  AppTick   = 8
  CommsTick = 8

  AsyncLog = true

  // For variables that are published in a bundle on their first post,
  // explicitly declare their logging request
  Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
  Log = REPORT @ 0 NOSYNC
  Log = BHV_SETTINGS @ 0 NOSYNC
  Log = SUMMARY @ 0 NOSYNC

  LogAuxSrc = true
  WildCardLogging = true
  WildCardOmitPattern = *_STATUS
  WildCardOmitPattern = DB_VARSUMMARY
  WildCardOmitPattern = DB_RWSUMMARY
  WildCardExclusionLog = true
}

//------------------------------------------
// pMarineViewer config block

ProcessConfig = pMarineViewer
{
  AppTick    = 4
  CommsTick  = 4

  tiff_file            = forrest19.tif
	//tiff_file          = MIT_SP.tif

  set_pan_x            = -90
  set_pan_y            = -280
  zoom                 = 0.65
  vehicle_shape_scale  = 1.5
  hash_delta           = 50
  hash_shade           = 0.22
  hash_viewable        = true

  trails_point_size   = 1

  // Appcast configuration
  appcast_height       = 75
  appcast_width        = 30
  appcast_viewable     = true
  appcast_color_scheme = indigo
  nodes_font_size      = xlarge
  procs_font_size      = xlarge
  appcast_font_size    = large

  scope  = SUMMARY

  button_1 = DEPLOY # DEPLOY=true
  button_1 = MOOS_MANUAL_OVERRIDE=false # RETURN=false
  button_2 = RETURN # RETURN=true
}