I am now cracking on with the app for my custom board, and in parallel writing a production board-test app.

In trying to cover potential board faults, I have found that if there's something that prevents a CAN message reaching an endpoint/destination, the CAN transmitter (of course, as I understand it) is continuously retrying the message send, meaning the test app hangs when you try and close the file once the test has been deemed to fail. That is "by design" in the higher (i.e. non-arch specific) can code as it waits for the TX FIFO/queue to empty until the close is allowed.

What is the correct POSIX way to handle this error condition?

Might it be better to use Socket CAN, for example, assuming it has better error handling by design, or is the NuttX CAN "system" fundamentally missing something to handle this (or, more likely, I've just missed it )?

Reply via email to