/** \file
 *
 *  Specifies the interface details for the HFRCMVirtualSurfaceDrifter
 *  component in the EstimationModule.
 *
 *  HFRCMVirtualSurfaceDrifter.h should only be included by
 *  HFRCMVirtualSurfaceDrifter.cpp
 *  Other classes should include HFRCMVirtualSurfaceDrifter.h
 *
 *  Copyright (c) 2013, 2014 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef HFRCMVIRTUALSURFACEDRIFTERIF_H_
#define HFRCMVIRTUALSURFACEDRIFTERIF_H_

#include "data/ElementURI.h"

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

// Include common ConfigURIs -- must be in namespace and follow definition of NAME
#include "component/HasLoadAtStartupIF.h"

// configuration parameters
static const ConfigURI VELOCITY_ACCURACY( NAME, "velocityAccuracy", Units::METER_PER_SECOND );

// slate outputs
static const DataURI EASTWARD_VELOCITY( NAME, "eastward_velocity", Units::METER_PER_SECOND );
static const DataURI NORTHWARD_VELOCITY( NAME, "northward_velocity", Units::METER_PER_SECOND );
static const DataURI COURSE( NAME, "course", Units::DEGREE );
static const DataURI HORIZONTAL_DISPLACEMENT( NAME, "horizontal_displacement", Units::METER );
static const DataURI LATITUDE( NAME, "latitude", Units::DEGREE );
static const DataURI LONGITUDE( NAME, "longitude", Units::DEGREE );
static const DataURI INITIAL_LATITUDE( NAME, "initial_latitude", Units::DEGREE );
static const DataURI INITIAL_LONGITUDE( NAME, "initial_longitude", Units::DEGREE );
}

#endif /* HFRCMVIRTUALSURFACEDRIFTERIF_H_ */
