Oh ok, I understand now. It's like the standard bits should always be set and then extended bits only if IDE==1. Since my uses of the library have never included extended frames with filters, I'm a out of my depth. I'd...
The macro FLEXCAN_MB_ID_IDEXT() is used in conjunction with FLEXCAN_MB_ID_IDSTD(), which checks the 11 MSB of the extended ID. I haven't had a chance to look over your code yet
In your program, when you want to check if errors exist, you should be able to do something like this:
void loop() {
... some other code ...
static uint32_t timeout = millis();
if ( millis() - timeout >...
Yeah, check out the structure typedef struct CAN_error_t
in FlexCAN_T4.h and the function
bool error(CAN_error_t &error, bool printDetails);
in FlexCAN_T4.tpp
There are a couple functions that could be considered. The CAN.reset() function resets the module, so you'd have to reconfigure every time you start logging.
FLEXCAN_EnterFreezeMode() and FLEXCAN_ExitFreezeMode()...
The general idea is to replace your canRecieve function with code that just checks for IDs you want. If ID matches 0x361 (for example), grab the correct bytes and join them, then convert to physical units. Also, be sure...