|
Re: 2010 FRC LabVIEW framework architecture questions
I've marked my responses with **s.
1) What does the "execute" case of Teleop do if it overruns?
- ignore (drop) new DS packet and keep executing the current iteration?
** By default, this is the behavior. Once finished, it will wait for the next packet arrival.
...
Is an error message given?
** Not unless the code lasts long enough to get a watchdog error.
2) same questions, but for Autonomous Iterative
** Same answer, in fact the same code schedules both.
3) Are the "Periodic Tasks" preemptive and rate monotonic? ie if a 100ms task takes 60ms to run, that does not interfere with a 40 ms task, right? How are overruns handled in the Periodic Tasks? Can a Periodic task be faster than 20ms? If so, I assume it can interrupt the "Teleop execute" code, right?
** Since the loops are scheduled to a pool of OS threads, that is most likely implementation. The normal loops will have the same scheduling activity as the same-priority threads within the OS. Ditto, since the framework defaults to having the periodic, vision, and teleop tasks run at the same priority, the scheduling is the same as same priority OS threads.
Greg McKaskle
|