/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : CTDServer.h                                                   */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include <iostream.h>
#include "CTDIF_SK.h"
#include "DeviceInterface.h"
#include "SerialDevice.h"
#include "CTDOutput.h"
#include "SimulatedDevice.h"

/*
CLASS
CTDServer

DESCRIPTION
Server Interface for CTD

AUTHOR
Tom O'Reilly

*/


class CTDServer : public CTDIF_SK {

public:

  CTDServer(const char *name, DeviceInterface *device);
  ~CTDServer();
  

protected:
  
  virtual long get_CTD_data(float *cond,
			    float *temp,
			    float *depth,
			    float *tfreq,
			    float *cfreq,
			    long *cond_time_s,
			    long *cond_time_ns,
			    long *temp_time_s,
			    long *temp_time_ns,
			    float *v1,
			    float *v2,
			    float *v3,
			    float *v4,
			    float *v5,
			    float *v6
			    );

  virtual long conductivity(float *cond, float *cfreq);
  virtual long temperature(float *temp, float *tfreq);
  virtual long voltages(float *v1,
			float *v2,
			float *v3,
			float *v4,
			float *v5,
			float *v6 );
    
  virtual int spawnAuxTasks();
  
  DeviceInterface *_device;
  CTDOutput *_output;
};


