I have two VIs, a "main" program and a "receiver" program that responds to CAN messages from the main program.
I am using Virtual CAN channels (256 and 257) for testing purposes.
I have noticed a lengthy delay between when the main program writes a message (and arbitration is successful), and the receiver program finds the message in the read queue. It seems to be consistently about 400-500 ms, even though both programs run a 10 ms loop time.
Here is a log from NI I/O Trace.
This is the sequence of events:
line 160: Main program writes message
line 161: Arbitration successful for the written message
line 161-199: Receiver program checks read queue for messages - none found
line 200: Receiver program finds message in read queue
line 204: Receiver reads message
There is about 400 ms from when arbitration is successful to when the message is read. Is there a built-in delay for virtual CAN channels, and if so, is it configurable? Or is there something else going on that I don't understand?
Thanks