#include <process.h>
#include <time.h>
#include "SimulatedIsus.h"
#include "Syslog.h"

SimulatedIsus::SimulatedIsus(const char *name) : IsusIF_SK()
{
  _simulator = new SimulatorIF("simulator");
}

SimulatedIsus::~SimulatedIsus()
{
   delete _simulator;
}



void SimulatedIsus::name(DeviceIF::Name name)
{
  strcpy(name, "Isus");
}


void SimulatedIsus::serialNumber(DeviceIF::Name number)
{
  strcpy(number, "XXX");
}


DeviceIF::Status SimulatedIsus::initialize()
{
  // Dummy implementation for now
  return DeviceIF::Ok;
}


DeviceIF::Status SimulatedIsus::powerOn()
{
  // Dummy implementation for now
  return DeviceIF::Ok;
}


DeviceIF::Status SimulatedIsus::powerOff()
{
  // Dummy implementation for now
  return DeviceIF::Ok;
}


DeviceIF::Status SimulatedIsus::status()
{
  // Dummy implementation for now
  return DeviceIF::Ok;
}


DeviceIF::Status SimulatedIsus::dataLoggingOn()
{
  // Dummy implementation for now
  return DeviceIF::Ok;
}


DeviceIF::Status SimulatedIsus::dataLoggingOff()
{
  // Dummy implementation for now
  return DeviceIF::Ok;
}

Boolean SimulatedIsus::ready()
{
   return True;
}

DeviceIF::Status SimulatedIsus::getData(IsusIF::Data *data)
{
  Boolean debug = False;

  _simulator->state( _position, _velocity, 
		     _eulerAngles, _angularVelocity );

  data->deviceReady = True;
  data->badComms    = False;
  data->nitrate     = 5.*_position[2];

  return DeviceIF::Ok;
}

 
int SimulatedIsus::spawnAuxTasks()
{
  return 0;
}

