I am using an LPC55S16 with the ESA CANOpen stack provided by MCUXpresso. It is part pf a legacy system. The legacy system used node guarding. Is this actually supported?
Whenever the master makes a node guard request, it seems the LPC does not generate a response.
Here is the documentation:
8.4.5 #define USE_NODE_GUARDING [0]
CANopen experts do not recommend the usage of node guarding. Instead, the newer heartbeat method should be used. However, to be compliant with legacy devices, Micro CANopen Plus supports minimal node guarding functionality that is enabled if this setting is enabled.
Must be zero for CANopen FD.
I am NOT using FD, so I set the #define to 1. It looks like the slave is entering MCOUSER_NMTChange, but no response is put on the bus (that function just prints the current state). Is it up to me to modify that method to generate the response?
I realize node guarding is not the way things are done these days, but as I said it is a legacy system. Ironically, the previous CANOpen stack was also from ESA....
Thanks!
Edit: Does this maybe have ties to MCOP_HandleGuarding defined in mcop.h?