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

#ifndef BACKSEATCOMPONENTIF_H_
#define BACKSEATCOMPONENTIF_H_

#include "data/ElementURI.h"

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

// 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/HasLoadControl2IF.h"
#include "component/HasMissionCriticalIF.h"

static const ConfigURI LCM_LISTENER_TIMEOUT_CFG( NAME, "lcmListenerTimeout", Units::SECOND );
static const ConfigURI BACKSEAT_SHUTDOWN_CMD_CFG( NAME, "shutdownCmd", Units::NONE, STRVALUE );
static const ConfigURI VERBOSITY_CFG( NAME, "verbosity", Units::COUNT );
static const ConfigURI ALWAYS_ON_CFG( NAME, "alwaysOn", Units::BOOL );
static const ConfigURI NEEDS_24V_CFG( NAME, "needs24v", Units::BOOL );

static const DataURI POWER_BACKSEAT_COMP( NAME, "power_backseat", Units::BOOL );
static const DataURI BACKSEAT_HANDLE_MSG( NAME, "handled_message", Units::BOOL );

}

#endif /*BACKSEATCOMPONENTIF_H_*/
