/****************************************************************************/
/* Copyright (c) 2007 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : AtsLog.cc                                                     */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 06/08/2007                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include "DataLogWriter.h"
#include "AtsLog.h"
#include "AtsOutput.h"
#include "AtsDriver.h"
#include "SimulatedUsbl.h"
#include "TimeP.h"
#include "Syslog.h"

AtsLog::AtsLog(AtsDriver *atsDriver, DataLog::FileFormat format)
  : _driver(atsDriver), DataLogWriter(AtsLogName, format, AutoTimeStamp) 
{
   init();
}

void AtsLog::init()
{
  setMnemonic("atslog");

  addField(_atsDelta  = new DoubleData("AtsDelta"));
  addField(_atsDrift  = new DoubleData("AtsDrift"));

  _atsDelta->setLongName
      ("Last ms delta bt Reson and Auv clocks: delta = (tReson-tAuv)");
  _atsDelta->setLongName
      ("Last ms drift bt Reson and Auv clocks: drift = delta0 - (tReson-tAuv)");

  _atsDelta->setUnits("seconds");
  _atsDrift->setUnits("seconds");
}


AtsLog::~AtsLog()
{
  delete  _atsDelta;
  delete  _atsDrift;
}


void AtsLog::setFields()
{
   if( _driver )
   {
      _atsDelta->setValue       ((double)_driver->_output->data.delta);
      _atsDrift->setValue       ((double)_driver->_output->data.drift);
   }
}
