//-------------------------------------------------
// NAME: M. Benjamin, MIT CSAIL
// FILE: foxtrot.moos
//-------------------------------------------------

ServerHost = localhost
ServerPort = 9000

Community  = alpha

MOOSTimeWarp = 1

LatOrigin  = 43.825300 
LongOrigin = -70.330400 

//------------------------------------------
// Antler configuration  block
ProcessConfig = ANTLER
{
  MSBetweenLaunches = 200

  Run = MOOSDB          @ NewConsole = false
  Run = uSimMarine      @ NewConsole = false
  Run = pNodeReporter   @ NewConsole = false
  Run = pMarinePID      @ NewConsole = false
  Run = pMarineViewer   @ NewConsole = false
  Run = pHelmIvP        @ NewConsole = false
  Run = pLogger         @ NewConsole = false
  Run = iSay            @ NewConsole = false
}

//------------------------------------------
// 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              
  min_utter_interval = 1                                        

	//max_queue_size = 1
}                                            

//------------------------------------------
// uSimMarine config block

ProcessConfig = uSimMarine
{
  AppTick	  = 10
  CommsTick	= 10

  start_x       = 0
  start_y       = 0
  start_speed   = 0
  start_heading = 180

  prefix        = NAV
}

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

ProcessConfig = pHelmIvP
{
  AppTick    = 4
  CommsTick  = 4

  behaviors  = foxtrot.bhv
  verbose    = quiet
  domain     = course:0:359:360
  domain     = speed:0:4:21

  start_in_drive = false
}

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

ProcessConfig = pLogger
{
  AppTick   = 4
  CommsTick = 4

  SyncLog = false
  AsyncLog = true
  WildCardLogging = true

  //CompressAlogs = true

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

//------------------------------------------
// pMarinePID config block

ProcessConfig = pMarinePID
{
  AppTick    = 20
  CommsTick  = 20

  verbose       = true
  depth_control = false

  // Yaw PID controller
  yaw_pid_kp		 = 0.5
  yaw_pid_kd		 = 0.0
  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
}

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

ProcessConfig = pMarineViewer
{
  AppTick    = 4
  CommsTick  = 4

  tiff_file            = forrest19.tif
  set_pan_x            = -90
  set_pan_y            = -280
  zoom                 = 0.65
  vehicle_shape_scale  = 1.5
  hash_delta           = 50
  hash_shade           = 0.4
  hash_viewable        = false
  hash_delta           = 78

  // Appcast configuration
  appcast_height       = 75
  appcast_width        = 30
  appcast_viewable     = true
  appcast_color_scheme = indigo
  nodes_font_size      = medium
  procs_font_size      = medium
  appcast_font_size    = small
  
  //oparea_viewable_all = true

  marker_viewable_all = true
  marker_scale = 1.0

  //scope = MISSION_TIME_REMAINING
  scope = OPREG_TRAJECTORY_PERIM_DIST

  button_one = DEPLOY # DEPLOY=true
  button_one = MOOS_MANUAL_OVERRIDE=false # RETURN=false
  button_two = RETURN # RETURN=true

  button_three = OPR_BIG  # UP_OPREGION=polygon=0,-50:0,-250:150,-250:150,-50
  button_four  = OPR_SMALL  # UP_OPREGION=polygon=0,-50:0,-150:150,-150:150,-50

  //button_three = OPR_RESET  # OPREGION_RESET=poly
  //button_four  = TIME_RESET # OPREGION_RESET=time

  action  = MENU_KEY=deploy # DEPLOY = true # RETURN = false
  action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
  action  = RETURN=true


  marker = type=triangle,x=100,y=0,label=lobster_pot,color=orange,width=5
  marker = type=square,x=-20,y=35,label=home,color=blue,width=3
  marker = type=circle,x=-10,y=-130,label=rock1,color=brown,width=2
  marker = type=circle,x=-5,y=-125,label=rock2,color=brown,width=2
  marker = type=circle,x=37,y=-140,label=rock3,color=brown,width=2
  marker = type=circle,x=190,y=-20,label=rock4,color=brown,width=2
  marker = type=circle,x=215,y=-45,label=rock5,color=brown,width=2
  marker = type=circle,x=184,y=-115,label=rock6,color=brown,width=2
  marker = type=diamond,x=100,y=-147,label=hazard,color=red,width=5
  marker = type=efield,x=122,y=-162,label=efield,color=green,width=5
  marker = type=gateway,x=32,y=-156,label=gateway,color=light_blue,width=5

  // Example OP-AREA
  op_vertex = x=-10, y=10,lwidth=1,lcolor=yellow,looped=true,group=soa
  op_vertex = x=-10, y=-165,lwidth=1,lcolor=yellow,looped=true,group=soa
  op_vertex = x=195, y=-165,lwidth=1,lcolor=yellow,looped=true,group=soa
  op_vertex = x=195, y=10,lwidth=1,lcolor=yellow,looped=true,group=soa

}

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

ProcessConfig = pNodeReporter
{
  AppTick	= 2
  CommsTick	= 2

  vessel_type   = KAYAK
}