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

#ifndef CTD_SEABIRDIF_H_
#define CTD_SEABIRDIF_H_

#include "data/ElementURI.h"

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

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

static const ConfigURI SBE_43F_SERIAL_NUMBER( NAME, "SBE43FSerialNumber", Units::NONE_INT );
static const ConfigURI OXYGEN_CAL_COEFF_FOFFSET( NAME, "oxygenCalCoeffFOffset", Units::NONE );
static const ConfigURI OXYGEN_CAL_COEFF_SOC( NAME, "oxygenCalCoeffSoc", Units::NONE );
static const ConfigURI OXYGEN_CAL_COEFF_A( NAME, "oxygenCalCoeffA", Units::NONE );
static const ConfigURI OXYGEN_CAL_COEFF_B( NAME, "oxygenCalCoeffB", Units::NONE );
static const ConfigURI OXYGEN_CAL_COEFF_C( NAME, "oxygenCalCoeffC", Units::NONE );
static const ConfigURI OXYGEN_CAL_COEFF_E( NAME, "oxygenCalCoeffE", Units::NONE );
static const ConfigURI MAX_PRESS_BOUND( NAME, "maxPressBound", Units::DECIBAR );
static const ConfigURI MIN_PRESS_BOUND( NAME, "minPressBound", Units::DECIBAR );
static const ConfigURI MAX_SALINITY_BOUND( NAME, "maxSalinityBound", Units::PRACTICAL_SALINITY_UNIT );
static const ConfigURI MIN_SALINITY_BOUND( NAME, "minSalinityBound", Units::PRACTICAL_SALINITY_UNIT );
static const ConfigURI OFFSET( NAME, "offset", Units::DECIBAR );
static const ConfigURI VERBOSITY_CFG( NAME, "verbosity", Units::COUNT );

static const DataURI OXYGEN_FREQUENCY( NAME, "sea_water_dissolved_oxygen_freq", Units::HERTZ );

static const DataURI BIN_MEDIAN_SEA_WATER_TEMPERATURE( NAME, "bin_median_sea_water_temperature", Units::CELSIUS );
static const DataURI BIN_MEAN_SEA_WATER_TEMPERATURE( NAME, "bin_mean_sea_water_temperature", Units::CELSIUS );
static const DataURI BIN_STANDARD_DEVIATION_SEA_WATER_TEMPERATURE( NAME, "bin_standard_deviation_sea_water_temperature", Units::CELSIUS );
static const DataURI BIN_MEDIAN_SEA_WATER_SALINITY( NAME, "bin_median_sea_water_salinity", Units::PRACTICAL_SALINITY_UNIT );
static const DataURI BIN_MEAN_SEA_WATER_SALINITY( NAME, "bin_mean_sea_water_salinity", Units::PRACTICAL_SALINITY_UNIT );
static const DataURI BIN_STANDARD_DEVIATION_SEA_WATER_SALINITY( NAME, "bin_standard_deviation_sea_water_salinity", Units::PRACTICAL_SALINITY_UNIT );

}

#endif /*CTD_SEABIRDIF_H_*/
