/************************************************************************/
/* Copyright 1998 MBARI							*/
/************************************************************************/
#ifndef _REGEN_H
#define _REGEN_H

#include "DmGuiObject.h"
#include "DmBarGraph.h"
#include "AlarmedText.h"
#include "AlarmText.h"

/*
CLASS 
Regen

DESCRIPTION
Display state of Power Regen system

AUTHOR
Tom O'Reilly
*/
class Regen : public VkComponent
{
  public:
  Regen(const char *name, Widget parent, int period, 
	const char *dmPrefix);

  ~Regen();
  
  const char *className()
  {
    return "Regen";
  }
  
  protected:
  AlarmedInt16Text *_minVoltage;
  AlarmedInt16Text *_maxVoltage;
  AlarmedInt16Text *_heater1Temp;
  AlarmedInt16Text *_heater2Temp;
  AlarmText *_openHeater;

  DmInt16BarGraph *_dutyCycle1;
  DmInt16BarGraph *_dutyCycle2;
  DmInt16BarGraph *_volts;
  DmInt16BarGraph *_heatsinkTemp;

  DmInt16Object *_dmMinVoltage;
  DmInt16Object *_dmMaxVoltage;
  DmInt16Object *_dmHeater1Temp;
  DmInt16Object *_dmHeater2Temp;
  DmEmptyObject *_dmResetMinMax;
  
  void sendReset();
  
  private:
  static void resetCallback(Widget w, 
			    XtPointer clientData, XtPointer callData);
  
};


class RegenPage : public VkComponent
{
  public:
  RegenPage(const char *name, Widget parent);
  ~RegenPage();

  const char *className()
  {
    return "RegenPage";
  }

  protected:
  Regen *_pwrA;
  Regen *_pwrB;
};


#endif
