///////////////////////////////////////////////////////////////////////////////
//
// PURPOSE:  Fan Log Class.
// AUTHORS:  (1) Rob McEwen, 2004/3/23
//           (2)
//
// COMMENTS: 
//
///////////////////////////////////////////////////////////////////////////////
//
#include "FanLog.h"
#include "Fan.h"
#include <String.h>

FanLog::FanLog(Fan *fan, DataLog::FileFormat fileFormat)
  : DataLogWriter(FanLogName, fileFormat, AutoTimeStamp)
{
  _fan = fan;
  setMnemonic("dataEnv");

  addField( TempFan  = new DoubleData("TempFan") );
  TempFan->setUnits("Celsius");
  TempFan->setLongName( "DS1620 Temperature on the Fan Card" );

  addField( TempPower  = new DoubleData("TempPower") );
  TempPower->setUnits("Celsius");
  TempPower->setLongName( "DS1620 Temperature on Sib's power board" );

  addField( StatusFan  = new ShortData("StatusFan") );
  StatusFan->setUnits("Unitless");
  StatusFan->setLongName( "Status of DS1620 on the Fan Card" );

  addField( StatusPower  = new ShortData("StatusPower") );
  StatusPower->setUnits("Unitless");
  StatusPower->setLongName( "Status of DS1620 on Sib's power board" );

  addField( TempSHT1x  = new DoubleData("TempSHT1x") );
  TempSHT1x->setUnits("Celsius");
  TempSHT1x->setLongName( "Temperature from SHT1x in Celsius" );

  addField( Humidity  = new DoubleData("Humidity") );
  Humidity->setUnits("Relative %");
  Humidity->setLongName( "Humidity from the SHT1x" );

  addField( Pressure  = new DoubleData("Pressure") );
  Pressure->setUnits("kPa");
  //Pressure->setName("MVC Pressure in kPa");
  char buf[512];
  buf[511] = '\0';
  //sprintf( buf, "MVC Pressure in kPa; %7.4f kPa per count, "
  //	   "with an offset of %7.2f kPa", pCnts2kPa, pOffset);
  //Pressure->setLongName( buf );


}


FanLog::~FanLog()
{
   delete Pressure;
}


void FanLog::setFields()
{
   TempFan->   setValue( _fan->Temp1620[0] );
   TempPower-> setValue( _fan->Temp1620[1] );
   StatusFan-> setValue( _fan->Temp1620Status[0] );
   StatusPower->setValue( _fan->Temp1620Status[1] );
   TempSHT1x-> setValue( _fan->TempSHT1x );
   Humidity->  setValue( _fan->Humidity );
   Pressure->  setValue( _fan->Pressure );
}

