#include "DataLogWriter.h"
#include "GPSLog.h"
#include "GPS.h"
#include "Time.h"
#include "Syslog.h"

GPSLog::GPSLog(GPS *gps, DataLog::FileFormat fileFormat) 
  : DataLogWriter(GPSLogName, fileFormat, AutoTimeStamp) 
{
  setMnemonic("gps");

  addField((_UTCTime = new IntegerData("UTCTime")));
  addField((_lat = new DoubleData("latitude")));
  addField((_NSHem = new CharData("NSHemisphere")));
  addField((_longt = new DoubleData("longitude")));
  addField((_EWHem = new CharData("EWHemisphere")));
  addField((_qual = new ShortData("quality")));
  addField((_numSat = new ShortData("numberOfSatellites")));
  //addField((_hdop = new DoubleData("hdop")));
  //addField((_antH = new DoubleData("antennaHeight")));
  //addField((_geoH = new DoubleData("geoHeight")));
  //addField((_dgpsDA = new ShortData("dgpsDataAge")));
  //addField((_dgpsRSID = new ShortData("dgpsRSID")));
  _gps = gps;
}


GPSLog::~GPSLog()
{
  delete _UTCTime;
  delete _lat;
  delete _NSHem;
  delete _longt;
  delete _EWHem;
  delete _qual;
  delete _numSat;
  // delete _hdop;
  //delete _antH;
  //delete _geoH;
  //delete _dgpsDA;
  //delete _dgpsRSID;
  
}

void GPSLog::setFields()
{

  _UTCTime->setValue(_gps->UTCTime);
  _lat->setValue(_gps->latitude);
  _NSHem->setValue(_gps->NSHemisphere);
  _longt->setValue(_gps->longitude);
  _EWHem->setValue(_gps->EWHemisphere);
  _qual->setValue(_gps->quality);
  _numSat->setValue(_gps->numSatellites);
  //_hdop->setValue(_gps->HDOP);
  //_antH->setValue(_gps->antennaHeight);
  //_geoH->setValue(_gps->geoidalHeight);
  //_dgpsDA->setValue(_gps->DGPSdataAge);
  //_dgpsRSID->setValue(_gps->DGPSReferenceStationID);
  
}



