/****************************************************************************/
/* Copyright (c) 2006 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : IsusServer.h                                                  */
/* Author   : Frederic Py                                                   */
/* Project  : Autnomy                                                       */
/* Version  : 1.0                                                           */
/* Created  : 11/01/2007                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include <iostream.h>
#include "IsusIF_SK.h"
#include "DeviceInterface.h"
#include "SerialDevice.h"
#include "IsusOutput.h"
#include "SerialParameters.h"

/*
CLASS
IsusServer

DESCRIPTION
Server Interface for Isus 

AUTHOR
Frederic Py
*/


class IsusServer : public IsusIF_SK {

public:

  IsusServer(const char *name, SerialParameters *serialParams,
		const char *instName);
  ~IsusServer();
  

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 getData(IsusIF::Data *data);
    
  virtual int spawnAuxTasks();

  Boolean ready();  
  SerialParameters *_serialParams;
  IsusOutput *_output;
  char *_instName;
};


