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

#ifndef TURBULENCE_NPSIF_H_
#define TURBULENCE_NPSIF_H_

#include "data/ElementURI.h"

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

// 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 int DATA_WORDS = 81;

static const short NUM_BYTES = 172;

static const BlobURI MICRO_TEMP1( NAME, "MicroTemp1", Units::NONE, BLOB_INT16BE, 17 );

static const BlobURI MICRO_TEMP2( NAME, "MicroTemp2", Units::NONE, BLOB_INT16BE, 17 );

static const BlobURI MICRO_COND( NAME, "MicroCond", Units::NONE, BLOB_INT16BE, 34 );

static const DataURI NUM_TEMP_COND_SAMPLES( NAME, "NumTempCondSamples", Units::COUNT, UCHAR1 );

static const BlobURI ACM_PATH( NAME, "ACMPath", Units::NONE, BLOB_INT16BE, 4 );

static const DataURI PLATFORM_ROLL_ANGLE( NAME, "platform_roll_angle", Units::RADIAN );

static const DataURI PLATFORM_PITCH_ANGLE( NAME, "platform_pitch_angle", Units::RADIAN );

static const DataURI PLATFORM_ORIENTATION( NAME, "platform_orientation", Units::RADIAN );

static const DataURI DELTA_X_VELOCITY( NAME, "DeltaXVelocity", Units::NONE, SHORT2 );

static const DataURI DELTA_Y_VELOCITY( NAME, "DeltaYVelocity", Units::NONE, SHORT2 );

static const DataURI DELTA_Z_VELOCITY( NAME, "DeltaZVelocity", Units::NONE, SHORT2 );

static const BlobURI FWD_SIG_STRENGTH( NAME, "FwdSigStrength", Units::NONE, BLOB_UINT16BE, 4 );

static const DataURI PACKET_NUM( NAME, "packetNum", Units::COUNT );

}

#endif /*TURBULENCE_NPSIF_H_*/
