/****************************************************************************/
/* Copyright (c) 2007 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : AtsServer.h                                                   */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 06/08/2007                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include "AuvTimeSyncIF_SK.h"
#include "AtsOutput.h"
#include "DeviceIF.h"

/*
CLASS
AtsServer

DESCRIPTION
Interface to AuvTimeSync synhronization process

AUTHOR
Henthorn

*/
class AtsServer : public AuvTimeSyncIF_SK {

public:

  AtsServer(short port);
  ~AtsServer();
  

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 enable();
  virtual DeviceIF::Status disable();

  virtual int spawnAuxTasks();
  
  /////////////////////////////////////////////////////////
  // Return true if device is ready to go, otherwise false
  virtual Boolean ready();
  void getDrift(float* drift);
  void getDelta(float* delta);
  short _port;
  
  AtsOutput *_output;
};


