Resetting a node is typically performed by the CANopen master via NMT protocol messages. This is done by the CANopen stack without any necessary actions by the application.
The CANopen stack provides a service function to reset the node by the application. The following line initiates the reset of the node.
CONmtReset(&demo.Nmt, CO_RESET_NODE);
There are two different kinds of resets possible:
- Reset Communication and Application (this is called "Reset Node")
- Reset Communication
The internal behavior of the CANopen stack is shown in the following diagram: