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

#ifndef YOYOIF_H_
#define YOYOIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the YoYo component in the
 *  GuidanceModule.
 *
 *  YoYo.h should only be included by YoYo.cpp
 *  Other classes should include YoYoIF.h
 *
 *  \ingroup modules_guidance
 */
namespace YoYoIF
{
/// Static const for component name
/// (Can be used by other components)
static const NameURI NAME( "YoYo", "Causes the vehicle to descend as quickly as "
                           "possible when it it pointing down, and to ascend as quickly "
                           "as possible when it is pointing up." );

/// Static consts for input settings
/// (Supplied so outputs can be directed to these inputs)
static const SettingURI PITCH_SETTING( "pitch", "Desired up/down pitch of the vehicle", Units::DEGREE );
static const SettingURI DOWN_PITCH_SETTING( "downPitch", "Desired downward pitch of the vehicle", Units::DEGREE );
static const SettingURI UP_PITCH_SETTING( "upPitch", "Desired upward pitch of the vehicle", Units::DEGREE );
static const SettingURI DEPTH_RATE_SETTING( "depthRate", "Desired up/down depth rate of the vehicle", Units::METER_PER_SECOND );
static const SettingURI DOWN_DEPTH_RATE_SETTING( "downDepthRate", "Desired downward depth rate of the vehicle", Units::METER_PER_SECOND );
static const SettingURI UP_DEPTH_RATE_SETTING( "upDepthRate", "Desired upward depth rate of the vehicle", Units::METER_PER_SECOND );
static const SettingURI SATISFIED_THRESHOLD_SETTING( "satisfiedThreshold", "Minimum depth change required to enable sequence behavior to be satisfied", Units::METER );
}

#endif /*YOYOIF_H_*/
