/****************************************************************************/
/* Copyright (c) 2003 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : FastCatServer.h                                               */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 12/17/2003                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include <iostream.h>
#include "AdamIF_SK.h"
#include "DeviceInterface.h"
#include "SerialDevice.h"
#include "adam6017Output.h"
#include "SerialParameters.h"

/*
CLASS
FastCatServer

DESCRIPTION
Server Interface for FastCat CTD

AUTHOR
Rich Henthorn

*/


class Adam6017Server : public AdamIF_SK {

public:

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

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 get(TimeIF::TimeSpec *sampleTime,
			       unsigned short *v1,
			       unsigned short *v2,
                	       unsigned short *v3,
    			       unsigned short *v4,
                               unsigned short *v5,
      			       unsigned short *v6,
  			       unsigned short *v7,
 			       unsigned short *v8); 


  virtual Boolean ready(); // Return True is device is ready
    
  virtual int spawnAuxTasks();
  
  SerialParameters *_serialParams;
  adam6017Output *_output;
};
