|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Feeding the Watchdog
I am trying to run my teleoperated code and it builds successfully when i debug but when I run the program it says the watchdog is not fed. I followed how the default code fed the watchdog but it still didn't work. The I tried downloading the default code but it still says the watchdog is not fed. Does anyone know how to disable the watchdog or feed it?
The advice would be much appreciated. |
|
#2
|
|||
|
|||
|
Re: Feeding the Watchdog
Here's basically how the watchdog works. Except in autonomous mode the watchdog must be enabled. It then must be fed every x settings, x is determined with the SetExpiration(numSeconds) function (usually called in the constructor of your robot class). Failure to do so results in your robot being promptly disabled.
To enable the watchdog you can use the function (SetEnabled(true)) and to disable, SetEnabled(false). Following that you must feed it using Feed(). Here's a sample program in C++ (should be quite similar in Java). Code:
#include "WPILib.h"
class Robot : public SimpleRobot {
Robot(void) {
GetWatchdog().SetExpiration(0.1); // Must feed watchdog every 100mS
}
void Autonomous(void) {
GetWatchdog().SetEnabled(false);
// Autonomous Code here
}
void OperatorControl(void) {
GetWatchdog().SetEnabled(true);
while (IsOperatorControl() && !IsDisabled()) {
GetWatchdog.Feed();
// Teleop code here
Wait(0.05);
}
}
}
START_ROBOT_CLASS(Robot);
According to http://first.wpi.edu/Images/CMS/Firs...va_for_FRC.pdf to equivalent Java functions are: Code:
// Similar to C++, just note the case. getWatchdog().setEnabled(true); getWatchdog().setExpiration(0.1); getWatchdog().feed(); Last edited by basicxman : 01-30-2010 at 04:18 PM. |
|
#3
|
|||
|
|||
|
Re: Feeding the Watchdog
Thank you for the advice but...
I've tried your way of setting up the feed but it doesn't work. I tried the way the PDF you sent me did it before your way of doing the watchdog feed but it still didn't work then either. Is there any way else anyone can suggest? |
|
#4
|
|||
|
|||
|
Re: Feeding the Watchdog
The example basicxman gave is correct. If it isn't working for you you should look carefully at your code for these things:
any init (such as the camera mentioned) that might take longer than the expiration are you feeding it within all loops that might run longer than the expiration do you ever pend on input that may not come fast enough Timer.delay calls that may total too much time Examine every loop or method call to make sure. Put printlns in that display the time in potential problem areas, some things, like processing large images take a lot longer than you might think. Lots of printlns are expensive. DriverStationLCD prints take a while. etc. If you post your code we could look for potential problem areas Good luck! |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| pic: WAI: Packbot feeding salad to FIRST Mentor@ NURC | Moheeb698 | Extra Discussion | 3 | 10-19-2009 01:52 AM |
| Watchdog | darty | NI LabVIEW | 8 | 02-16-2009 09:11 AM |
| Watchdog | Barchechath | Programming | 6 | 02-10-2007 08:05 PM |
| Ball Feeding Tube Legality | phrontist | Rules/Strategy | 4 | 02-13-2006 10:30 PM |
| Goal feeding ball mechanism????? | Rob Kelly | Technical Discussion | 2 | 02-03-2002 11:28 PM |