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

#ifndef CIRCLEIF_H_
#define CIRCLEIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the Circle component in the
 *  GuidanceModule.
 *
 *  Circle.h should only be included by Circle.cpp
 *  Other classes should include CircleIF.h
 *
 *  \ingroup modules_guidance
 */
namespace CircleIF
{
/// Static const for component name
/// (Can be used by other components)
static const NameURI NAME( "Circle", "Drives the vehicle in a circle at a set radius from a waypoint" );

/// Static consts for input settings
/// (Supplied so outputs can be directed to these inputs)
static const SettingURI ANGLE_SETTING( "angle", "Angle of the circle to proceed "
                                       "through if running sequentially.", Units::RADIAN );
static const SettingURI EASTINGS_DELTA_SETTING( "eastingsDelta", "Desired change "
        "in longitude to achieve, expressed as a distance", Units::METER );
static const SettingURI LATITUDE_SETTING( "latitude", "Desired waypoint "
        "latitude", Units::DEGREE );
static const SettingURI LATITUDE_DELTA_SETTING( "latitudeDelta", "Desired "
        "waypoint latitude delta from the current latitude", Units::DEGREE );
static const SettingURI LONGITUDE_SETTING( "longitude", "Desired waypoint "
        "longitude", Units::DEGREE );
static const SettingURI LONGITUDE_DELTA_SETTING( "longitudeDelta", "Desired "
        "waypoint latitude delta from the current latitude", Units::DEGREE );
static const SettingURI MAX_ERROR_SETTING( "maxError", "Maximum radial error: "
        "if outside this range, drive straight to the circle perimeter", Units::METER );
static const SettingURI NORTHINGS_DELTA_SETTING( "northingsDelta", "Desired "
        "change in latitude to achieve, expressed as a distance", Units::METER );
static const SettingURI RADIUS_SETTING( "radius", "radius of the circle", Units::METER );
static const SettingURI TURN_TO_PORT_SETTING( "turnToPort", "If true, vehicle "
        "turns to port around the circle. Otherwise to starboard", Units::BOOL );

}

#endif /*CIRCLEIF_H_*/
