View Single Post
  #1   Spotlight this post!  
Unread 16-01-2013, 17:09
kenfox kenfox is offline
Registered User
FRC #3322 (Eagle Imperium)
Team Role: Mentor
 
Join Date: Jan 2013
Rookie Year: 2013
Location: Ann Arbor, MI
Posts: 51
kenfox is a glorious beacon of lightkenfox is a glorious beacon of lightkenfox is a glorious beacon of lightkenfox is a glorious beacon of lightkenfox is a glorious beacon of light
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.