I'm working with HAL_CAN for the stm32L4. I'm developing a fw in a sw layer where I can configure CAN controller, filter banks, reset, send and receive, etc.. One of the things my fw can do in this layer is to generate data and remote frames before transmitting.
In one hand, I'm thinking about fixing the id code and type of standar (ext o st) at init operation (you must sending this frame format statichaly) always, so you can not modify any field of this frame during execution.
But by the other side, I'm thinking if my node will need to generate, sending or answering data requests, with more than one type of msg with different priorities. So my fw must be able to configure more than one id code, even std selection, during execution.
I have read, that ID is related to only one node, and ID code must be never modified. But I also read that since app level, there is some stack that allows working with modifying this field during program execution.
Now I don't know which way to implement, since I have not clear if it's possible to send msgs (frames) from the node msg with different ID (priorities) or only one ID for the node live in the can net. What's the correct way according to the CAN st? Is actually the ID associated with only one node or is it with different type of msg independently of the transmitter node?