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

#include "data/ElementURI.h"

#ifndef DOCKINGSTEPPERIF_H_
#define DOCKINGSTEPPERIF_H_

/**
 *  Specifies the interface details for the DockingStepper component in the
 *  ServoModule.
 *
 *  DockingStepper.h should only be included by DockingStepper.cpp
 *  Other classes should include DockingStepperIF.h
 *
 *  \ingroup modules_controller
 */
namespace DockingStepperIF
{
// Component name
static const Str NAME( "DockingStepper" );

// 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/HasUartIF.h"

// Include parent URIs -- must be in namespace and follow definition of NAME
#include "EZServoAllIF.h"
#include "EZServoVelocityIF.h"

static const DataURI ARM_VALUE_ACTION( NAME, "armValueAction", Units::COUNT ); // Used to command the arm position
static const DataURI ARM_VALUE( NAME, "armValue", Units::COUNT ); // Used to reflect the position of the arm
static const DataURI CABLE_VALUE_READING( NAME, "cableValue", Units::COUNT ); // Actual A/D value from cable sensor

static const ConfigURI OPEN_VALUE_CFG( NAME, "openValue", "ADC value to consider arm open", Units::COUNT );
static const ConfigURI CLOSED_VALUE_CFG( NAME, "closedValue", "ADC value to consider arm closed", Units::COUNT );
static const ConfigURI SLIDE_VALUE_CFG( NAME, "slideValue", "ADC value to consider arm partially closed, in slide mode", Units::COUNT );
static const ConfigURI DEVIATION_VALUE_CFG( NAME, "deviationValue", "difference in ADC counts to consider the actuator as on position", Units::COUNT );


}

#endif /*DOCKINGSTEPPERIF_H_*/
