text: /*----------------------------------------------------------------------------*/
  /* Copyright (c) FIRST 2008. All Rights Reserved.							  */
  /* Open Source Software - may be modified and shared by FRC teams. The code   */
  /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib.  */
  /*----------------------------------------------------------------------------*/
  
  #ifndef WATCHDOG_H
  #define WATCHDOG_H
  
  #include "ChipObject.h"
  #include "SensorBase.h"
  #include "Base.h"
  
  /**
   * Watchdog timer class.
   * The watchdog timer is designed to keep the robots safe. The idea is that the robot program must
   * constantly "feed" the watchdog otherwise it will shut down all the motor outputs. That way if a
   * program breaks, rather than having the robot continue to operate at the last known speed, the
   * motors will be shut down.
   * 
   * This is serious business.  Don't just disable the watchdog.  You can't afford it!
   * 
   * http://thedailywtf.com/Articles/_0x2f__0x2f_TODO_0x3a__Uncomment_Later.aspx
   */
  class Watchdog : public SensorBase
  {
  public:
  	static const double kDefaultWatchdogExpiration = 0.5;
  
  	Watchdog();
  	virtual ~Watchdog();
  	bool Feed();
  	void Kill();
  	double GetTimer();
  	double GetExpiration();
  	void SetExpiration(double expiration);
  	bool GetEnabled();
  	void SetEnabled(bool enabled);
  	bool IsAlive();
  	bool IsSystemActive();
  
  private:
  	tWatchdog *m_fpgaWatchDog;
  	DISALLOW_COPY_AND_ASSIGN(Watchdog);
  };
  
  #endif
  