//*******************************************************
// ShoreSide Configuration File

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

#include plugs.moos <origin_warp>

//------------------------------------------------------
Processconfig = ANTLER
{
  MSBetweenLaunches = 100

  Run = MOOSDB          @ NewConsole = false
  Run = pLogger         @ NewConsole = false
  Run = uProcessWatch   @ NewConsole = false

  Run = pMarineViewer   @ NewConsole = false

  Run = pShare          @ NewConsole = false
  Run = pHostInfo       @ NewConsole = false
  Run = uFldShoreBroker @ NewConsole = false
  Run = uFldNodeComms   @ NewConsole = false

  Run = uFldFlagManager @ NewConsole = false
  Run = uFldTagManager  @ NewConsole = false
	Run = pRealm          @ NewConsole = false
  Run = iSay            @ NewConsole = false
    Run = uTimerScript    @ NewConsole = false
}

#include plugs.moos <pHostInfo>
#include plugs.moos <pShare>

//--------------------------------------------------
// uFldFlagMgr Configuration Block

ProcessConfig = uFldFlagManager
{
  AppTick       = 2
  CommsTick     = 2

	post_score = $(XE)
	
  near_flag_range_buffer = 0
  flag = $(RED_FLAG), color=red, label=red
  flag = $(BLUE_FLAG), color=blue, label=blue

//  grab_post = var=SAY_MOOS, sval={say={$VNAME has the $FLAG flag}}
//  grab_post = var=SAY_MOOS_ALL, sval={say={$VNAME has the $FLAG flag}}

  grab_post = var=SAY_MOOS, sval={file=sounds/grab_post_$VNAME.wav}
  grab_post = var=SAY_MOOS_ALL, sval={file=sounds/grab_post_$VNAME.wav}

  grab_post = var=LED_HAVE_FLAG_$UP_VNAME, sval={true}  

//  lose_post = var=SAY_MOOS, sval={say={the $FLAG flag has been returned}}
//  lose_post = var=SAY_MOOS_ALL, sval={say={the $FLAG flag has been returned}}

  lose_post = var=SAY_MOOS, sval={file=sounds/lose_post_$FLAG.wav}
  lose_post = var=SAY_MOOS_ALL, sval={file=sounds/lose_post_$FLAG.wav}

  lose_post = var=LED_HAVE_FLAG_$UP_VNAME, sval={false}  

  near_post = var=SAY_MOOS, sval={file=sounds/shipbell.wav}
  near_post = var=SAY_MOOS_$UP_VNAME, sval={file=sounds/shipbell.wav}

  near_post = var=LED_IN_FLAG_ZONE_$VNAME, sval={true}  

  away_post = var=SAY_MOOS, sval={file=sounds/buzzer.wav}
  away_post = var=SAY_MOOS_$UP_VNAME, sval={file=sounds/buzzer.wav}

  away_post = var=LED_IN_FLAG_ZONE_$VNAME, sval={false}  

  deny_post = var=SAY_MOOS, sval={file=sounds/deny_post_$REASON.wav}
  deny_post = var=SAY_MOOS_$UP_VNAME, sval={file=sounds/deny_post_$REASON.wav}

  home_post = var=UNTAG_REQUEST, sval={vname=$VNAME}
  home_post = var=FLAG_RESET, sval={vname=$VNAME}

  home_post = var=LED_HAVE_FLAG_$UP_VNAME, sval={false} 

//	goal_post = var=SAY_MOOS, sval={say={$VTEAM has scored}}
//	goal_post = var=SAY_MOOS_ALL, sval={say={$VTEAM has scored}}

	goal_post = var=SAY_MOOS, sval={file=sounds/goal_post_$VTEAM.wav}
	goal_post = var=SAY_MOOS_ALL, sval={file=sounds/goal_post_$VTEAM.wav}

  goal_post = var=LED_HAVE_FLAG_$UP_VNAME, sval={false} 

}

//--------------------------------------------------
// uFldTagManager Configuration Block

ProcessConfig = uFldTagManager
{
  AppTick   = 4
  CommsTick = 4

  tag_range = 10     // default (meters)

  post_color = white  // default

  tag_circle = true
  tag_circle_range = 5
  tag_circle_color = "green"
  tag_min_interval = 10

  tag_duration = 10000

  //robot_tag_post   = MOOS_MANUAL_OVERRIDE_$UP_TARGET=true
//  human_tag_post   = SAY_MOOS_ALL=say={$TARGET_has_been_tagged},rate=200
//  human_tag_post   = SAY_MOOS=say={$TARGET_has_been_tagged},rate=200

  human_tag_post   = SAY_MOOS_ALL=file=tag_post_$TARGET.wav
  human_tag_post   = SAY_MOOS=file=tag_post_$TARGET.wav

  // human_tag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_tagged},rate=200
//  robot_tag_post   = SAY_MOOS_ALL=say={$TARGET_has_been_tagged},rate=200
//  robot_tag_post   = SAY_MOOS=say={$TARGET_has_been_tagged},rate=200

  robot_tag_post   = SAY_MOOS_ALL=file=tag_post_$TARGET.wav
  robot_tag_post   = SAY_MOOS=file=tag_post_$TARGET.wav

  // robot_tag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_tagged},rate=200

  // Return Flag
  human_tag_post   = FLAG_RESET=vname=$TARGET
  robot_tag_post   = FLAG_RESET=vname=$TARGET
  human_tag_post   = TAGGED_$UP_TARGET=true
  robot_tag_post   = TAGGED_$UP_TARGET=true

  robot_tag_post   = LED_TAGGED_$UP_TARGET=true
  human_tag_post   = LED_TAGGED_$UP_TARGET=true

  //robot_untag_post = MOOS_MANUAL_OVERRIDE_$UP_TARGET=false
  // human_untag_post   = SAY_MOOS=say={$TARGET_has_been_untagged},rate=200
  // human_untag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_untagged},rate=200
  // robot_untag_post   = SAY_MOOS=say={$TARGET_has_been_untagged},rate=200
  // robot_untag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_untagged},rate=200

//  human_untag_post = SAY_MOOS_ALL=say={$TARGET_has_been_untagged},rate=200
//  human_untag_post = SAY_MOOS=say={$TARGET_has_been_untagged},rate=200
  human_untag_post = SAY_MOOS_ALL=file=sounds/untag_post_$TARGET.wav
  human_untag_post = SAY_MOOS=file=sounds/untag_post_$TARGET.wav
  human_untag_post = TAGGED_$UP_TARGET=false

  human_untag_post = LED_TAGGED_$UP_TARGET=false
  
//  robot_untag_post = SAY_MOOS_ALL=say={$TARGET_has_been_untagged},rate=200
//  robot_untag_post = SAY_MOOS=say={$TARGET_has_been_untagged},rate=200
  robot_untag_post = SAY_MOOS_ALL=file=sounds/untag_post_$TARGET.wav
  robot_untag_post = SAY_MOOS=file=sounds/untag_post_$TARGET.wav
  robot_untag_post = TAGGED_$UP_TARGET=false

  robot_untag_post = LED_TAGGED_$UP_TARGET=false

  //notag_post = SAY_MOOS_$UP_SOURCE=say={Tag Denied $REASON},rate=200
  notag_post = SAY_MOOS_$UP_SOURCE=file=sounds/tag_denied.wav
  
  team_one=red
  team_two=blue

//  zone_one = pts={ 80,0 : 80,80 : 160,80 : 160,0 }
//  zone_two = pts={ 0,0 : 0,80 : 80,80 : 80,0 }

  //zone_one = pts={$(MIDFIELD_1) : $(CORNER_2) : $(CORNER_3): $(MIDFIELD_2) }
  //zone_two = pts={$(CORNER_1) : $(MIDFIELD_1) : $(MIDFIELD_2): $(CORNER_4) }

  zone_one = $(RED_ZONE)
  zone_two = $(BLUE_ZONE)

  zone_one_color = pink
  zone_two_color = dodger_blue
}

//--------------------------------------------------
// ufldnodecomms Configuration Block

ProcessConfig = uFldNodeComms
{
  AppTick   = 2
  CommsTick = 2

  comms_range      = 5000
  critical_range   = 25

  min_msg_interval = 0
  max_msg_length   = 10000
  groups           = false

  view_node_rpt_pulses = false
}


//--------------------------------------------------
// uFldShoreBroker Configuration Block

ProcessConfig = uFldShoreBroker
{
  AppTick       = 1
  CommsTick     = 1

  // Note: [QBRIDGE = FOO]  is shorthand for
  //       [BRIDGE = src=FOO_$V,  alias=FOO] and
  //       [BRIDGE = src=FOO_ALL, alias=FOO]

  qbridge  = DEPLOY, RETURN, STATION_KEEP, NODE_REPORT, NODE_MESSAGE
  qbridge  = MOOS_MANUAL_OVERRIDE, APPCAST_REQ, AVOID, CHASE
  qbridge  = TAGGED, MM_KEY
  qbridge  = HAS_FLAG
  qbridge  = ACTION, AGGRESSIVE, SHIELD_REQUEST
  qbridge  = MAP_MARKERS, XALIAS
  //qbridge  = SAY_MOOS
  qbridge  = ONFIELD, CANTAG

  bridge   = src=AQLEADER
  bridge   = src=AQLEADERUC
  bridge   = src=IN_OWN_TERRITORY
  bridge   = src=IN_ENEMY_TERRITORY
  bridge  = src=TAGGED_VEHICLES
  bridge   = src=UP_LOITER_$N, alias=UP_LOITER
  bridge   = src=HELM_MAP_CLEAR, alias=HELM_MAP_CLEAR
  bridge   = src=FLAG_SUMMARY
  bridge   = src=MULTI_NOTIFY
  bridge   = src=CANTAG_SUMMARY
  bridge   = src=HEARTBEAT

  qbridge = LED_TAGGED
  qbridge = LED_HAVE_FLAG
  qbridge = LED_IN_FLAG_ZONE

  qbridge = AQUATICUS_GAME
  qbridge = UFMG_HEARTBEAT

  bridge = src=RED_SCORES
  bridge = src=BLUE_SCORES

  qbridge = MATCH_PREP
  qbridge = PERIMETER_CHECK
  qbridge = PRECISE_STATION_KEEP

}


//--------------------------------------------------
// pLogger Configuration Block

ProcessConfig = pLogger
{
  AppTick       = 10
  CommsTick     = 10

  File          = LOG_SHORESIDE
  PATH          = $(LOGPATH)
  AsyncLog      = true
  FileTimeStamp = true

  LogAuxSrc     = true

  // Log it all!!!!!
  WildCardLogging = true
  WildCardOmitPattern = *_STATUS
  WildCardOmitPattern = *_ITER_GAP
  WildCardOmitPattern = *_ITER_LEN
  WildCardOmitPattern = PSHARE_INPUT_SUMMARY
  WildCardOmitPattern = PSHARE_OUTPUT_SUMMARY
  WildCardOmitPattern = DB_VARSUMMARY
  WildCardOmitPattern = DB_RWSUMMARY

  WildCardOmitPattern = NODE_REPORT*
  WildCardOmitPattern = DB_QOS
  WildCardOmitPattern = APPCAST
  WildCardOmitPattern = SAY_MOOS_*
  WildCardOmitPattern = NODE_PSHARE_VARS
  WildCardOmitPattern = NODE_BROKER_ACK*
  WildCardOmitPattern = NODE_BROKER_VACK
  WildCardOmitPattern = UFSB_BRIDGE_VARS
  WildCardOmitPattern = NODE_BROKER_PING
  WildCardOmitPattern = APPCAST_REQ
	}

//--------------------------------------------------------
ProcessConfig = pMarineViewer
{
  AppTick    = 4
  CommsTick  = 4

  tiff_file            = MIT_SP.tif
  set_pan_x            = 30
  set_pan_y            = -290
  zoom                 = 1.5
  vehicles_shape_scale = 1.5
  vehicles_name_mode   = names

  circle_viewable_all = true

  appcast_viewable = true
  appcast_color_scheme = indigo

//marker = type=circle, x=-50.5176, y=346.917, color=blue, width=8
//marker = type=circle, x=4.97808, y=175.674, color=blue, width=8
//marker = type=circle, x=57.9215, y=115.36, color=blue, width=8
//marker = type=circle, x=119.193, y=167.579, color=blue, width=8
//marker = type=circle, x=66.2493, y=227.893, color=blue, width=8
//marker = type=circle, x=13.3053, y=288.207, color=blue, width=8
	
	//marker = type=circle, lat=-35.1228638, lon=150.7105335,color=blue,width=8
	//marker = type=circle, lat=-35.1244182, lon=150.7110989, color=blue, width=8
	//marker = type=circle, lat=-35.1249726, lon=150.7116643, color=blue, width=8
	//marker = type=circle, lat=-35.1245148, lon=150.7123494, color=blue, width=8
	//marker = type=circle, lat=-35.1239604, lon=150.7117840, color=blue, width=8
	//marker = type=circle, lat=-35.1234060, lon=150.7112186, color=blue, width=8

	
  scope = FLAG_GRAB_REPORT
  scope = NODE_BROKER_PING
  scope = DEPLOY_ALL

  action = AQUATICUS_GAME_ALL = play
  action = AQUATICUS_GAME_ALL = pause
  action = AQUATICUS_GAME_ALL = stop

  action = MM_KEY_ALL=off
	action = MM_KEY_ALL=red_one
	action = MM_KEY_ALL=blue_one

	//beat_flag = HEARTBEAT=true
	
  button_one = DEPLOY  # DEPLOY_ALL=true
  button_one = MOOS_MANUAL_OVERRIDE_ALL=false
  button_one = RETURN_ALL=false # STATION_KEEP_ALL=false

  button_2 = STATION # RETURN_ALL=false
  button_2 = STATION # STATION_KEEP_ALL=true
	
  button_3 = RETURN  # RETURN_ALL=true
  button_3 = RETURN  # STATION_KEEP_ALL=false
  button_3 = RETURN  # OZONE_TAGS=false

  button_5 = CTF_RESET # UNTAG_REQUEST=vname=red_one
  button_5 = UNTAG_REQUEST=vname=red_two
  button_5 = UNTAG_REQUEST=vname=blue_one
  button_5 = UNTAG_REQUEST=vname=blue_two
  button_5 = FLAG_RESET=all

  button_6 = PAUSE # DEPLOY_ALL=false
  button_6 = MOOS_MANUAL_OVERRIDE_ALL=true
  button_6 = AQUATICUS_GAME_STATE=pause

  button_7 = MATCH_PREP # MATCH_PREP_ALL=true
  button_7 = PERIMETER_CHECK_ALL=false
  button_7 = PRECISE_STATION_KEEP_ALL=false

  button_8 = MATCH_START # MATCH_PREP_ALL=false
  button_8 = PERIMETER_CHECK_ALL=false
  button_8 = PRECISE_STATION_KEEP_ALL=false

	button_9  = Say-Mute   # SAY_VOLUME = mute 
	button_10 = Say-Normal # SAY_VOLUME = normal
	button_11 = Say-Soft   # SAY_VOLUME = soft
	button_12 = Say-VSoft  # SAY_VOLUME = vsoft

  
//op_vertex = x=194.76, y=75.68, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=234.72, y=178.16, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=285.96, y=157.88, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=246.00, y=55.70, lwidth=1,lcolor=yellow,looped=true,group=moa

  cmd = label=PERIMETER_CHECK, var=PERIMETER_CHECK,  sval=true,  receivers=$(VNAMES)
  cmd = label=PERIMETER_CHECK, var=PRECISE_STATION_KEEP,  sval=false,  receivers=$(VNAMES)

  cmd = label=RETURN, var=DEPLOY,  sval=true,  receivers=all:$(VNAMES)
  cmd = label=RETURN, var=MOOS_MANUAL_OVERRIDE, sval=false, receivers=all:$(VNAMES)
  cmd = label=RETURN, var=RETURN,  sval=true,  receivers=all:$(VNAMES)

  cmd = label=DEPLOY, var=DEPLOY,  sval=true,  receivers=all:$(VNAMES)
  cmd = label=DEPLOY, var=MOOS_MANUAL_OVERRIDE, sval=false, receivers=all:$(VNAMES)
  cmd = label=DEPLOY, var=RETURN,  sval=false,  receivers=all:$(VNAMES)
	
  cmd = label=ATTACK_EASY, var=ACTION, sval=ATTACK_E, receivers=$(VNAMES)

  cmd = label=ATTACK_MEDIUM, var=ACTION, sval=ATTACK_MED, receivers=$(VNAMES)

  cmd = label=DEFEND_EASY, var=ACTION, sval=DEFEND_E, receivers=$(VNAMES)

  cmd = label=DEFEND_MEDIUM, var=ACTION, sval=DEFEND_MED, receivers=$(VNAMES)

}

//--------------------------------------------------------
// uProcessWatch Config Block

ProcessConfig = uProcessWatch
{
  AppTick   = 1
  CommsTick = 1

  allow_retractions = true

  watch_all = true      // default is true

  nowatch = uXMS*
  nowatch = uPokeDB*
  nowatch = uQueryDB*

  summary_wait = 10
}

//------------------------------------------
// iSay Config Block

ProcessConfig = iSay
{
  AppTick   = 5
  CommsTick = 5

  min_utter_interval = 1.5
  interval_policy    = from_start

  //min_utter_interval = 0.1
  //interval_policy    = from_end

	volume    = vsoft
  os_mode   = both
  audio_dir = sounds
}


//------------------------------------------------------------
// uTimerScript configuration block

ProcessConfig = uTimerScript
{
  AppTick   = 4
  CommsTick = 4

  paused      = false
  reset_max   = unlimited
  reset_time  = end

  script_name = HEARTBEAT_SCRIPT

  event = var=HEARTBEAT, val="true", time=1
}