/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : SimulatedCtd.h                                                */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _SimulatedCtd_H
#define _SimulatedCtd_H
#include "CtdIF_SK.h"
#include "SimulatorIF.h"

class SimulatedCtd : public CtdIF_SK {

public:

  SimulatedCtd();
  SimulatedCtd(const char* instName);
  ~SimulatedCtd();

protected:

  virtual void name(char*);
  virtual void serialNumber(char*);
  virtual DeviceIF::Status initialize();
  virtual DeviceIF::Status powerOn();
  virtual DeviceIF::Status powerOff();
  virtual DeviceIF::Status status();
  virtual DeviceIF::Status dataLoggingOn();
  virtual DeviceIF::Status dataLoggingOff();
  
  virtual Boolean ready();
  virtual DeviceIF::Status get_CTD_data(float *conductivity, float *temperature, float *depth, float *tfreq, float *cfreq, TimeIF::TimeSpec *conductivityTime, TimeIF::TimeSpec *temperatureTime, float *v1, float *v2, float *v3, float *v4, float *v5, float *v6);
  virtual DeviceIF::Status conductivity(float *cond, float *cfreq, TimeIF::TimeSpec *sampleTime);
  virtual DeviceIF::Status temperature(float *temp, float *tfreq, TimeIF::TimeSpec *sampleTime);
  virtual DeviceIF::Status salinity(float *salinity);
  virtual DeviceIF::Status voltages(float *v1, float *v2, float *v3, float *v4, float *v5, float *v6);
  
  virtual int spawnAuxTasks();

  SimulatorIF *_simulator;
};

#endif
