|
CAN bus async receive
I'm reading the 2013 C++ WPILib and noticed that it calls the CAN driver's receive (source not available) with a 0.0 second timeout to discard stale ACKs. That only makes sense if the CAN driver buffers messages, so I hope it does.
Anybody know how async messages are buffered in the CAN driver? Is it deep enough to reliably see ACKs from several Jaguars? Hello parallel CAN requests!
If it's a per-node buffer, can it reliably buffer Jaguar restart announcements?
It may be possible to detect Jaguar brown-outs by looking for those announcements with a 0.0 second timeout. That's much much cheaper than probing for a power cycle. Last year, Jaguars would reset very rarely, but we never solved it.
This year we're using a 2CAN instead of the serial gateway if that matters to the answer.
|