/****************************************************************************/
/* Copyright (c) 2006 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : TerrainAidIF.idl                                         */
/* Author   : rsm                                                           */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 21/03/2007                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/

/*
CLASS 
TerrainAidIF

DESCRIPTION
TaskInterface to Gulper device server

AUTHOR
Rob McEwen

*/
interface TerrainAidIF 
{

      typedef sequence<double, 6> Double6;
      typedef sequence<double, 2> Double2;

      struct Data {
	    double x;
	    double y;
	    double z;
       double deltaNorthing;
       double deltaEasting;

#if 0
	    double vx;
	    double vy;
	    double vz;
	    double ax;
	    double ay;
	    double az;
	    double phi;
	    double theta;
	    double psi;
	    double p;
	    double q;
	    double r;
	    Double6 covariance;
#endif

	    double time;
	    Double2 covariance;
	    short cntr;
	    boolean valid;

       /* Used as an i/o to the TRN engine */
       
       boolean reinitFilter;
	    boolean trnConnected;
      };

      void get( out Data data );

      void reinitFilter( );

      // Returns true if TerrainAid is connected
      //
      boolean trnConnected();

      //
      // Returns "true" if TerrainNav has converged.
      boolean converged();
   
      void offset( in double dn, in double de );

      short counter( );
};
