/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : SimulatedFuelCell.h                                              */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _SimulatedFuelCell_H
#define _SimulatedFuelCell_H
#include "SimulatedFuelCellIF_SK.h"
#include "FuelCellOutput.h"
#include "SimulatedFuelCellIF.h"
#include "DeviceInterface.h"
#include "DeviceIF.h"

class SimulatedFuelCell : public SimulatedFuelCellIF_SK {

public:

  SimulatedFuelCell();
  ~SimulatedFuelCell();

protected:

  SimulatedFuelCellIF::FCC_status _fcc_status;
  SimulatedFuelCellIF::FCC_data _fcc_data;
  
  
  virtual void name(DeviceIF::Name name);
  virtual void serialNumber(DeviceIF::Name id);
  virtual DeviceIF::Status initialize();
  virtual DeviceIF::Status powerOn();
  virtual DeviceIF::Status powerOff();
  virtual DeviceIF::Status status();
  virtual DeviceIF::Status dataLoggingOn();
  virtual DeviceIF::Status dataLoggingOff();

  //  virtual long selfTest(Boolean *passed);

  virtual SimulatedFuelCellIF::FCC_Cmd_Reply get_simFCC_status(SimulatedFuelCellIF::FCC_status *fcc_status);
  virtual SimulatedFuelCellIF::FCC_Cmd_Reply get_simFCC_data(SimulatedFuelCellIF::FCC_data *fcc_data); 
  
  virtual SimulatedFuelCellIF::FCC_Cmd_Reply send_simFCC_command(SimulatedFuelCellIF::FCC_Command fcc_command);
  
  virtual SimulatedFuelCellIF::FCC_Cmd_Reply set_simFCC_data(SimulatedFuelCellIF::FCC_data *fcc_data);

  virtual SimulatedFuelCellIF::FCC_Cmd_Reply set_simFCC_status(SimulatedFuelCellIF::FCC_status *fcc_status);

  virtual int spawnAuxTasks();
  


};

#endif
