/****************************************************************************/
/* Copyright (c) 2004 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : FastCatIF.idl                                                 */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 04/07/2004                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/

/*
CLASS 
FastCatIF

DESCRIPTION
TaskInterface to FastCat device driver 

AUTHOR
Henthorn

*/

#include "InstrumentIF.idl"

interface FastCatIF : InstrumentIF {

  /////////////////////////////////////////////////////////
  // Return true if device is ready to go, otherwise false
  boolean ready();

  /////////////////////////////////////////////////////////
  // Get all Data from CTD Simultaneously
  Status get_CTD_data(out float conductivity, out float temperature, 
        	      out float depth, 
                      out TimeIF::TimeSpec conductivityTime,
                      out TimeIF::TimeSpec temperatureTime,
		      out float salinity, out float soundVelocity,
		      out long tcounts, out float cfreq, out long pcounts,
                      out float presCompVoltage);

  ////////////////////////////////////////////////////////
  // Get Conductivity Data
  Status conductivity(out float cond, out float cfreq,
                      out TimeIF::TimeSpec sampleTime);

  ///////////////////////////////////////////////////////////////////
  // Get Temperature
  Status temperature(out float temp, out long tcounts,
                      out TimeIF::TimeSpec sampleTime);

  ///////////////////////////////////////////////////////////////////
  // Get calculated salinity value and the conductivity sample time
  Status salinity(out float sal, out TimeIF::TimeSpec sampleTime);

  ///////////////////////////////////////////////////////////////////
  // Get calculated sound velocity value and conductivity sample time
  Status soundVelocity(out float velocity, out TimeIF::TimeSpec sampleTime);
};
