/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : ParosciServer.h                                               */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
/*
CLASS
ParosciServer

DESCRIPTION
Server Interface for Datasonics Parosci

*/

#ifndef _PAROSCI_SERVER_H
#define _PAROSCI_SERVER_H

#include <iostream.h>
#include "DepthSensorIF_SK.h"
#include "ParosciOutput.h"
#include "SerialParameters.h"

class ParosciServer : public DepthSensorIF_SK {

public:

  ParosciServer(const char *name, SerialParameters *serialParams);
  ~ParosciServer();
  

protected:

  virtual void name(DeviceIF::Name name);
  virtual void serialNumber(DeviceIF::Name id);
  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 DeviceIF::Status depth(double *value, TimeIF::TimeSpec *time);
  virtual DeviceIF::Status pressure(double *value, TimeIF::TimeSpec *time);
  virtual DeviceIF::Status temp(double *value, TimeIF::TimeSpec *time);
  virtual DeviceIF::Status calibrate();

  virtual int spawnAuxTasks();
  
  ParosciOutput *_output;
  SerialParameters *_serialParams;
};

#endif
