Hi
How can i undrestand that the can frame has been received by other devices in due_can library?i want to be sure that my data received by receiver device.
The CAN protocol has no build in way of ensuring the CAN message was received by a specific node. The CAN protocol ensures the message was read without errors by at least one node. It is assumed that if one node could read the message error free all nodes should be able to read the message without error. Note, that the CAN bus length ensures that each bit can travel along the entire bus length and back to the sending node. So, if another node overwrites a bit or a voltage spike changes a bit the sending node would detect that and resend the message a little while later. But, if the CAN node you intended for the message had an issue and switched into error bus off mode it can miss messages for a little while. This needs to be handled in the application layer.
Because the CAN bus is used in real time systems there are multiple ways to handle missing messages.
If you need every byte (e.g. sending a file) than you need to request an acknowledge or some applications request the data until they get them.
On the other side if the data is outdated anyways (e.g. motor rpm) by the time the receiving or sending node detects one message was missing you might as well just forget about that message and send the new data instead of repeating the old data.