/** \file
 *
 *  Specifies the interface details for the FrontTracking component in the
 *  GuidanceModule.
 *
 *  FrontTracking.h should only be included by FrontTracking.cpp
 *  Other classes should include FrontTrackingIF.h
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef FRONTTRACKINGIF_H_
#define FRONTTRACKINGIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the FrontTracking component in the
 *  GuidanceModule.
 *
 *  FrontTracking.h should only be included by FrontTracking.cpp
 *  Other classes should include FrontTrackingIF.h
 *
 *  \ingroup modules_guidance
 */
namespace FrontTrackingIF
{
/// Static const for component name
/// (Can be used by other components)
static const Str NAME( "FrontTracking" );

/// Static consts for input settings
/// (Supplied so outputs can be directed to these inputs)
static const SettingURI NORTHHDG_SETTING( "northHeading", Units::RADIAN );
static const SettingURI SOUTHHDG_SETTING( "southHeading", Units::RADIAN );
static const SettingURI EASTHDG_SETTING( "eastHeading", Units::RADIAN );
static const SettingURI WESTHDG_SETTING( "westHeading", Units::RADIAN );
static const SettingURI NEHDG_SETTING( "neHeading", Units::RADIAN );
static const SettingURI NWHDG_SETTING( "nwHeading", Units::RADIAN );
static const SettingURI SEHDG_SETTING( "seHeading", Units::RADIAN );
static const SettingURI SWHDG_SETTING( "swHeading", Units::RADIAN );
static const SettingURI SEARCHHDG_SETTING( "searchHeading", Units::RADIAN );
static const SettingURI LATNORTHWALL_SETTING( "latNorthWall", Units::DEGREE );
static const SettingURI LATSOUTHWALL_SETTING( "latSouthWall", Units::DEGREE );
static const SettingURI LONWESTWALL_SETTING( "lonWestWall", Units::DEGREE );
static const SettingURI LONEASTWALL_SETTING( "lonEastWall", Units::DEGREE );
static const SettingURI SHAPEZ_SETTING( "shapeZ", Units::BOOL );
static const SettingURI SHAPEN_SETTING( "shapeN", Units::BOOL );
static const SettingURI FLAGNORTHSOUTHSWEEP_SETTING( "flagNorthSouthSweep", Units::BOOL );
static const SettingURI FLAGNORTHWARDSWEEP_SETTING( "flagNorthwardSweep", Units::BOOL );
static const SettingURI FLAGEASTWARDSWEEP_SETTING( "flagEastwardSweep", Units::BOOL );
static const SettingURI WAITSECONDS_SETTING( "waitSeconds", Units::SECOND );

static const DataURI HIT_WALL( NAME, "hitWall", Units::BOOL );
static const DataURI VALID_FRONT_DETECTED( NAME, "validFrontDetected", Units::BOOL );

/// Static consts for outputs
static const OutputURI FRONT_DETECTION( "frontDetection", "Front detection", Units::BOOL );
}

#endif /*FRONTTRACKINGIF_H_*/
