/****************************************************************************/
/* Copyright (c) 2001 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : Ips4Log.cc                                                    */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 04/09/2001                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include "DataLogWriter.h"
#include "Ips4Log.h"
#include "Ips4.h"
#include "TimeP.h"
#include "Syslog.h"

Ips4Log::Ips4Log(Ips4 *ips, DataLog::FileFormat format)
  : _ips(ips), DataLogWriter(Ips4LogName, format, AutoTimeStamp) 
{
  Syslog::write("Ips4Log.cc -- beginning constructor...\n");
  setMnemonic("ips4log");

  addField(_ipsPressure = new DoubleData("ipsPressure"));
  addField(_ipsTemperature = new DoubleData("ipsTemperature"));
  addField(_ipsTiltX = new DoubleData("ipsTiltX"));
  addField(_ipsTiltY = new DoubleData("ipsTiltY"));
  addField(_ipsTravelTime = new DoubleData("ipsTravelTime"));
  addField(_ipsRange = new DoubleData("ipsRange"));
  addField(_ipsAmplitude = new ShortData("ipsAmplitude"));
  addField(_ipsPersistence = new DoubleData("ipsPersistence"));
  addField(_ipsDraft = new DoubleData("ipsDraft"));
  addField(_ipsPressureAge = new ShortData("ipsPressureAge"));
  addField(_ipsFlag  = new ShortData("ipsFlag"));
  addField(_ipsYear  = new ShortData("ipsYear"));
  addField(_ipsMonth = new ShortData("ipsMonth"));
  addField(_ipsDay   = new ShortData("ipsDay"));
  addField(_ipsHour  = new ShortData("ipsHour"));
  addField(_ipsMin   = new ShortData("ipsMin"));
  addField(_ipsSec   = new ShortData("ipsSec"));
  addField(_avgSOS   = new DoubleData("avgSOS"));
  addField(_avgDens  = new DoubleData("avgDens"));
  addField(_ipsDraftStatus = new ShortData("ipsDraftStatus"));

  //addField(_ipsRecord= new StringData("ipsRecord"));

  Syslog::write("ips4Log.cc -- constructor succeeded\n");
}


Ips4Log::~Ips4Log()
{
  delete  _ipsPressure;
  delete  _ipsTemperature;
  delete  _ipsTiltX;
  delete  _ipsTiltY;
  delete  _ipsTravelTime;
  delete  _ipsRange;
  delete  _ipsAmplitude;
  delete  _ipsPersistence;
  delete  _ipsDraft;
  delete  _ipsPressureAge;
  delete  _ipsFlag;
  delete  _ipsYear;
  delete  _ipsMonth;
  delete  _ipsDay;
  delete  _ipsHour;
  delete  _ipsMin;
  delete  _ipsSec;
  delete  _avgSOS;
  delete  _avgDens;
  delete  _ipsDraftStatus;

  //delete  _ipsRecord;
}


void Ips4Log::setFields()
{
  _ipsPressure->setValue((double)_ips->_iceDraft->Pressure);
  _ipsTemperature->setValue((double)_ips->_iceDraft->Temperature);
  _ipsTiltX->setValue((double)_ips->_iceDraft->TiltX);
  _ipsTiltY->setValue((double)_ips->_iceDraft->TiltY);
  _ipsTravelTime->setValue((double)_ips->_iceDraft->TravelTime);
  _ipsRange->setValue((double)_ips->_iceDraft->Range);
  _ipsAmplitude->setValue((short)_ips->_iceDraft->Amplitude);
  _ipsPersistence->setValue((double)_ips->_iceDraft->Persistence);
  _ipsDraft->setValue((double)_ips->_iceDraft->Draft);
  _ipsPressureAge->setValue((short)_ips->_iceDraft->PressureAge);
  _ipsFlag->setValue((short)_ips->_iceDraft->Flag);
  _ipsYear->setValue((short)_ips->_iceDraft->Year);
  _ipsMonth->setValue((short)_ips->_iceDraft->Month);
  _ipsDay->setValue((short)_ips->_iceDraft->Day);
  _ipsHour->setValue((short)_ips->_iceDraft->Hour);
  _ipsMin->setValue((short)_ips->_iceDraft->Minute);
  _ipsSec->setValue((short)_ips->_iceDraft->Second);
  _avgSOS->setValue((double)_ips->_avgSOS);
  _avgDens->setValue((double)_ips->_avgDens);
  _ipsDraftStatus->setValue((short)_ips->_iceDraft->Status);
 
  //_ipsRecord->setValue(_ips->_ipsRecord);
}

