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

#ifndef ALTITUDEENVELOPEIF_H_
#define ALTITUDEENVELOPEIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the AltitudeEnvelope component in the
 *  GuidanceModule.
 *
 *  AltitudeEnvelope.h should only be included by AltitudeEnvelope.cpp
 *  Other classes should include AltitudeEnvelopeIF.h
 *
 *  \ingroup modules_guidance
 */
namespace AltitudeEnvelopeIF
{
/// Static const for component name
/// (Can be used by other components)
static const NameURI NAME( "AltitudeEnvelope", "If the vehicle's altitude is within the specified "
                           "max/min envelope, the command is satisfied. Otherwise, "
                           "the vehicle is sent to a depth where its altitude "
                           "should be within the specified max/min envelope." );

/// Static consts for input settings
/// (Supplied so outputs can be directed to these inputs)
static const SettingURI MIN_ALTITUDE_SETTING( "minAltitude", "Desired minimum "
        "height above sea floor for the vehicle", Units::METER );
static const SettingURI MAX_ALTITUDE_SETTING( "maxAltitude", "Desired maximum "
        "height above sea floor for the vehicle", Units::METER );

static const SettingURI MAX_DEPTH_IGNORE_SETTING( "maxDepthIgnore", "Desired maximum "
        "depth to ignore altitude inputs for the vehicle", Units::METER );

static const SettingURI DEPTH_RATE_SETTING( "depthRate", "Desired up/down "
        "depthRate of the vehicle", Units::METER_PER_SECOND );
static const SettingURI DOWN_DEPTH_RATE_SETTING( "downDepthRate", "Desired "
        ""
        "downward depthRate of the vehicle", Units::METER_PER_SECOND );
static const SettingURI UP_DEPTH_RATE_SETTING( "upDepthRate", "Desired upward "
        "depthRate of the vehicle", Units::METER_PER_SECOND );

static const SettingURI PITCH_SETTING( "pitch", "Desired up/down pitch of the "
                                       "vehicle", Units::RADIAN );
static const SettingURI DOWN_PITCH_SETTING( "downPitch", "Desired downward "
        "pitch of the vehicle", Units::RADIAN );
static const SettingURI UP_PITCH_SETTING( "upPitch", "Desired upward pitch "
        "of the vehicle", Units::RADIAN );
}

#endif /*ALTITUDEENVELOPEIF_H_*/
