#include "FuelCellOutput.h"
#include "Syslog.h"

FuelCellOutput::FuelCellOutput(Access access, Boolean init)
  :SharedData(FuelCellOutputName,sizeof(FuelCellOutput::Data),access,init)
{
  
}

FuelCellOutput::~FuelCellOutput()
{

}

void FuelCellOutput::read()
{
  SharedData::read((void *)&data);
}

void FuelCellOutput::write()
{
  SharedData::write((void *)&data);
}

void FuelCellOutput::clear()
{
  data.fcc_status.fc_control_state = 0;
  data.fcc_status.health = 0;
  data.fcc_status.FC_remaining_kwh = 0;
  data.fcc_status.RB_remaining_wh = 0;
  data.fcc_status.BIT_status = 0;
  data.fcc_status.BIT_result = 0;
  
  data.fcc_data.elapsed_time = 0;
  data.fcc_data.anolyte_pump_a_current = 0;
  data.fcc_data.anolyte_pump_b_current = 0;
  data.fcc_data.catholyte_pump_current = 0;
  data.fcc_data.peroxide_pump_current = 0;
  data.fcc_data.anolyte_temp = 0;
  data.fcc_data.catholyte_temp = 0;
  data.fcc_data.fwd_peroxide_temp = 0;
  data.fcc_data.aft_peroxide_temp = 0;
  data.fcc_data.stack_voltage = 0;
  data.fcc_data.stack_current = 0;
  data.fcc_data.battery_voltage = 0;
  data.fcc_data.battery_current = 0;
  data.fcc_data.peroxide_used = 0;
  data.fcc_data.v_setpoint = 0;
  data.fcc_data.makeup_injection_count = 0;
  data.fcc_data.base_injection_duration = 0;
}
