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

#ifndef BALLASTANDTRIMIF_H_
#define BALLASTANDTRIMIF_H_

#include "data/ElementURI.h"

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

#include "component/HasEnableBroadcastIF.h"

// Inputs from the mission .xml file
static const SettingURI EST_TIMEOUT_SETTING( "estimationTimeout", "Time duration to run B&T estimation", Units::MINUTE );
static const SettingURI MIN_EST_TIME_SETTING( "minEstimationTime", "Min time duration of B&T estimation", Units::SECOND );
static const SettingURI MASS_CONVERGENCE_ERRORBOUND_SETTING( "massErrorBound", "Acceptable divargence of mass position sample mean from the true mean.", Units::MILLIMETER );
static const SettingURI BUOY_CONVERGENCE_ERRORBOUND_SETTING( "buoyErrorBound", "Acceptable divargence of buoy position sample mean from the true mean", Units::CUBIC_CENTIMETER );
static const SettingURI CONFIDENCE_SETTING( "confidenceLevel", "Confidence level that sample mean is within a certain range of the true mean", Units::PERCENT );

// Outputs to mission: (and for logging, hopefully!)
// XXX DO NOT USE OutputURI for this purpose!
static const DataURI MASS_POSITION_ESTIMATED_MEAN( NAME, "mass_position_estimated_mean", Units::MILLIMETER );
static const DataURI MASS_POSITION_ESTIMATED_VARIANCE( NAME, "mass_position_estimated_variance", Units::MILLIMETER );
static const DataURI BUOYANCY_POSITION_ESTIMATED_MEAN( NAME, "buoyancy_position_estimated_mean", Units::CUBIC_CENTIMETER );
static const DataURI BUOYANCY_POSITION_ESTIMATED_VARIANCE( NAME, "buoyancy_position_estimated_variance", Units::CUBIC_CENTIMETER );

}

#endif /*BALLASTANDTRIMIF_H_*/
