#ifndef _BENTHICBIOMONITOR_H
#define _BENTHICBIOMONITOR_H
#include "IbcDmMonitor.h"
#include "BenthicBioApp.h"
/*
CLASS 
BenthicBioMonitor

DESCRIPTION
BenthicBioMonitor monitors data manager items releated to this application,
and takes appropriate action when they change.

AUTHOR
Douglas Au
*/
class BenthicBioMonitor : public IbcDmMonitor
{
  public:
 
  ///////////////////////////////////////////////////////////////////
  // Constructor
  // [input] name:  Name of application (e.g. "BBSLED")
  // [input] app:   Pointer to BenthicBioApp  
  BenthicBioMonitor(const char *name, BenthicBioApp *app);

  ~BenthicBioMonitor();
  ///////////////////////////////////////////////////////////////////  
  // Data 
  // Pointer Benthic Biology Sled Name string
  const char *bbsledName;
  
  //////////////////////////////////////////////////////////////////
  // Sets Analog Output Value for SS Pump Speed and Spare A/O  
  STATUS setAnalogValue(Nat16 level, Nat16 chan );

  protected:
 
  ///////////////////////////////////////////////////////////////////
  // Process any changed DM items
  // Overrides method in DmMonitor
  virtual int cmdGroupCallback();

  ///////////////////////////////////////////////////////////////////
  // Process micro reset (when sync sem is given by MicroApp)
  // Overrides method in DmMonitor
  virtual int handleResetSemaphore(); 

  //////////////////////////////////////////////////////////////////
  // Data
  // State of auto index Switch
  MBool _autoIndexState;   
  
  //////////////////////////////////////////////////////////////////
  // Pointer to the main app
  BenthicBioApp *_benthicBioApp;
};


#endif

