/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : Ips4IF.idl                                                    */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 05/25/2001                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/

/*
CLASS 
Ips4IF

DESCRIPTION
TaskInterface to Ips4 device driver

AUTHOR
Rich Henthorn

*/
#include "InstrumentIF.idl"

interface Ips4IF : InstrumentIF {

  typedef sequence<double,100> Vector;

  // Below are Commands that can be issued to the Ips4
  ///////////////////////////////////////////////////////////////////
  // Start (or resume) processing Ips4 data
  Status start();

  ///////////////////////////////////////////////////////////////////
  // Stop processing Ips4 data
  Status stop();

  ///////////////////////////////////////////////////////////////////
  // Start acquiring ctd profile for Ips ice draft calculation 
  Status startProfile();

  ///////////////////////////////////////////////////////////////////
  // Stop acquiring ctd profile for Ips ice draft calculation 
  Status stopProfile();

  ///////////////////////////////////////////////////////////////////
  //Below are function calls to get data and status from the driver

  ///////////////////////////////////////////////////////////////////
  // get_ice_draft returns the calculated ice draft
  //  Inputs: patm      Atmospheric pressure
  //          nelem     Number of elements in the vectors
  //          cond      Conductivity vector
  //          temp      Temperature vector
  //          pressure  Pressure vector
  //  Outputs:
  //          ice_draft Calculated ice draft
  //
  Status get_ice_draft(in double patm,
                       in short nelem,
                       in Vector cond, in Vector temp, in Vector pressure,
                       out double ice_draft);
  
};
