View Single Post
  #5   Spotlight this post!  
Unread 03-04-2010, 12:21
The Lucas's Avatar
The Lucas The Lucas is offline
CaMOElot, it is a silly place
AKA: My First Name is really "The" (or Brian)
FRC #0365 (The Miracle Workerz); FRC#1495 (AGR); FRC#4342 (Demon)
Team Role: Mentor
 
Join Date: Mar 2002
Rookie Year: 2001
Location: Dela-Where?
Posts: 1,564
The Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond reputeThe Lucas has a reputation beyond repute
Send a message via AIM to The Lucas
Re: Feeding the Watchdog in "Periodic Tasks"

Personally, I always just disable the User Watchdog. Putting it the Periodic task is the closest thing to disabling it (see Marks post) so just disable it. I know there are good reasons to have it, but I am not satisfied with how FMS handles a Watchdog error so I will not use it in competition (but I use it during code development). If you throw a Watchdog at FMS there seems to be no way to gracefully recover from it and you are going to have communication problems for the rest of the match even once you move past the problematic code.

I first observed this last year in the Philly elims. We ran the wrong auto which was still in the debug stages (had printf statements). The code would work if run with our own router in the shop since the delay for printf is low in that case. Of course that delay is longer on the field so it throws watchdogs and stops during auto. Thats fine and I would expect that, but it should run teleop fine right? No, there is a long delay until we can run teleop (we are using a modified IterativeRobot there is no way to be stuck in auto). We spend the whole rest of the match going in and out of comm (more time out of comm but we did get to run telelop for like 20 continuous sec at a time). Now if we had disabled watchdog before that match instead of for every match afterward, we would have likely run a slow unresponsive auto followed by a perfectly fine teleop. I have seen this this with some teams that throw watchdog errors in auto and have periodic comm problems for the rest of match. Star by disabling watchdog, and the comm problems go away but auto still doesnt work right. Fix auto bug after some more debugging time and everything is good.

In short, IMHO throwing a Watchdog error at FMS is about the worst thing you can do with your code. You can cause yourself to lose comms for the rest of the match, and some people claim it can cause others to lose comms (I am not sure if I believe this myself).
__________________
Electrical & Programming Mentor ---Team #365 "The Miracle Workerz"
Programming Mentor ---Team #4342 "Demon Robotics"
Founding Mentor --- Team #1495 Avon Grove High School
2007 CMP Chairman's Award - Thanks to all MOE members (and others) past and present who made it a reality.
Robot Inspector
"I don't think I'm ever more ''aware'' than I am right after I burn my thumb with a soldering iron"
Reply With Quote