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

#ifndef ALTITUDESERVOIF_H_
#define ALTITUDESERVOIF_H_

#include "data/ElementURI.h"

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

/// Static consts for input settings
/// (Supplied so outputs can be directed to these inputs)
static const SettingURI TARGET_ALTITUDE_SETTING( "targetAltitude", "Desired vehicle altitude", Units::METER );
static const SettingURI ALTITUDE_DEVIATION_SETTING( "altitudeDeviation", "Deviation allowed between desired altitude and actual", Units::METER );
static const SettingURI INVALID_ALTITUDE_TIMEOUT_SETTING( "invalidAltitudeTimeout", "Specifies the time duration allowed with no valid altitude reading", Units::SECOND );
static const SettingURI MAX_DEPTH_LIMIT_SETTING( "maxDepthLimit", "Vehicle will not be commanded deeper than this regardless of altitude command.", Units::METER );
static const SettingURI INIT_DEPTH_SETTING( "initialDepth", "Optional initial depth command to bring the vehicle within DVL bottom lock range.", Units::METER );
static const SettingURI IIR_FILTER_DECAY_SETTING( "iirFilterDecay", "Single-pole IIR low-pass filter decay setting. "
        "Decay value is in (0, 1), set to 0 to disable depth-command filtering.", Units::NONE );

}

#endif /*ALTITUDESERVOIF_H_*/
