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

#ifndef SLOWYOIF_H_
#define SLOWYOIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the SlowYo component in the
 *  GuidanceModule.
 *
 *  SlowYo.h should only be included by SlowYo.cpp
 *  Other classes should include SlowYoIF.h
 *
 *  \ingroup modules_guidance
 */
namespace SlowYoIF
{
/// Static const for component name
/// (Can be used by other components)
static const NameURI NAME( "SlowYo", "Smooth YoYo -- Dives and Surfaces with smooth transitions using Depth Rate mode" );

/// Static consts for input settings
/// (Supplied so outputs can be directed to these inputs)
static const SettingURI DIVE_ANGLE_SETTING( "diveAngle", "Dive angle of vehicle", Units::DEGREE );
static const SettingURI SPEED_SETTING( "speed", "Desired speed of the vehicle", Units::METER_PER_SECOND );
static const SettingURI MIN_DEPTH_SETTING( "minDepth", "Desired minimum depth of the SlowYo", Units::METER );
static const SettingURI MAX_DEPTH_SETTING( "maxDepth", "Desired maximum depth of the SlowYo", Units::METER );
static const SettingURI SMOOTHING_FACTOR_SETTING( "smoothingFactor", "Smoothing factor blending trapezoidal & sinusoidal depth rate profile", Units::PERCENT );
}

#endif /*SLOWYOIF_H_*/
