#ifndef _GEOMONITOR_H
#define _GEOMONITOR_H
#include "IbcDmMonitor.h"
#include "GeoApp.h"
/*
CLASS 
GeoMonitor

DESCRIPTION
GeoMonitor monitors data manager items releated to this application,
and takes appropriate action when they change.

AUTHOR
Douglas Au
*/
class GeoMonitor : public IbcDmMonitor
{
  public:
 
  ///////////////////////////////////////////////////////////////////
  // Constructor
  // [input] name:  Name of application (e.g. "BBSLED")
  // [input] app:   Pointer to GeoApp  
  GeoMonitor(const char *name, GeoApp *app);

  ~GeoMonitor();
  ///////////////////////////////////////////////////////////////////  
  // Data 
  // Pointer toolsled Name string
  const char *sledName;
  
  //////////////////////////////////////////////////////////////////
  // 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
  // Spare digital Input States
  MBool _spareDigitalInput0State;   
  
  //////////////////////////////////////////////////////////////////
  // Pointer to the main app
  GeoApp *_geoApp;
};


#endif

