Error -35007 When Using NI-Embedded CAN for RIO Driver

Updated Jan 12, 2021

Reported In

Driver

  • NI-Embedded CAN for RIO

Issue Details

I'm using the NI-Embedded CAN for RIO driver to communicate using CAN with an sbRIO transmitting messages to other devices on my CAN network. This typically works, but if I send more than a certain number of messages, I receive the following error:

Error -35007 - The transmission queue is full. Wait until frames in the queue have been sent and try again.

Solution

This error is caused by overflowing the CAN transmit buffer on your sbRIO sending CAN messages. This buffer is unfortunately fixed size and cannot be made larger, but there are a few methods that can be used to avoid this error.
  • Add an Embedded CAN Wait (Transmit Complete) VI to your transmission code in front of your Embedded CAN Write function - this will ensure that all messages currently in the transmit buffer have been read before writing new messages.
  • If possible for your application, you can also reduce the number of messages you write each iteration of your transmission code.