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

#ifndef UNDOCKIF_H_
#define UNDOCKIF_H_

#include "data/ElementURI.h"

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

/// Static consts for input settings

/// Undocking depth objective
static const ConfigURI UNDOCK_DEPTH_CFG( NAME, "undockDepth", "Undocking depth.", Units::METER );

/// Range objective for undock
static const ConfigURI UNDOCK_RANGE_CFG( NAME, "undockRange", "Desired absolute range "
        "from dock.", Units::METER );

/// Time duration for determining if the vehicle is detached
static const ConfigURI UNDOCK_TIMEOUT_CFG( NAME, "undockTimeout", "Time duration "
        " for determining if the vehicle is detached from the dock.", Units::SECOND );

/// Max time duration to keep thruster engaged in reverse
static const ConfigURI REVERSE_THRUST_TIMEOUT_CFG( NAME, "reverseThrustTimeout", "Max time duration "
        "to keep thruster engaged in reverse to break apart from the dock.", Units::SECOND );

/// Report state transitions to shore
static const ConfigURI VERBOSE( NAME, "verbose", "Report state transitions to shore when true", Units::BOOL );

}

#endif /*UNDOCKIF_H_*/
