/** \file
 *
 *  Specifies the interface details for the PNI_TCM component in the
 *  SensorModule.
 *
 *  PNI_TCM.h should only be included by PNI_TCM.cpp
 *  Other classes should include PNI_TCMIF.h
 *
 *  Copyright (c) 2014 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef PNI_TCMIF_H_
#define PNI_TCMIF_H_

#include "data/ElementURI.h"

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

// 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 DataURI COMPASS_ORIENTATION_READING( NAME, "CompassOrientation", Units::DEGREE );
static const DataURI COMPASS_TEMPERATURE_READING( NAME, "CompassTemperature", Units::CELSIUS );

static const DataURI MX_READING( NAME, "Mx", Units::MICROTESLA );
static const DataURI MY_READING( NAME, "My", Units::MICROTESLA );
static const DataURI MZ_READING( NAME, "Mz", Units::MICROTESLA );

static const DataURI AX_READING( NAME, "Ax", Units::METER_PER_SECOND_SQUARED );
static const DataURI AY_READING( NAME, "Ay", Units::METER_PER_SECOND_SQUARED );
static const DataURI AZ_READING( NAME, "Az", Units::METER_PER_SECOND_SQUARED );

static const ConfigURI VERBOSITY_CFG( NAME, "verbosity", Units::COUNT );
static const ConfigURI MAG_DEVIATION_CFG( NAME, "magDeviation", Units::DEGREE );
static const ConfigURI PITCH_OFFSET_CFG( NAME, "pitchOffset", Units::DEGREE );
static const ConfigURI ROLL_OFFSET_CFG( NAME, "rollOffset", Units::DEGREE );
static const ConfigURI READ_ACCELERATIONS_CFG( NAME, "readAccelerations", Units::BOOL );
static const ConfigURI READ_MAGNETICS_CFG( NAME, "readMagnetics", Units::BOOL );

}

#endif /*PNI_TCMIF_H_*/
