Added cangrabber auto.

Change-Id: I67c2b363df5fc3e431acf0cfd56c9537bb89804b
diff --git a/frc971/wpilib/loop_output_handler.cc b/frc971/wpilib/loop_output_handler.cc
index cb5e4ec..658b064 100644
--- a/frc971/wpilib/loop_output_handler.cc
+++ b/frc971/wpilib/loop_output_handler.cc
@@ -11,9 +11,8 @@
 namespace frc971 {
 namespace wpilib {
 
-constexpr ::aos::time::Time LoopOutputHandler::kStopTimeout;
-
-LoopOutputHandler::LoopOutputHandler() : watchdog_(this) {}
+LoopOutputHandler::LoopOutputHandler(const ::aos::time::Time &timeout)
+    : watchdog_(this, timeout) {}
 
 void LoopOutputHandler::operator()() {
   ::aos::SetCurrentThreadName("OutputHandler");
@@ -44,8 +43,10 @@
   watchdog_thread.join();
 }
 
-LoopOutputHandler::Watchdog::Watchdog(LoopOutputHandler *handler)
+LoopOutputHandler::Watchdog::Watchdog(LoopOutputHandler *handler,
+                                      const ::aos::time::Time &timeout)
     : handler_(handler),
+      timeout_(timeout),
       timerfd_(timerfd_create(::aos::time::Time::kDefaultClock, 0)) {
   if (timerfd_.get() == -1) {
     PLOG(FATAL, "timerfd_create(Time::kDefaultClock, 0)");
@@ -64,7 +65,7 @@
 
 void LoopOutputHandler::Watchdog::Reset() {
   itimerspec value = itimerspec();
-  value.it_value = kStopTimeout.ToTimespec();
+  value.it_value = timeout_.ToTimespec();
   PCHECK(timerfd_settime(timerfd_.get(), 0, &value, nullptr));
 }