////////////////////////////////////////////////////////////////////////////////
//
// PURPOSE:  DropWeight Log Class.
// AUTHOR:   Rob McEwen.
// DATE:     04/2/6
// COMMENTS: 
//
////////////////////////////////////////////////////////////////////////////////
//

#include "DropWeightLog.h"
#include "DropWeight.h"


DropWeightLog::DropWeightLog(DropWeight *dropWeight, 
			     DataLog::FileFormat fileFormat)
  : DataLogWriter(DropWeightLogName, fileFormat, AutoTimeStamp)
{
  _dropWeight = dropWeight;
  setMnemonic("dataDW");

  addField( Wdt   = new ShortData("WDTimer") );
  Wdt->setUnits("Seconds");
  Wdt->setLongName("Count Down Timer");

  addField( Bwt   = new ShortData("BWTimer") );
  Bwt->setUnits("Seconds");
  Bwt->setLongName("Burn Wire Timer");

  addField( WDC   = new ShortData("WDClear") );
  WDC->setUnits("Unitless");
  WDC->setLongName("Watch Dog Clear");

  addField( ACommsDN   = new ShortData("AcommsDN") );
  ACommsDN->setUnits("Unitless");
  ACommsDN->setLongName("Acoustic Comms Drop Now");

  addField( WDSt_out   = new ShortData("WDStatus") );
  WDSt_out->setUnits("Unknown");
  WDSt_out->setLongName("Watch Dog Status");

  addField( DW_out   = new ShortData("DWout") );
  DW_out->setUnits("Unitless");
  DW_out->setLongName("Drop Weight Active");

  addField( GulperProxIn = new ShortData("GulperProxIn") );
  GulperProxIn->setUnits("Unitless");
  GulperProxIn->setLongName("Gulper Proximity Sensor");

}


DropWeightLog::~DropWeightLog()
{
  delete Wdt;
  delete Bwt;
  delete WDC;
  delete ACommsDN;
  delete WDSt_out;
  delete DW_out;
  delete GulperProxIn;
}


void DropWeightLog::setFields()
{
  Wdt->setValue(_dropWeight->Wdt );
  Bwt->setValue(_dropWeight->Bwt );
  WDC->setValue(_dropWeight->WDC );
  ACommsDN->setValue(_dropWeight->ACommsDN );
  WDSt_out->setValue(_dropWeight->WDSt_out );
  DW_out->setValue(_dropWeight->DW_out );
  GulperProxIn->setValue(_dropWeight->GulperProxIn);
}

