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

#ifndef BATT_OCEAN_SERVERIF_H
#define BATT_OCEAN_SERVERIF_H

#include "data/ElementURI.h"

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

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

static const int NUM_BATTSA = 8;
static const int NUM_BATTSB = 4;

// accuracies below moved from call to Slate::NewUniversalWriter in Batt_Ocean_Server.cpp
static const float PLATFORM_BATTERY_CHARGE_ACCURACY = 0.25;
static const float PLATFORM_BATTERY_VOLTAGE_ACCURACY = 0.25;

/// Static consts for outputs
/// (Supplied so inputSettings can be directed to these outputs)
/// Probably only inputs should define names...
/// but we have no inputs to consume these values yet!
static const Str BATT_STATUS_BASENAME( "BattStatus_" );
static const Str BATT_VOLTAGE_BASENAME( "BattVoltage_" );
static const Str BATT_CURRENT_BASENAME( "BattCurrent_" );
static const Str BATT_TEMP_BASENAME( "BattTemp_" );
static const Str BATT_CAPACITY_BASENAME( "BattCapacity_" );

}

namespace Batt_Ocean_ServerAIF
{
static const Str NAME( "Batt_Ocean_ServerA" );
#include "component/HasUartIF.h"
}

namespace Batt_Ocean_ServerBIF
{
static const Str NAME( "Batt_Ocean_ServerB" );
#include "component/HasUartIF.h"
}

#endif /*BATT_OCEAN_SERVERIF_H*/
