currentLampPattern should be a local variable and it is OK to use it. Using a function add unnecessary extra lower level step. If a function is used, should be for modules outside this one.
I'm not sure I understand this issue. There is a variable that indicates the active buffer for each buffer. I am not passing the active buffer - I'm passing the buffer of interest and this function is using the active buffer variable to manage it internally as you say.
I have the MESSAGE_T type as our denali message (minus the CRC) and I have the MESSAGE_WRAPPER_T as a MESSAGE_T with a CRC wrapped in. This makes it easier to implement the CRC check (calc CRC for the message only) and then throw away the wrapper (CRC) after it checks out.
Hardware will only handle which packet wins when 2 or more nodes are trying to send a packet at the same time. For each node (sub-system), software still needs to decide which packet it wants to send next.
I couldn't find the definition of MESSAGE_WRAPPER_T... Words like wrapper is too generic. Are this denali message. Let's give name similar to our documentation.
You are running release
CR4.8.14
FE4.8.14
(20240111091859 2024-01-11 09:20),
please report your release number when reporting bugs.