/****************************************************************************/
/* Copyright (c) 2013 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : Delta_T.h                                                       */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 01/19/2013                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _DELTA_T_H
#define _DELTA_T_H

#include "Behavior.h"
#include "DeltaTIF.h"

#define DeltaTBehaviorName "delta_t"

#define NullLegDuration -1.0

class FloatAttribute;
class AngleAttribute;
class StringAttribute;

/*
CLASS 
Delta_T

DESCRIPTION
This behavior sets driver and Delta_T sonars states

Attribute       Type               Meaning
---------       ----               -------
logMode         Integer            Enable Data Logging by MVC driver (1=ON, 0=OFF)

AUTHOR
Henthorn
*/
class Delta_T : public Behavior {

public:

  Delta_T();

  virtual ~Delta_T();

  virtual Boolean validInput();

  void test() { shouldBehaviorStart(); execute(); }

protected:

  virtual void execute();
  Boolean shouldBehaviorStart( void );

  long _sonar;
  long _logMode;
  long _idtMode;
  double _sos;
  long _update_sos;
  long _auto_sos;
  long _gain;
  long _gainEq;
  long _range;
  long _nBeams;
  long _width;
  long _size;
  long _avg;

  long _pmr;     // Profile Minimum Range (0 to 100 meters)
  long _tenable; // Trigger enable (1=>enable, 0=>not)
  long _tedge;   // Trigger Edge   (1=>positive, 0=>negative)
  long _tdelay;  // Trigger delay in usec (0 to 1,000,000 usec)
  long _ppf;     // Profile Point Filter (0=>1st return, 1=>max return, 2=>bottom following)

  // Initialize flag
  Boolean _init;

  // Delta_TIF server
  DeltaTIF *_server;
};



#endif
