/** \file
 *
 *  Specifies the interface details for Dock settings in the
 *  DockModule.
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef DOCKIF_H_
#define DOCKIF_H_

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for dock configuration settings.
 *
 *  \ingroup modules_dock
 */
namespace DockIF
{
/// Static const for component name
/// (Can be used by other components)
static const Str NAME( "Dock" );

static const RestartConfigURI DOCK_LAT_CFG( NAME, "lat", "Dock latitude.", Units::DEGREE );
static const RestartConfigURI DOCK_LON_CFG( NAME, "lon", "Dock longitude.", Units::DEGREE );
static const RestartConfigURI DOCK_DEPTH_CFG( NAME, "depth", "Dock transponder depth.", Units::METER );
static const RestartConfigURI DOCK_TRANSPONDER_CODE_CFG( NAME, "transponderCode", "Dock transponder code.", Units::COUNT );

static const DataURI DOCKING_STATE_CMD( NAME, "docking_state_cmd", "Commands the state of the vehicle's docking hardware.", Units::ENUM );
static const DataURI DOCKING_STATE( NAME, "docking_state", "Reflects the state of the vehicle's docking hardware.", Units::ENUM );

static const DataURI DOCK_CABLE_PRESENT( NAME, "dock_cable_present", "Indicates the vehicle's docking hardware senses an obstruction across the IR sensor.", Units::BOOL );

/// Docking state definitions
/// Reflects the command and status of the vehicle's docking hardware
typedef enum
{
    ERROR = -1,
    UNKNOWN,
    STANDBY,
    ARM,
    DETACH,
    SLIDE
} DockingState;

}

#endif /*DOCKIF_H_*/

