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

#ifndef WETLABSSEAOWL_UV_AIF_H
#define WETLABSSEAOWL_UV_AIF_H

#include "data/ElementURI.h"

/**
 *  Specifies the interface details for the WetLabsSeaOWL_UV_A component in the
 *  SensorModule.
 *
 *  \ingroup modules_sensor
 */
namespace WetLabsSeaOWL_UV_AIF
{
/// Static const for component name
/// (Can be used by other components)
static const Str NAME( "WetLabsSeaOWL_UV_A" );

// 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 TIMEOUT( NAME, "timeout", Units::SECOND );
static const ConfigURI PERIOD( NAME, "period", Units::SECOND );
static const ConfigURI SERIAL( NAME, "serial", Units::NONE );
static const ConfigURI SCALE_FACTOR_700( NAME, "scaleFactor700", Units::RECIPROCAL_METER_PER_STERADIAN_PER_COUNT );
static const ConfigURI DARK_COUNTS_700( NAME, "darkCounts700", Units::COUNT );;
static const ConfigURI SCALE_FACTOR_FDOM( NAME, "scaleFactorFDOM", Units::PART_PER_BILLION_PER_COUNT );
static const ConfigURI DARK_COUNTS_FDOM( NAME, "darkCountsFDOM", Units::COUNT );
static const ConfigURI FDOM_ACCURACY( NAME, "fdomAccuracy", Units::PART_PER_BILLION );
static const ConfigURI SCALE_FACTOR_CHL( NAME, "scaleFactorChl", Units::MICROGRAM_PER_LITER_PER_COUNT );
static const ConfigURI DARK_COUNTS_CHL( NAME, "darkCountsChl", Units::COUNT );
static const ConfigURI CHL_ACCURACY( NAME, "chlAccuracy", Units::MICROGRAM_PER_LITER );
static const ConfigURI SCALE_FACTOR_OIL( NAME, "scaleFactorOil", Units::PART_PER_BILLION_PER_COUNT );
static const ConfigURI DARK_COUNTS_OIL( NAME, "darkCountsOil", Units::COUNT );
static const ConfigURI OIL_ACCURACY( NAME, "oilAccuracy", Units::PART_PER_BILLION );

static const DataURI OUTPUT_700( NAME, "Output700", Units::COUNT );
static const DataURI OUTPUT_FDOM( NAME, "OutputFDOM", Units::COUNT );
static const DataURI OUTPUT_CHL( NAME, "OutputChl", Units::COUNT );
static const DataURI OUTPUT_OIL( NAME, "OutputOil", Units::COUNT );

static const DataURI VOLUME_SCAT_COEFF_117DEG_700NM( NAME, "VolumeScatCoeff117deg700nm", Units::RECIPROCAL_METER_PER_STERADIAN );

static const DataURI BACKSCATTERING_COEFF_700NM( NAME, "BackscatteringCoeff700nm", Units::RECIPROCAL_METER );

}

#endif /*WETLABSSEAOWL_UV_AIF_H*/
