// Level 2 Configuration file: M. Benjamin

ServerHost = localhost
ServerPort = 9000
Community  = alpha

MOOSTimeWarp = 1

LatOrigin  = 43.825300 
LongOrigin = -70.330400 

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

  Run = MOOSDB		@ NewConsole = false
  Run = pLogger         @ NewConsole = false
  Run = uSimMarine	@ NewConsole = true
  Run = pNodeReporter	@ NewConsole = false
  Run = pMarinePID	@ NewConsole = true
  Run = pHelmIvP	@ NewConsole = true
  Run = pMarineViewer	@ NewConsole = true
  Run = uFldPathCheck	@ NewConsole = true
  Run = uFldScope	@ NewConsole = true
}

//------------------------------------------
// uFldScope config block

ProcessConfig = uFldScope
{
  AppTick    = 2
  CommsTick  = 2

  SCOPE = var=NODE_REPORT_LOCAL, key=NAME, fld=TIME, alias=Time
  SCOPE = var=NODE_REPORT_LOCAL, key=NAME, fld=MODE
  SCOPE = var=ODOMETRY_REPORT, key=vname, fld=total_dist, alias=TotDist
  SCOPE = var=ODOMETRY_REPORT, key=vname, fld=trip_dist, alias=TripDist
  SCOPE = var=SPEED_REPORT, key=vname, fld=avg_spd, alias=Speed

  LAYOUT = MODE, Time
  LAYOUT = MODE, Time, speed
  LAYOUT = speed, Mode, trip_dist
}


//------------------------------------------
// uFldPathCheck config block

ProcessConfig = uFldPathCheck
{
  AppTick    = 2
  CommsTick  = 2
}


//------------------------------------------
// uProcessWatch config block

ProcessConfig = uProcessWatch
{
  AppTick   = 4
  CommsTick = 4
  
  //WATCH = uSimMarine
  WATCH = pMarinePID:PID_OK
  WATCH = pMarineViewer, pHelmIvP, uSimMarine:USM_OK

  SUMMARY_WAIT = 5

  POST_MAPPING = PROC_WATCH_EVENT, UPW_EVENT

  WATCH_ALL = false
}


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

ProcessConfig = pLogger
{
  AppTick   = 4
  CommsTick = 4

  SyncLog = false
  AsyncLog = true @ 0

  // For variables that are published in a bundle on their first post,
  // explicitly declare their logging request

  Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC

  LogAuxSrc = true
  WildCardLogging = true
  WildCardOmitPattern = *_STATUS
}

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

ProcessConfig = uSimMarine
{
  AppTick	= 10
  CommsTick	= 10

  START_X       = 0
  START_Y       = 0
  START_SPEED   = 0
  START_HEADING = 180

  PREFIX        = NAV
  
  TURN_RATE     = 40
  THRUST_MAP    = 0:0, 20:1, 40:2, 60:3, 80:4, 100:5
}

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

ProcessConfig = pHelmIvP
{
  AppTick    = 4
  CommsTick  = 4

  Behaviors  = alpha.bhv
  Verbose    = quiet
  Domain     = course:0:359:360
  Domain     = speed:0:4:21
}

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

ProcessConfig = pMarinePID
{
  AppTick    = 20
  CommsTick  = 20

  VERBOSE       = true
  DEPTH_CONTROL = false

  // SIM_INSTABILITY = 20

  // Yaw PID controller
  YAW_PID_KP		 = 1.2
  YAW_PID_KD		 = 0.0
  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 = 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
  seglist_edge_width   = 2.0
  seglist_vertex_size  = 4
  seglist_vertex_color = red
  point_vertex_size    = 12
  hash_delta           = 50
  hash_shade           = 0.4
  hash_view            = true

  scope  = VIEW_SEGLIST
  scope  = VIEW_POINT
  scope  = VIEW_POLYGON
  scope  = NAV_X
  scope  = NAV_Y
  scope  = MVIEWER_LCLICK
  scope  = MVIEWER_RCLICK

  BUTTON_ONE = DEPLOY # DEPLOY=true
  BUTTON_ONE = MOOS_MANUAL_OVERRIDE=false # RETURN=false
  BUTTON_TWO = RETURN # RETURN=true

  ACTION  = MENU_KEY=deploy # DEPLOY = true # RETURN = false
  ACTION+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
  ACTION  = RETURN=true
  ACTION  = HSLINE=off
  ACTION  = HSLINE=on
  ACTION  = UPDATES_RETURN=speed=1.4
}

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

ProcessConfig = pNodeReporter
{
  AppTick	= 2
  CommsTick	= 2

  PLATFORM_TYPE   = KAYAK
  PLATFORM_LENGTH = 4
}