#ifndef _SimulatedHydroscat_H
#define _SimulatedHydroscat_H
#include "HydroscatIF_SK.h"
#include "SimulatorIF.h"


/*
CLASS 
HydroscatServer

*/

#define HYDROSCATSERVER "HydroscatIFServer"

class SimulatedHydroscat : public HydroscatIF_SK {

public:

   SimulatedHydroscat(const char *name);
  ~SimulatedHydroscat();
  

protected:

  virtual void name(DeviceIF::Name name);
  virtual void serialNumber(DeviceIF::Name id);
  virtual DeviceIF::Status initialize();
  virtual DeviceIF::Status powerOn();
  virtual DeviceIF::Status status();
  virtual DeviceIF::Status powerOff();
  virtual DeviceIF::Status status();
  virtual DeviceIF::Status dataLoggingOn();
  virtual DeviceIF::Status dataLoggingOff();

  
  virtual DeviceIF::Status getData(HydroscatIF::Data *data);

  Boolean ready();  

  virtual int spawnAuxTasks();

  int  _numBatt;
  char _argv[200];  

  SimulatorIF *_simulator;
  double _position[3], _velocity[3], _eulerAngles[3], _angularVelocity[3];
  double _pos0[3];
  Boolean _first;
};

#endif
